Commit Graph

50425 Commits

Author SHA1 Message Date
cgd
be6a1d529a separate defns for primary and unified boot blocks 1999-03-31 06:28:41 +00:00
simonb
febdc0ddf2 Use recent LIBSA_NO_TWIDDLE support. 1999-03-31 04:30:11 +00:00
cgd
77a9cb81ff implement NO_GETCHAR, to remove getchar(), and NO_PUTCHAR_HALT to remove
the check in putchar() for character input (specifically control-c, which
causes a halt).
1999-03-31 03:34:21 +00:00
cgd
c5fa912232 no point in passing &ret to test_getchar(); nobody cares! also, no
point in doing the check-for-abort functionality twice in putchar()
(once with a call to test_getchar(), once open coded).
1999-03-31 03:22:57 +00:00
simonb
0f4c2803ca Create/build vers.c/vers.o inside the final link stage so that the build
datestamp get's updated each build.
1999-03-31 03:10:56 +00:00
cgd
98f67b8238 In putchar(), don't open-code two calls to the prom puts routine. Instead,
call a helper function (putonechar()).  Savings: 64 bytes.  Cha-ching!
1999-03-31 03:10:00 +00:00
cgd
3665d82d1a GC cpu_number() and turn alpha_pal_imb() into inline assembler. 1999-03-31 03:04:21 +00:00
cgd
51a85dabbb rename the C main() function to main_(). this avoids gcc's implicit
call to __main(), and therefore saves the size of the call and the
  size of a stub implementation of __main().
in the primary boot block, don't bother saving/restoring the argument
  passed in from the caller.  There is no such argument (that we care
  about, at least) to the primary.  (for secondary, it's the firmware
  FD being used.)
1999-03-31 03:03:01 +00:00
cgd
4a209e30f8 Compile with -Os (optimize for size).
Clean up the "Region 1" related definitions, and define load addresses,
  max load size, and max total size for as many boot block types as we can.
  (types = unified, primary, secondary).  We can't always define all
  values for all boot blocks, though.
Make CPP flags selection less gross.
Use objcopy rather than headersize (yay, evil gets a stake to the heart!).
Use a little shell script to verify that the sizes of the boot blocks are OK.
Do not compile too much more of libsa than we actually have to.
1999-03-31 02:52:11 +00:00
mhitch
11cfd11c52 Add CyberStorm MK III. 1999-03-31 02:47:38 +00:00
simonb
5fbc10c671 Reorder ${LIBS} so that we don't need to explicitly pull in bcmp.c
and bzero.c from libkern.
1999-03-31 02:35:14 +00:00
lukem
82f739bcb0 when using editline, work on the correct buffer. fixes problem where blank
input lines were being added to the history buffer.
1999-03-31 02:00:42 +00:00
cgd
309213477a Make a bunch of backward-compatible changes to the boot blocks which allow
size to be reduced substantially.  (backward compatibility verified
by compiling one of the alpha boot blocks which uses all of the code
before and after, diffing the object files, and manually verifying that
the differences were 'correct'.  some differences were "unavoidable,"
it wanting to avoid a double-commit, because e.g. local variables which
were previously used were no longer used.)  a README which describes
supported options (or at least the ones mentioned below) is forthcoming.

add support for the preprocessor macro LIBSA_NO_TWIDDLE, which
  causes calls to twiddle() to be omitted if it's defined.
add support for the preprocessor macros:
	LIBSA_NO_FS_CLOSE
	LIBSA_NO_FS_WRITE
	LIBSA_NO_FS_SEEK
  which, if defined, cause the corresponding file system operations
  in the individual file system implementations to be omitted.  (note
  that all of those macros are not supported by all file systems at
  this point.  comments were added to individual file system files
  to indicate lack of support, and should be cleaned up later.  Backward
  compatibility options e.g. UFS_NOCLOSE, etc., are supported.)
add support for the preprocessor macro LIBSA_NO_FS_SYMLINK, which
  removes support for symbolic links from the file system support
  functions.  (same notes as for the macros above apply.)
add support for the preprocessor macro LIBSA_FS_SINGLECOMPONENT which
  removes all subdirectory and symlink support from the file system
  support functions.  (same notes as for the macros above apply.)
add support for the preprocessor macro LIBSA_NO_FD_CHECKING, which
  causes code relating to libsa file descriptor checks (e.g. range
  checking and checking that a file descriptor is valid) to be
  omitted if it's defined.
add support for the preprocessor macro LIBSA_NO_RAW_ACCESS, which
  causes code relating to raw device access to be omitted if it's
  defined.
