Commit Graph

218 Commits

Author SHA1 Message Date
obrien
ef62f71c02 Architecture-specific setjump()/longjmp() bits for the PowerPC
needed by the loader.

Submitted by:	Benno Rice <benno@jeamland.net>
Obtained from:	NetBSD (Wolfgang Solfrank <ws@@tools.de>)
2000-10-10 13:11:47 +00:00
ps
a51e07d640 IN_CLASS*() macros assume host order and s_addr is network byte
order, so we must convert them to host order.
2000-09-20 18:16:20 +00:00
phk
fc5495e38e Turn dkcksum() into an __inline function.
Change its type to u_int_16_t.
2000-09-16 13:43:00 +00:00
ps
0f7130e6ed Backout last commit. It was wrong.. *sigh* 2000-09-10 01:17:47 +00:00
ps
0965196029 include string.h to silence a warning. 2000-09-10 01:10:15 +00:00
msmith
e2f94e5aa5 Expose the NFS root node, so that an evil consumer can use it to get the
NFS filehandle for the root mount.
2000-09-05 22:11:41 +00:00
msmith
6ff92c14b7 Implement readahead buffering for non-raw files. This drastically improves
the efficiency of byte-by-byte read operations on filesystems not already
supported by the block cache (especially NFS).

This should be a welcome change for users booting via PXE, as the loader
now reads its startup files almost instantly, instead of taking tens of
seconds.
2000-09-05 09:52:50 +00:00
peter
fc5face494 Make libstand compile 2000-09-03 11:29:18 +00:00
peter
baf02ac10c Add the -mpreferred-stack-boundary=2 option to reduce code bloat. We
compile the kernel with this.
2000-08-11 23:18:37 +00:00
ps
1dd134848f Add support to send the string 'PXEClient' as the Vendor class
identifier to the DHCP server.  Now you can check for this string
in your dhcp configuration to decide whether you will hand out a
lease to the client or not.
2000-08-11 08:36:17 +00:00
jhb
04f2dc8e0b Cleanup warnings by adding missint prototypes, removing unneeded duplicate
prototypes, and adding in several 'const's.  Also, add some missing
$FreeBSD$'s.

Found by:	BDECFLAGS
2000-08-03 09:08:29 +00:00
jake
961b97d434 Back out the previous change to the queue(3) interface.
It was not discussed and should probably not happen.

Requested by:		msmith and others
2000-05-26 02:09:24 +00:00
jake
d93fbc9916 Change the way that the queue(3) structures are declared; don't assume that
the type argument to *_HEAD and *_ENTRY is a struct.

Suggested by:	phk
Reviewed by:	phk
Approved by:	mdodd
2000-05-23 20:41:01 +00:00
peter
a07fee2cdf Fix the real problem that broke the Alpha loader this last week. It
was not the fault of the module code, nor FICL.  The malloc code requires
sbrk() to return addresses that were at least 16 byte aligned.  If the
Alpha loader happened to be 8 byte but not 16 byte aligned in length, then
you would get a zfree() panic at startup.

Incidently, this affected the i386 loader as well, and explains why
the static heap changed things and why jlemon had trouble when the bss
was not ending at a multiple of 8 bytes.

My fix is to 16 byte align it on all arches, even though the x86 version
only required 8 byte alignment (struct MemNode is smaller there).  We could
page align it if we wanted to be paranoid, but it isn't presently necessary.
2000-05-12 22:43:20 +00:00
peter
0f1968a738 We compile expressly on the alpha with -mno-fp-regs - so do not use them
explicitly here. This was the original cause of instruction faults on
the Alpha in loader. (not this code, but the same problem in libficl.a)
2000-05-12 21:48:54 +00:00
ps
75b9bb7e77 Fix comment. 2000-05-06 04:50:09 +00:00
ps
222439bc50 Add readdir support to the NFS filesystem in libstand. 2000-05-01 15:03:52 +00:00
ps
2cf1490ab7 Do not attempt to free a nfs node if it is the root node. The root
node is statically allocated and is not guarded, so free will panic
in nfs_close.
2000-05-01 10:53:21 +00:00
jlemon
9f5d586c97 Add a readdir function to the loader fsops vector, and implement the
functionality for some of the filesystesms.
2000-04-29 20:47:10 +00:00
jlemon
0340a88f8a Add ext2fs support to the loader. 2000-04-29 20:44:07 +00:00
ps
4422f2d83b Add a cleanup function. This is needed for PXE where you should
shutdown the UNDI and unload the stack.
2000-04-20 00:06:15 +00:00
ps
1e90e50f9f Break out sendudp and readudp from net.c. This is for PXE, so it
can use its own UDP interface.
2000-04-08 01:18:04 +00:00
sheldonh
329223e6f2 Remove single-space hard sentence breaks. These degrade the quality
of the typeset output, tend to make diffs harder to read and provide
bad examples for new-comers to mdoc.
2000-03-02 09:14:21 +00:00
obrien
edb0f8fb68 trailing white space removal. 2000-01-18 07:43:12 +00:00
obrien
1e82517f05 Add two new functions cd9660_readfile() & cd9660_readdir(), which
cd9660_read() now uses to read CDROMs.  With these changes FreeBSD/Alpha
can now boot from a bootable CDROM.

