Commit Graph

93 Commits

Author SHA1 Message Date
jdolecek
089abdad44 Rearrange process exit path to avoid need to free resources from different
process context ('reaper').

From within the exiting process context:
* deactivate pmap and free vmspace while we can still block
* introduce MD cpu_lwp_free() - this cleans all MD-specific context (such
  as FPU state), and is the last potentially blocking operation;
  all of cpu_wait(), and most of cpu_exit(), is now folded into cpu_lwp_free()
* process is now immediatelly marked as zombie and made available for pickup
  by parent; the remaining last lwp continues the exit as fully detached
* MI (rather than MD) code bumps uvmexp.swtch, cpu_exit() is now same
  for both 'process' and 'lwp' exit

uvm_lwp_exit() is modified to never block; the u-area memory is now
always just linked to the list of available u-areas. Introduce (blocking)
uvm_uarea_drain(), which is called to release the excessive u-area memory;
this is called by parent within wait4(), or by pagedaemon on memory shortage.
uvm_uarea_free() is now private function within uvm_glue.c.

MD process/lwp exit code now always calls lwp_exit2() immediatelly after
switching away from the exiting lwp.

g/c now unneeded routines and variables, including the reaper kernel thread
2004-01-04 11:33:29 +00:00
agc
7db1d33cba Modify the licences of code written by Theo De Raadt from a 4-clause
to a 2-clause licence (retaining UCB clauses (1) and (2)), per PR
22409 from Joel Baker, approved by Theo de Raadt, and ratified by
myself - the only discrepancy being the handling of the original
clause 3 in src/usr.sbin/yppoll/yppoll.c.
2003-12-10 12:06:25 +00:00
tsutsui
375036d6b3 Specify 32bit daddr_t not only for ufsboot but also libsa and all SA_PROGs.
Now bootxx and ufsboot works again.
2003-11-30 05:32:39 +00:00
chs
d9fc04266e fix parallel build. 2003-11-02 16:01:16 +00:00
chs
79f70b37d7 find libsa files. 2003-11-02 16:00:54 +00:00
mrg
f06db78213 NULL -> 0 bogon. 2003-10-28 08:00:36 +00:00
lukem
f85d2d1c14 Use ${HOST_SH} instead of `sh'.
If necessary, pull in <bsd.sys.mk> to get the definition of HOST_SH;
Makefiles that pull in one of (most of) <bsd.*.mk> will get this anyway.
2003-10-26 07:25:33 +00:00
cl
4169237230 SA_SIGINFO support for m68k (port specific changes) 2003-09-22 14:26:57 +00:00
cl
cebad0b338 make compile 2003-09-21 14:41:33 +00:00
dsl
f3404c9f63 Fix same breakage as previous (need memmove for symlink handling in ufs.c)
but use (probably) smaller footprint code from libsa.
2003-08-22 21:14:35 +00:00
he
241ad00001 Adapt to const'ing of the first argument of the open function in fs_ops. 2003-08-21 22:34:48 +00:00
he
395b0c6682 Now that ufsboot / ufs.c uses memmove(), we need to include it here. 2003-08-21 13:12:32 +00:00
agc
aad01611e7 Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
2003-08-07 16:26:28 +00:00
fredette
c7f2e26f8b Bumped the version number to account for fixes in tapeboot. 2003-08-05 19:14:56 +00:00
fredette
100e6f3698 Added seek support for tape files. Before, seeking a tape file
would silently fail, causing loadfile to load file contents into
the wrong addresses.

On the sun3/sun3x, MARK_START was incorrectly set too.  Also
added support for booting a sun2.
2003-08-05 19:10:26 +00:00
mrg
7f6765697c need -ffreestanding 2003-07-27 05:04:43 +00:00
lukem
ed51729135 __KERNEL_RCSID() 2003-07-15 02:54:31 +00:00
fvdl
7dd7f8baa2 Handle 64bit DMA addresses on PCI for platforms that can (currently only
enabled on amd64). Add a dmat64 field to various PCI attach structures,
and pass it down where needed. Implement a simple new function called
pci_dma64_available(pa) to test if 64bit DMA addresses may be used.
This returns 1 iff _PCI_HAVE_DMA64 is defined in <machine/pci_machdep.h>,
and there is more than 4G of memory.
2003-06-15 23:08:53 +00:00
thorpej
e43fecb228 Change bounds_check_with_label() to take a pointer to the disk structure,
rather than the label itself.  This paves the way for some future changes.
2003-05-10 23:12:28 +00:00
wiz
1ffa7b76c4 DMA, not dma nor Dma. 2003-05-03 18:10:37 +00:00
dsl
d91455ce26 Change return type of readdisklabel() to const char *
I hope I've found all the correct places!
2003-05-02 08:45:10 +00:00
thorpej
3b9d583516 Use PAGE_SIZE rather than NBPG. 2003-04-01 15:23:07 +00:00
kristerw
6a6ff92fd5 Revert last change (dependance on divdi3.c, moddi3.c, and qdivrem.c) and
use 32bit daddr_t instead, as suggested by Izumi Tsutsui.
2003-03-30 00:17:28 +00:00
kristerw
3735c66934 Add snprintf, divdi3, moddi3, and qdivrem so that ufsboot builds. 2003-03-16 01:29:04 +00:00
kent
cd7d9faeaf Introduce BUS_DMA_NOCACHE, and bus_dmamem_map() of i386 supports it. 2003-01-28 01:07:51 +00:00
thorpej
d2275d51e1 Merge the nathanw_sa branch. 2003-01-18 06:55:21 +00:00
wiz
7e681f7063 interrupt with two rs. 2003-01-06 13:04:54 +00:00
thorpej
9c1214153c Use aprint_normal() for cfprint routines. 2003-01-01 02:20:47 +00:00
lukem
0635de35a3 Remove KDIR=, since SYS_INCLUDE=symlinks and KDIR are not supported any more. 2002-11-26 23:30:07 +00:00
chs
db6b326aab merge all the m68k copies of kgdb_machdep.c. 2002-11-03 01:11:58 +00:00
chs
1c2419d28a merge the 12 copies of vm_machdep.c on the m68k platforms.
clean up some other stuff along the way, including:
 - use m68k/cacheops.*, remove duplicates from cpu.h.
 - centralize a few declarations in (all the copies of) cpu.h.
 - define M68K_VAC on platforms which have a VAC.
 - switch the sun platforms to the (now common) proc_trampoline().
 - do the phys_map thang on the sun platforms too, no reason not to.
2002-10-20 02:37:21 +00:00
thorpej
4bf871a755 Add trailing ; to CFATTACH_DECL. 2002-10-02 16:02:08 +00:00
thorpej
fa165ee3fd Use CFATTACH_DECL(). 2002-10-01 05:18:59 +00:00
thorpej
f818766afe Declare all cfattach structures const. 2002-09-27 20:31:45 +00:00
provos
0f09ed48a5 remove trailing \n in panic(). approved perry. 2002-09-27 15:35:29 +00:00
thorpej
6c88de3b53 Introduce a new routine, config_match(), which invokes the
cfattach->ca_match function in behalf of the caller.  Use it
rather than invoking cfattach->ca_match directly.
2002-09-27 03:17:40 +00:00
thorpej
d1ad2ac4f2 Rather than referencing the cfdriver directly in the cfdata entries,
instead use a string naming the driver.  The cfdriver is then looked
up in a list which is built at run-time.
2002-09-27 02:24:06 +00:00
thorpej
71404bb533 Don't include <sys/map.h>. 2002-09-25 22:21:01 +00:00
fredette
51c7735d8a Compile all standalones for the 68010, which makes bootblocks
compiled for the sun3 also usable on a sun2.  This enables
making a single filesystem that can boot on all of sun2, sun3,
and sun3x (say, like on a CD-ROM).
2002-06-17 13:35:04 +00:00
fredette
bcd8676e8a Reverted previous commit. It was meant to fix a problem that
was already fixed by nathanw, had I bothered to check.
2002-06-03 00:56:55 +00:00
fredette
e0b7d8c222 Now make a machine/ directory with symlinks to a small number
of machine-specific headers.  When ${MACHINE} is sun2, this
allows building the sun3 and sun3x parts of libsa, which need
things like <machine/param3.h> and <machine/param3x.h> to be
#includeable.
2002-06-03 00:29:04 +00:00
fredette
180293c7b7 exit() is now declared in libsa's stand.h, and takes an int. 2002-06-03 00:18:26 +00:00
drochner
d2b9876081 move initialization of the "struct pglist" returned by uvm_pglistalloc()
from the calling code into uvm_pglistalloc() itself for consistency
and easier error handling
2002-06-02 14:44:35 +00:00
nathanw
343166210e Always build the m68000 math routines, since we compile libsa in m68000 mode. 2002-05-30 22:33:12 +00:00
nathanw
88591a36d8 #include <arch/sun3/include/param.h>, not param3x.h, so that we get
appropriate multiple-inclusion protection. The #define _SUN3X_ ensures
that param3x.h is included by param.h.
2002-05-30 22:31:57 +00:00
lukem
adc470b96d only include scsi support if NSCSIBUS > 0
fixes sun2 (and probably sun3) DISKLESS kernel build
2002-05-24 09:51:07 +00:00
nathanw
eb5a18d259 Deliberately #include the appropriate arch-specific param.h to get
the correct value for NBSG, even when building with a different sun68k
target.
2002-05-23 03:50:37 +00:00
thorpej
4daab7072a Don't access a scsipi channel's periph table directly; use
scsipi_lookup_periph().
2002-05-16 02:50:53 +00:00
lukem
966b42a3e6 bootblock.h:
- unify sparc_bbinfo (1064 bytes, with 256 block entries)
  and sun68k_bbinfo (296 byte, with 64 block entries)
  into shared_bbinfo (512 bytes, with 118 block entries),
  which will be also shared by future bbinfo-using platforms
  (including macppc)
- add datestamp to *_BBINFO_MAGIC strings, to prevent installboot vs
  bootxx version skew.
- add macppc support

*/bootxx.c:
- migrate to new shared_bbinfo structure

installboot:
- add macppc support (still needs applepartmap support and testing)
- improve and add some more warnings & errors to installboot
- implement shared_bbinfo_clearboot() and shared_bbinfo_setboot(), which
  perform the majority of the work for bbinfo-using back-ends
  (rather than replicating that across multiple back-ends).
2002-05-15 09:44:54 +00:00
lukem
86671d3350 - implement putstr(), and use in various places instead of printf()
- wrap more debug stuff in #ifdef DEBUG
- for bootxx, provide minimal panic() which uses putstr() instead of printf()

bootxx is now < 7.5KB
2002-05-15 04:07:41 +00:00