change some structure copies to use bcopy() instead.  that way
  use of bcopy vs. memcpy() can easily be selected by
  LIBSA_USE_MEMCPY.  (without changes like these, you could end up
  having both bcopy() and memcpy() included.  eventually, all
  calls to bcopy should be changed to calls to memcpy() or memmove()
  as appropriate -- hopefully never the latter -- with an option to
  use bcopy instead.)
add support for the preprocessor macro LIBSA_NO_DISKLABEL_MSGS, which
  causes disklabel() to return '1' as msg rather than a string.  Can
  be used if the boot blocks don't care about the string, and need to
  save the space.
add support for the preprocessor macro LIBSA_SINGLE_FILESYSTEM, which
  if defined causes all of the file system switch code to be removed.
  Its value should be the name of the file system supported by the
  boot block, e.g. "ufs" for the FFS file system.  calls to the
  file system functions open, close, etc., which were previously
  done through a function switch are then done via direct invocation
  of <fs>_open, <fs>_close, etc. (e.g. ufs_open, ...).
add support for the preprocessor macro LIBSA_SINGLE_DEVICE, which
  does the equivalent of LIBSA_SINGLE_FILESYSTEM but for the device
  switch table.  Device entry pointes are expected to be named
  <dev>foo, e.g. the 'strategy' routine used when LIBSA_SINGLE_DEVICE
  is set to 'disk' is diskstrategy.
make ufs.c f_nindir array be unsigned ints.  the fact that it was signed
  caused ufs.c to require signed division routines (which were otherwise
  unnecessary for a small boot block).
1999-03-31 01:50:25 +00:00
cgd
e5ce91e0f3 replace memcpy() implementation (which just called bcopy()) with
a small implementation of memcpy().  libsa memcpy() wouldn't
do the right thing if LIBSA_USE_MEMCPY was defined, and the whole
point of that define is to get rid of either bcopy() or memcpy().
(cloned from the bcopy() code.)
1999-03-31 01:39:16 +00:00
thorpej
98d006d2c6 Set a hard limit (rather than an advisory high water mark for pages) of
NMBCLUSTERS for the mbuf cluster pool.  On platforms which use direct-mapped
segments for pool pages (MIPS and Alpha), this makes NMBCLUSTERS actually
meaningful (such ports don't even allocate mb_map, as it is not used to
map mbuf cluster pages).

Improve the message logged at a maximum rate of once per second.  The
new message: "WARNING: mclpool limit reached; increase NMBCLUSTERS".

In the back-end pool page allocator, remove the message about mb_map
being full.  The message was not necessarily correct as the allocator
may have been starved for pages, rather than for space in the map.  Also,
the hard limit on the mbuf cluster pool will be reached before the map
fills (the last cluster will always fit into the map), so the message
is redundant.

Add a comment in mbinit() about considering setting low water marks on
the mbuf and mbuf cluster pools.
1999-03-31 01:26:40 +00:00
thorpej
d4d4e314e9 Fix several bugs/deficiencies in the pool allocator:
- Add support for hard limits, with optional rate-limited logging of
a warning message when the pool limit is reached.  (This will be used
to fix a bug in mbuf cluster allocation on the MIPS and Alpha ports.)

- Fix some locking protocol errors.  This required splitting pr_flags
into pr_flags (which is protected by the spin lock) and pr_roflags (which
are `read only' flags, set when the pool is initialized, and never changed
again; these do not need to be protected by a mutex).

- Make the low water support actually mean something.  When a low water
mark is set, add free items to the pool until the low water mark is
reached.  When an item allocation causes the number of free items to
drop below the low water mark, make the pool catch up to it.  This can
make the pool allocator more useful for several applications (e.g.
pmap `pv entry' management) and more robust for others (for e.g. mbuf
and mbuf cluster allocation, so that the pagedaemon can use NFS to clean
pages on diskless systems without completely running dry on buffers to
receive packets in during extreme memory shoratages).

- Add a comment where we sleep waiting for more pages for the back-end
page allocator.  Specifically, instead of sleeping potentially forever,
perhaps we should just wake up once a second to try allocating a page
again.  XXX Revisit this soon.
1999-03-31 01:14:06 +00:00
fvdl
a5d73e00eb Rework the MBR code, and some of the labelling code.
* Use structures, not 2-dimensional arrays..
	* Use the DIOCGDEFLABEL ioctl to get the disk information,
	  to avoid confusion with (older) labels.
	* Don't ever call fdisk for partitioning. This was the
	  source of much confusion.
	* For the i386, use the BIOS geometry information passed by
	  the bootblocks.