Submitted by:	dfr
2000-01-18 07:37:10 +00:00
peter
d53e4c1d80 Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL"
is an application space macro and the applications are supposed to be free
to use it as they please (but cannot).  This is consistant with the other
BSD's who made this change quite some time ago.  More commits to come.
1999-12-29 05:07:58 +00:00
peter
8d188898fd Use the ctype.h version of isascii() - it doesn't loose precision and think
that 0x100 (int) is an ascii character.

Submitted by:	bde
1999-12-28 11:48:23 +00:00
peter
070fb078b6 Tidy up some loose ends. nullfs_read/write were returning the wrong value.
Fix some ctype problems - isascii() caused a warning if fed an unsigned
char - it's always > 0 and libstand is compiled with -Wall.
Missing prototype/include in printf.c
1999-12-27 08:45:14 +00:00
peter
89bff97f82 longjumperror() and abort() don't exist in libstand.. Don't test
for a condition we can't handle (like the x86 longjmp).  This was
highlighted by attempting to build FICL into the alpha loader.
1999-11-24 13:54:46 +00:00
dfr
d9e5c7d5f2 Change toupper/tolower so that they don't give a bogus answer if the
argument is already upper/lower.
1999-09-11 17:54:37 +00:00
peter
76f0c923fe $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
imp
404ab5f9ba More egcs warning fixes:
o use braces to avoid potentially ambiguous else
	o don't default to type int (and also remove a useless register
	  modifier).
	o Use parens around assignment values used as truth values.
	o Remove unused function.

Reviewed by: obrien and chuckr
1999-04-25 22:29:30 +00:00
jdp
14244169a1 Don't build with -g. The a.out egcs can't handle it at the moment.
This seems to have snuck back into the Makefile in an unrelated
commit (rev. 1.8).
1999-04-22 15:47:21 +00:00
dcs
f0e98b9519 Remove float-point dependency from i386's version of setjmp()/longjmp(). 1999-02-12 17:22:30 +00:00
dcs
6e51bd9735 Copy _setjmp.S from libc in preparation for loader-specific version. 1999-02-12 17:20:19 +00:00
jkh
97fc2dc4c8 Oops. Missed this in the last commit.
Submitted by: Daniel C. Sobral <dcs@newsguy.com>
1999-02-01 12:32:37 +00:00
msmith
192ad366a1 POSIX introduced optreset to deal with multiple invocations
of getopt (as in, multiple input lines :). This is documented in the
man page and is used in the code, but unistd.h and stand.h do not
declare it. Incidentally, it prevents me fixing a bug in loader's
code... :-)

PR:		misc/9373
Submitted by:	"Daniel C. Sobral" <dcs@newsguy.com>
1999-01-11 06:01:29 +00:00
peter
e99e311d6b Remove stray .endif from previous commit (I hope this is right) 1998-11-04 12:49:31 +00:00
msmith
e663a65541 Don't need this one anymore. 1998-11-04 07:40:05 +00:00
msmith
4674ed7cfb Well I never. Seems like _setjmp()/_longjmp() are just what the doctor
ordered.  This brings the Alpha back to parity, and should bring us
BootForth on both platforms.

Submitted by:	John Birrell (jb@freebsd.org)
1998-11-04 07:39:53 +00:00
msmith
dc1da60388 Improve the quality of isspace() to match expectations. This should make
the Ficl interpreter read its softwords array OK.
1998-11-04 07:04:00 +00:00
msmith
7294da4e68 Don't try to build (nonexistent) Alpha setjmp until we have one. 1998-11-04 00:32:08 +00:00
msmith
e29cc743ca Move setjmp/longjmp implementations here from libc; no signal handling
in libstand, only for i386 until I locate an alpha setjmp/longjmp.

Minimal 64-bit gcc integer support for i386.  This is kinda nasty, and
should be revisited once we decide whether the bootblocks need
quad arithmetic.
1998-11-04 00:23:18 +00:00
msmith
f00eb1aa64 Add:
assert()
	setjmp()/longjmp()
	vsprintf()
1998-11-01 09:31:08 +00:00
msmith
e6108119c4 Add a new field to the devsw structure; dv_print, to print all valid units
etc. associated with the device entry.
Consider EOF an 'error' for fgetstr if we haven't read anything yet.

