freebsd-nq/sys
John Baldwin 401e7fff61 Revert previous untested revision. The i386 loader consists of three parts:
At the front is btxldr, in the middle is BTX itself (our mini-kernel), and
then the 'client' (loader.bin) which is the actual loader itself.  boot2
just executes a raw ELF or a.out binary with the only setup provided being
that a bootinfo structure is passed on the stack.  Now, since loader.bin
is a BTX client, the loader needs to be able to locate a BTX kernel for
the client to execute in the context.  Thus, just like pxelder, btxldr
uses the a.out header on the loader binary to find the BTX kernel stored
in the loader and set it up.  It does _not_ just reuse the BTX kernel
that boot2 invoked it with.  This is because it can't assume that it will
_have_ a "spare" BTX kernel lying around.  For example, when cdboot
loads the loader there isn't an existing BTX kernel.  In fact, cdboot
will only work with an a.out loader as well since it also "borrows" the
BTX kernel in the loader binary (which it finds by parsing the a.out
header) just as pxeldr does.  The only difference between cdboot and
pxeldr is where they get /boot/loader from.

If we wanted to make /boot/loader be an actual ELF binary we would need
to change the following utilites to handle that (and they all have to be
able to handle locating the BTX kernel inside of an ELF binary somehow):
- btxldr
- pxeldr
- cdboot

If we didn't want to require a flag day but make the transition smooth
then we need to be able to support both a.out and ELF versions of
/boot/loader which isn't exactly trivial since all three of these utilities
are written in assembly.

Pointy-hat to:	peter
2002-08-30 14:59:47 +00:00
..
alpha Change hw.physmem and hw.usermem to unsigned long like they used to be 2002-08-30 04:04:37 +00:00
amd64 Unbreak kernel build by printing Maxmem using %ld instead of old (now changed) 2002-08-30 06:13:39 +00:00
arm Since arm and powerpc aren't far enough to set stathz, take a 2002-08-26 03:44:11 +00:00
boot Revert previous untested revision. The i386 loader consists of three parts: 2002-08-30 14:59:47 +00:00
cam Add \n to various printfs. grep shows these should be the last ones. 2002-08-27 18:43:14 +00:00
coda Fix typo in the last revision. 2002-08-04 19:34:38 +00:00
compat Replace (ab)uses of "NULL" where "0" is really meant. 2002-08-22 21:24:01 +00:00
conf Initiate deorbit burn for sys/kern/link_aout.c. We never shipped a.out 2002-08-29 01:48:09 +00:00
contrib Fix kernel build breakage when ACPI_DEBUG option is specified. 2002-08-29 08:31:06 +00:00
crypto
ddb When talking about c_db_sym_t, mention that it is not just like db_sym_t: 2002-08-14 17:56:47 +00:00
dev Whitespace-only: don't mix tabs and spaces for doing identation. 2002-08-30 14:21:01 +00:00
fs Replace various spelling with FALLTHROUGH which is lint()able 2002-08-25 13:23:09 +00:00
geom Use 'p' as the partition specifier instead of 's'. We continue to use 2002-08-24 22:42:16 +00:00
gnu In order to better support flexible and extensible access control, 2002-08-15 20:55:08 +00:00
i4b Bugfix to enable dialer "connected" response. 2002-08-27 14:19:28 +00:00
i386 Unbreak kernel build by printing Maxmem using %ld instead of old (now changed) 2002-08-30 06:13:39 +00:00
ia64 Change hw.physmem and hw.usermem to unsigned long like they used to be 2002-08-30 04:04:37 +00:00
isa Add suspend/resume method to syscons. This switch the mode 2002-08-25 18:35:44 +00:00
isofs/cd9660 Replace various spelling with FALLTHROUGH which is lint()able 2002-08-25 13:23:09 +00:00
kern Change hw.physmem and hw.usermem to unsigned long like they used to be 2002-08-30 04:04:37 +00:00
libkern Include sys/libkern.h for the kernel prototypes of these libkern functions 2002-08-22 20:08:07 +00:00
modules Fix this pending the decision of which of the redundant 2002-08-27 15:59:19 +00:00
net Fix a silly typo in user-setable promisc mode code. 2002-08-30 13:37:13 +00:00
netatalk Introduce experimental support for MAC in the AppleTalk/EtherTalk stack. 2002-08-15 18:58:44 +00:00
netatm Replace various spelling with FALLTHROUGH which is lint()able 2002-08-25 13:23:09 +00:00
netgraph Don't use "NULL" when "0" is really meant. 2002-08-22 00:30:03 +00:00
netinet some ipfilter files that accidently got imported here 2002-08-29 13:27:26 +00:00
netinet6 Lock the sysctl(8) knobs that turn ip{,6}fw(8) firewalling and 2002-08-25 03:50:29 +00:00
netipx Replace various spelling with FALLTHROUGH which is lint()able 2002-08-25 13:23:09 +00:00
netkey
netnatm
netncp
netns Replace various spelling with FALLTHROUGH which is lint()able 2002-08-25 13:23:09 +00:00
netsmb <sys/lock.h> is a prerequisite for <sys/mutex.h>, so include the former 2002-08-27 12:22:06 +00:00
nfs
nfsclient Increase size of ifnet.if_flags from 16 bits (short) to 32 bits (int). To avoid 2002-08-18 07:05:00 +00:00
nfsserver Make the V2 errno translation more resistent to new errnos. 2002-08-21 19:28:44 +00:00
pc98 Change hw.physmem and hw.usermem to unsigned long like they used to be 2002-08-30 04:04:37 +00:00
pccard Add 16-bit before bus to keep the words card and bus apart. 2002-07-31 20:01:11 +00:00
pci Add a device description for Intel 82801CA/CAM (ICH3) USB controller 2002-08-28 20:24:49 +00:00
posix4
powerpc Change hw.physmem and hw.usermem to unsigned long like they used to be 2002-08-30 04:04:37 +00:00
rpc
security Prefer NULL to 0 when passing a NULL pointer. 2002-08-20 02:54:09 +00:00
sparc64 Change hw.physmem and hw.usermem to unsigned long like they used to be 2002-08-30 04:04:37 +00:00
sys Change hw.physmem and hw.usermem to unsigned long like they used to be 2002-08-30 04:04:37 +00:00
tools - Add two new debugging macros: ASSERT_VI_LOCKED and ASSERT_VI_UNLOCKED 2002-08-21 06:19:29 +00:00
ufs Correctly handle setting, getting and deleting EA's with zero length content. 2002-08-30 08:57:09 +00:00
vm Change hw.physmem and hw.usermem to unsigned long like they used to be 2002-08-30 04:04:37 +00:00
Makefile