Lots of things left to do, but it's a start.
1999-03-31 00:44:48 +00:00
ross
4b2bc83b1f Add -unfilled. 1999-03-31 00:11:41 +00:00
ross
eae6462d13 There was no mention of .Bd -unfilled, the -ragged description was bogus,
(actually, it described -unfilled) and there are six displays, not five.
1999-03-31 00:05:38 +00:00
abs
542d17320b Update - quotacheck is run from rc, not rc.local 1999-03-30 23:58:46 +00:00
abs
4bd70a584f If -a, we do not want to pay the cost of processing every group and password
entry if there are no filesystems with quotas. Speeds up boot on a large YP
site without quotas considerably. If a filesystem has quotas we process
/etc/fstab twice, which is very cheap in relative terms.
1999-03-30 23:56:26 +00:00
fvdl
fb1b0e7a0b Shifting ecx without explicit prefix in real mode won't work. 1999-03-30 22:35:21 +00:00
cgd
8aa0c52d66 #undef bcopy, so that this will still compile if LIBSA_USE_MEMCPY is defined 1999-03-30 22:03:47 +00:00
cgd
9d06bcdcfe Add bzero.c, errno.c, and memset.c to SRCS 1999-03-30 22:02:39 +00:00
cgd
9ce004e069 add simple (small) implementations of memset and bzero. the versions
in libkern are fine for the kernel, but the versions here are smaller
and in libsa the point is size.
1999-03-30 22:01:15 +00:00
cgd
1611da0c3c move errno to its own file; if you just need errno, you don't need dev.c's fns 1999-03-30 21:59:58 +00:00
mycroft
2f91607aff Enable this is a non-entropy rnd source. 1999-03-30 21:02:41 +00:00
mycroft
9d0dcbced4 Prefault the u-area pages at swapin time. 1999-03-30 21:01:42 +00:00
mycroft
dcdd0d6124 Map the system page with access_type=READ. 1999-03-30 20:59:52 +00:00
ross
740ba5bf1a Missing .El. 1999-03-30 20:38:33 +00:00
ross
376b343025 LP64 tweak. 1999-03-30 20:36:58 +00:00
thorpej
ae7f25d8af Fix a typo. 1999-03-30 20:07:56 +00:00
pk
1469e9af76 The MMU_3L option became SUN4_MMU3L long ago. 1999-03-30 19:41:30 +00:00
augustss
2ef8f0cac3 Insert an AUDIO_DRAIN at the end of each file. 1999-03-30 19:33:31 +00:00
perseant
f9daa9044a Correct data checksum to take ifile indirect block into account, if it exists 1999-03-30 19:04:50 +00:00
mycroft
742a052418 Fix a null pointer dereference in the case where forwarding is turned on and
there are interfaces up but with no addresses.
1999-03-30 19:02:56 +00:00
soda
4f63fe16c9 regdef.h is back 1999-03-30 18:50:01 +00:00
soda
2f9a4a8d93 regdef.h is back 1999-03-30 18:38:32 +00:00
soda
5cf51ff2d5 regdef.h 1999-03-30 18:38:00 +00:00
drochner
17de7b2576 adapt to set_geometry change: we don't have to correct the geometry
anymore
1999-03-30 17:58:05 +00:00
drochner
62031ff978 fix some disk handling problems introduced in the last commits:
-read retries were botched, use the right sector count
-read-ahead buffer was effectively unused
-concentrate the handling of the weird BIOS geometry report at one place
-fallback for old floppies left cylinder count uninitialized
1999-03-30 17:55:48 +00:00
soda
678807689c fix error in previous my change 1999-03-30 17:34:55 +00:00
mycroft
479f35bc93 Make the usage string match the man page. 1999-03-30 17:32:44 +00:00
soda
530794ac61 - add _C_LABEL() to IMPORT(), to make this consistent with EXPORT().
- fix some oversight of previous my changes on defined(USE_AENT) or
  !defined(__NO_LEADING_UNDERSCORES__) case.
1999-03-30 16:50:04 +00:00
mycroft
ca5dd9fee7 The AD1848/CS4231 attachment doesn't create DMA maps any more, so we have to
do it here.  This is preferrable anyway, since we're not actually doing DMA
through the AD/CS chip.
1999-03-30 16:40:47 +00:00
perseant
4158afaaf3 Add initialization to quell compiler warning (only on some platforms?) 1999-03-30 16:11:43 +00:00
chs
039c17eca9 remove some old #if 0'd-out debugging code. 1999-03-30 16:07:47 +00:00
perseant
322fef73ae Move variable initialization to the top of lfs_vflush 1999-03-30 16:03:16 +00:00
mycroft
a3346d4ca8 Page 0 should never get R/M emulation. 1999-03-30 15:13:42 +00:00
mrg
e90ff76184 document new play -f/-s/-P-/c/-e, s/name/named/ from mason in pr#7292. update dates. 1999-03-30 14:48:49 +00:00