You *MUST* recompile and reinstall libstand before rebuilding the bootstrap.
1998-10-31 02:48:29 +00:00
dfr
17c3d6ec94 Implement a hook to allow us to reclaim the memory used by the first stage
of the bootstrap (the bit which loads /boot/loader).
1998-10-19 09:08:40 +00:00
obrien
763d39061e To clarify last commit, msmith says:
The reason the Alpha has less room than the i386 is because the bootstrap
is given a 256K mapping by the firmware; to add more requires extra work.
1998-10-17 22:20:06 +00:00
msmith
2fb2fc3d2a Reduce the sbrk() increment from 64K to 4K. There's not much room on the
Alpha, and wasting potentially 64K-4 bytes of RAM just isn't an option.
1998-10-16 19:23:37 +00:00
msmith
56cd124a88 Add strcasecmp source file required for dosfs operation. 1998-10-07 13:50:17 +00:00
msmith
28bef97c3e Enable the DOS filesystem. This allows reading from various DOS filesystems
(FAT12/16/32, VFAT).

Make a private copy of strcasecmp, as the "real" one uses the system ctype
header, which introduces locale poisoning.
1998-10-06 19:23:57 +00:00
msmith
411f2725f9 Don't build with -g. 1998-10-04 08:10:29 +00:00
msmith
c0b467b849 Prune unused zalloc components as recommended by Matt Dillon. Extra debugging
code is still enabled (it's not very expensive).
1998-10-01 17:35:08 +00:00
dfr
236ad5eb3c * Enable old UFS compatibility code for booting from Digital Unix formatted
disks.
* Fix a whole raft of warnings, printf and otherwise.
* Make zalloc work for alpha (just a case of using the right typedef).
* Add some (disabled) malloc debug printing to stand.h.
1998-09-26 10:48:50 +00:00
dillon
7897bd89f8 Fixed setting of mp_End in zextendPool(). A case was missing and mp_Size
no longer reflects the mp_End - mp_Base equivalent.
1998-09-26 03:24:14 +00:00
msmith
ea783268e7 Replace the old and extremely icky Mach/NetBSD allocator with a similarly
compact and much better one donated by Matt Dillon.  Implement a simple
sbrk() which uses the existing setheap() api.

Remove the custom allocator from the UFS code.  It wasn't working quite
right, and it shouldn't be needed with the new allocator.

Fix a serious problem with changing the value of already-existent
environment variables.  Don't attempt to modify the supposedly-const
argument to putenv()

Fix an off-by-one sizing error in the zipfs code detected by the new
allocator.

Submitted by:	zmalloc from Matt Dillon <dillon@backplane.com>
1998-09-26 01:42:40 +00:00
dfr
7c71d4162d Use unsigned chars instead of signed chars when extracting bits of the
inet address.
1998-09-23 21:35:40 +00:00
jkh
17155df940 Include "stand.h", not <stand.h>. 1998-09-21 06:07:34 +00:00
dfr
48b3e54701 Allocate disk buffers using a custom allocator. The standard allocator fragments
extremely badly if disk buffers are freed back into the main heap and the alpha
bootstrap has a restricted address space which just ran out :-(.
1998-09-20 21:42:20 +00:00
dfr
0c4d54326b Use a simple version of inet_ntoa(). The libc one uses inet_ntop which is too
complicated.
1998-09-20 21:40:28 +00:00
msmith
efee224c31 Nuke prototype for strerror, consumers get it from <string.h>
Fix overlooked nullopen() implementation.
1998-09-18 23:00:57 +00:00
msmith
3b7700ffef Path arguments to *_open functions should be const, but we were mangling
them.

Submitted by:	write-protected text segment in BTX
1998-09-18 22:58:01 +00:00
msmith
565c7a3929 Remove (wrong) OBJFORMAT setting. 1998-09-15 02:30:22 +00:00
rnordier
ab70f0b218 Add support for reading directories as files.
Sort out fs_ops, alloc/free.
1998-08-27 10:45:20 +00:00
bde
16b9fca94f Fixed syntax errors (__dead should have gone away years ago, and
__attribute__(()) is a gccism - we use __dead2).
1998-08-24 02:54:33 +00:00
msmith
8e2e50a330 Install libstand header <stand.h> and manpage (libstand.3) 1998-08-20 08:23:12 +00:00
msmith
42e6e188ef This commit was generated by cvs2svn to compensate for changes in r38451,
which included commits to RCS files with non-trunk default branches.
1998-08-20 08:19:55 +00:00
msmith
b29bbd55da This is libstand; a support library for standalone executables (eg. bootstrap
modules).
Obtained from: NetBSD, with some architectural changes and many additions.
1998-08-20 08:19:55 +00:00
msmith
335c4be5b1 This is libstand; a support library for standalone executables (eg. bootstrap
modules).
Obtained from: NetBSD, with some architectural changes and many additions.
1998-08-20 08:19:55 +00:00