freebsd-src/sys
Peter Wemm 37b087a645 Clean up some low level bootstrap code:
- stop using the evil 'struct trapframe' argument for mi_startup()
  (formerly main()).  There are much better ways of doing it.
- do not use prepare_usermode() - setregs() in execve() will do it
  all for us as long as the p_md.md_regs pointer is set.  (which is
  now done in machdep.c rather than init_main.c.  The Alpha port did it
  this way all along and is much cleaner).
- collect all the magic %cr0 etc register settings into one place and
  have the AP's call that instead of using magic numbers (!!) that keep
  changing over and over again.
- Make it safe to call kthread_create() earlier, including during the
  device probe sequence.  It doesn't need the callback mechanism that
  NetBSD's version uses.
- kthreads created this way are root-less as they exist before the root
  filesystem is mounted.  init(1) is set up so that it aquires the root
  pointers prior to running.  If other kthreads want filesystem acccess
  we can make this code more generic.
- set all threads start times once we have decided what time it is.
- init uses a trampoline rather than the evil prepare_usermode() hack.
- kern_descrip.c has a couple of tweaks to deal with forking when there
  is no rootdir or cwd etc.
- adjust the early SYSINIT() sequence so that a few prereqisites are in
  place. eg: make sure the run queue is initialized before doing forks.

With this, the USB code can easily create a kthread to do the device
tree discovery.  (I have tested it, it works nicely).

There are still some open issues before this is truely useful.
- tsleep() does not like working before the clock is running.  It
  sort-of tries to spin wait, but it can do more useful things now.
- stopping a kthread in kld code at unload time is "interesting" but
  we have a solution for that.

The Alpha code needs no changes for this.  It already uses pretty much the
same strategies, but a little cleaner.
2000-08-11 09:05:12 +00:00
..
alpha Regen. (Fix SYS_exit) 2000-07-29 10:07:38 +00:00
amd64 Clean up some low level bootstrap code: 2000-08-11 09:05:12 +00:00
boot Add support to send the string 'PXEClient' as the Vendor class 2000-08-11 08:36:17 +00:00
cam Don't attempt to actually read SAF-TE temperature objects- nobody seems 2000-08-08 23:00:11 +00:00
coda Remove 42 unneeded #include <sys/ioccom.h>. 2000-05-03 07:31:38 +00:00
compat Regen. (Fix SYS_exit) 2000-07-29 10:07:38 +00:00
compile
conf activate via82c686 audio driver 2000-08-09 01:08:59 +00:00
contrib/dev Remove these here, these were repocopied to src/sys/ufs/ffs. 2000-06-23 00:11:32 +00:00
crypto sync with kame tree as of july00. tons of bug fixes/improvements. 2000-07-04 16:35:15 +00:00
ddb Previous commit changing SYSCTL_HANDLER_ARGS violated KNF. 2000-07-04 11:25:35 +00:00
dev Fix the ICH2 ATA100 support, and proberly downgrade the chip setup when 2000-08-10 07:34:49 +00:00
fs Rename the loadable nullfs kernel module: null -> nullfs 2000-07-28 11:54:09 +00:00
geom Move the truncation code out of vn_open and into the open system call 2000-07-04 03:34:11 +00:00
gnu sync CCR register definitions with creative sources 2000-08-06 20:58:11 +00:00
i4b Borrow phk's axe and apply the next stage of config(8)'s evolution. 2000-06-13 22:28:50 +00:00
i386 Clean up some low level bootstrap code: 2000-08-11 09:05:12 +00:00
isa Avoid a '"fd" is usurping ...' message. 2000-08-09 12:45:04 +00:00
isofs/cd9660 This patch corrects the first round of panics and hangs reported 2000-07-24 05:28:33 +00:00
kern Clean up some low level bootstrap code: 2000-08-11 09:05:12 +00:00
libkern Comment out unavailable call. This needs to be revisited when the entropy 2000-06-25 10:15:58 +00:00
miscfs Rename the loadable nullfs kernel module: null -> nullfs 2000-07-28 11:54:09 +00:00
modules activate via82c686 audio driver 2000-08-09 01:08:59 +00:00
msdosfs Certain error contitions cause msdosfs_rename() to decrement the 2000-07-14 11:52:56 +00:00
net Replace nonexistent !defined(_LKM) by !defined(KLD_MODULE) 2000-08-01 00:40:32 +00:00
netatalk Just need to pass the address family to if_simloop(), not the whole sockaddr. 2000-05-24 21:16:56 +00:00
netatm Just need to pass the address family to if_simloop(), not the whole sockaddr. 2000-05-24 21:16:56 +00:00
netgraph Oops, previous commit fixed a bug that was already fixed before. 2000-08-10 23:04:46 +00:00
netinet - Do not modify Peer's Call ID in outgoing Incoming-Call-Connected 2000-08-09 11:25:44 +00:00
netinet6 Make ip6fw zero work. 2000-08-10 20:41:33 +00:00
netipx Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
netkey Add missing #include to unbreak IPSEC_DEBUG builds 2000-07-07 08:36:00 +00:00
netnatm Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
netncp Previous commit changing SYSCTL_HANDLER_ARGS violated KNF. 2000-07-04 11:25:35 +00:00
netns
nfs This patch corrects the first round of panics and hangs reported 2000-07-24 05:28:33 +00:00
nfsclient This patch corrects the first round of panics and hangs reported 2000-07-24 05:28:33 +00:00
nfsserver This patch corrects the first round of panics and hangs reported 2000-07-24 05:28:33 +00:00
ntfs Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
nwfs Previous commit changing SYSCTL_HANDLER_ARGS violated KNF. 2000-07-04 11:25:35 +00:00
pc98 Merged from sys/i386/conf/GENERIC revisions 1.266 and 1.267. 2000-08-08 11:57:09 +00:00
pccard Add some infrastructure support for dealing with large attribute 2000-08-10 17:35:11 +00:00
pci Close PR 20438. Make fix for preserving LED settings conditional on 2000-08-07 17:03:20 +00:00
posix4 Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
powerpc Support bounce buffers for ISA DMA on the alpha. This is required for the 2000-06-19 18:41:27 +00:00
rpc
svr4 Regen. (Fix SYS_exit) 2000-07-29 10:07:38 +00:00
sys o Add POSIX1E_CAPABILITY_EXTATTR_NAME, a string constant for the 2000-08-08 18:47:59 +00:00
tools remove crufty exec stuff, perl is in the base system 2000-06-27 19:09:55 +00:00
ufs Initialize *countp to 0 in stub for softdep_flushworklist(). 2000-08-09 00:41:54 +00:00
vm Minor cleanups: 2000-07-28 22:03:08 +00:00
Makefile If "MODULES_WITH_WORLD" is defined, sys/modules will be built with the 2000-06-17 10:51:56 +00:00