Commit Graph

175 Commits

Author SHA1 Message Date
thorpej
07a9ee32ba Don't need cz or cy devices in INSTALL kernel, and they put space
pressure on install media.
2004-05-11 17:36:43 +00:00
drochner
19f047f8d0 SIGTRAMP_VALID() should not pollute the user namespace 2004-05-10 21:51:49 +00:00
kleink
7b3b647647 Factor out W{CHAR,INT}_{MAX,MIN} into their own header file. 2004-05-08 21:51:47 +00:00
toshii
46c8f26134 #include acpi.h and some others to be able to powerdown via acpi. 2004-05-03 08:59:38 +00:00
toshii
a73f92f0e2 Compile TSC support code when __x86_64__ is defined. 2004-04-30 17:58:04 +00:00
itojun
6123043789 pass string length (= boundary info) to pci_devinfo so that we do not run over
the end of memory region
2004-04-23 21:13:05 +00:00
fvdl
07fd2b039b Adapt for new aapic.c location. 2004-04-18 18:36:56 +00:00
fvdl
9a03155b3f Move these files to x86, so that the i386 port can use them too
(for booting i386 kernels on amd64 machines).
2004-04-18 18:33:33 +00:00
fvdl
7a44f0ad1f Make tracing work better (through interrupts, etc). Essentially a synch
with i386.
2004-04-16 14:21:56 +00:00
drochner
568386df44 We should ensure stack alignment _after_ subtracting sizeof(sigframe).
Should fix PR bin/24948 by Wolfgang S. Rupprecht.
(nuke getframe() completely because its interface doesn't support this,
and it it used at one place only anyway)
2004-03-28 15:46:14 +00:00
drochner
c83eb997b8 nothing cares about __HAVE_SIGINFO anymore, so nuke it 2004-03-26 21:39:57 +00:00
drochner
88a4abdbd2 the whole sigcode business is COMPAT_16 only 2004-03-26 18:44:36 +00:00
drochner
cb0991ae18 Native code doesn't need sigcode. Never.
So replace it by a dummy setting sigcode=esigcode=0, just to get
COMPAT_16+COMPAT_NETBSD32 kernels linking.
2004-03-25 18:33:17 +00:00
drochner
967b985e5b clean up the .globl confusion 2004-03-25 15:47:12 +00:00
drochner
be80b39cd6 remove sigcontext-style signal delivery code 2004-03-25 15:32:27 +00:00
drochner
e2afc3a3d8 always use siginfo-style signal delivery for native programs 2004-03-25 15:29:26 +00:00
drochner
badd642235 only accept signal trampoline version 2, and remove "struct sigcontext" 2004-03-25 15:27:26 +00:00
atatat
19af35fd0d Tango on sysctl_createv() and flags. The flags have all been renamed,
and sysctl_createv() now uses more arguments.
2004-03-24 15:34:46 +00:00
drochner
ab2eb6de06 put the old and the very old syscall glue into appropriate
COMPAT_ conditionals
2004-03-23 19:39:42 +00:00
drochner
35b8d1d3ff initialize the old "int 0x80" syscall only for COMPAT_16/NETBSD32,
and the very old callgate for COMPAT_10/IBCS2
2004-03-23 19:35:16 +00:00
drochner
be0359e629 -don't refer to oosyscall() unless COMPAT_10 or COMPAT_IBCS2 is defined
-improve diagnostic message on bus errors in the TRAP_SIGDEBUG case
2004-03-23 19:09:01 +00:00
drochner
ea5ee473a8 bump default data size to 256M, enough to build a "-g" kernel 2004-03-23 18:54:32 +00:00
cl
ea5ec0212d add kernel part of concurrency support for SA on MP systems
- move per VP data into struct sadata_vp referenced from l->l_savp
  * VP id
  * lock on VP data
  * LWP on VP
  * recently blocked LWP on VP
  * queue of LWPs woken which ran on this VP before sleep
  * faultaddr
  * LWP cache for upcalls
  * upcall queue
- add current concurrency and requested concurrency variables
- make process exit run LWP on all VPs
- make signal delivery consider all VPs
- make timer events consider all VPs
- add sa_newsavp to allocate new sadata_vp structure
- add sa_increaseconcurrency to prepare new VP
- make sys_sa_setconcurrency request new VP or wakeup idle VP
- make sa_yield lower current concurrency
- set sa_cpu = VP id in upcalls
- maintain cached LWPs per VP
2004-03-14 01:08:47 +00:00
bjh21
dff5222d3a Abstract the interface between pckbc(4), and the pckbd(4) and pms(4)
drivers that attach to it.  This allows for other host interface chips
that use the same keyboards and mice, such as the ones in the ARM
IOMD20, ARM7500, and SA-1111.  The PC-compatible driver is still
called pckbc(4), and the new abstraction layer is "pckbport", so the
child devices have moved from sys/dev/pckbc to sys/dev/pckbport, which
also contains some code shared between all host controllers.  To avoid
incompatibility, pckbdreg.h is still installed in
/usr/include/dev/pckbc.

In theory, this shouldn't cause any behavioural changes in the drivers
concerned.  Thy just use rather more function pointers than before.  Tested
on i386 and (with a new host driver) acorn32.  Compiled on several other
affected architectures.
2004-03-13 17:31:33 +00:00
drochner
d56da55ea4 -oops - correct the x87 si_code reporting to use the current fsw
-for XMM traps, report mxcsr in si_trap
2004-03-05 21:21:14 +00:00
drochner
571265fc35 deal with XMM exceptions
(I'm not sure whether it is right to clear the "sticky"
exception bits here, but in the i387 case even the whole
FPU is initialized...)
2004-03-05 17:20:13 +00:00
drochner
302b606369 fix some problems with lazy fpu context handling:
-if a new process gets a CPU with an FPU state of another process, it
 needs to initialize it to a clean state
 (actually, put the "fninit" where it belongs logically)
-initialize mxcsr as well
minor cleanup/optimization
Signal delivery after unmasking some cause is still broken - it doesn't
care about xmm exceptions. For now, set at least si_code to something
positive so that it doesn't look like a user generated asynchonous signal.
2004-03-03 20:27:53 +00:00
drochner
98dbb9f046 on (fast) syscall exit, force %ds to its standard value --
it might have been modified by a netbsd32 process
2004-03-01 12:10:41 +00:00
drochner
7925327e58 set MDP_IRET in cpu_setmcontext() - the normal (fast)
syscall exit is not able to propagate all register
arguments
2004-03-01 12:06:02 +00:00
drochner
972fe86c42 Provide a dummy cpu_exec_aout_makecmds() to make a kernel
with COMPAT_NETBSD32+COMPAT_AOUT link.
netbsd-1.3/i386 binaries are running now.
2004-02-20 18:11:16 +00:00
drochner
289fa68010 provide a definition NETBSD32_MID_MACHINE which tells for the a.out MID
to look for in 32-bit emulation
2004-02-20 16:11:44 +00:00
drochner
2982fa170d use no-execute page permissions if supported 2004-02-19 17:18:38 +00:00
thorpej
e1e9cfd40a Comment out some SYSV* and *VERBOSE options to shrink these down so
they fit in the current boot floppies.
2004-02-16 02:43:53 +00:00
drochner
8d3cefb29e grab the kernel lock during 32-bit syscalls too 2004-02-13 17:07:56 +00:00
wiz
d20841bb64 Uppercase CPU, plural is CPUs. 2004-02-13 11:36:08 +00:00
matt
b820eb3ad3 32-bit corefiles should use a MID for i386, not xf86_64. 2004-02-11 01:01:37 +00:00
mrg
719a671e87 back out previous; it was only required for a dead function. 2004-01-21 11:31:20 +00:00
jdolecek
46fdc63ac8 add register64_t which appears to be necessary for COMPAT_NETBSD32 nowadays 2004-01-20 20:30:41 +00:00
jdolecek
6c14651ea0 cleanup old lpt(4) attachment, and glue ppbus in so that they can coexist:
* lpt device is defined in MI place (dev/ppbus/files.ppbus), dev/ic/lpt.c
  is included there too; dev/ic/lpt.c is not included if ppbus is
  configured or if there is alternative platform lpt (like for pc532)
* g/c MD lpt definitions and custom puc/upc attachments,
  glue moved to conf/files and dev/pci/files.pci respectively; remove
  device lpt definition from dev/isa/files.isa
* add ppbus parport attribute, atppc device attachments, adjust plip and lpt
  glue
2004-01-20 19:58:00 +00:00
martin
da4e67accc Do not export __HAVE_RAS to userland. Applications are supposed to try
rasctl() and detect failure with EOPNOTSUPP.
2004-01-18 18:23:19 +00:00
jonathan
abb59e6f0c Add support for opencrypto, PCI accelerators to sys/arch/*/conf/GENERIC
files for machines I know to have genuine PCI slots.  As sent to tech-kern
for feedback in December 2003. Based on feedback, opencrypto is commented
out in the macppc GENERIC (due to absense of GENERIC_SOFTINT support),
and added to the sparc64 config (sys/arch/sparc64/conf/GENERIC32).
2004-01-14 22:29:03 +00:00
yamt
7246e2cc80 issue memory read barrier for BUS_DMASYNC_POSTREAD operation.
PR/21665 from Stephan Uphoff.
2004-01-14 11:31:55 +00:00
jdolecek
0ee51a3dec finish previous (removal of 'reaper' kernel thread):
* move tss_free() call to the new cpu_lwp_free()
* g/c cpu_wait()

fixes PR kern/24067 by Nicolas Joly
2004-01-12 14:31:46 +00:00
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
pk
70f20a1217 Replace the traditional buffer memory management -- based on fixed per buffer
virtual memory reservation and a private pool of memory pages -- by a scheme
based on memory pools.

This allows better utilization of memory because buffers can now be allocated
with a granularity finer than the system's native page size (useful for
filesystems with e.g. 1k or 2k fragment sizes).  It also avoids fragmentation
of virtual to physical memory mappings (due to the former fixed virtual
address reservation) resulting in better utilization of MMU resources on some
platforms.  Finally, the scheme is more flexible by allowing run-time decisions
on the amount of memory to be used for buffers.

On the other hand, the effectiveness of the LRU queue for buffer recycling
may be somewhat reduced compared to the traditional method since, due to the
nature of the pool based memory allocation, the actual least recently used
buffer may release its memory to a pool different from the one needed by a
newly allocated buffer. However, this effect will kick in only if the
system is under memory pressure.
2003-12-30 12:33:13 +00:00
thorpej
2f2ca9e66b Split the Intel i31244 SATA controller ("Artisea") driver out of piixide
into its own driver (artsata).
2003-12-14 01:32:01 +00:00
thorpej
98f7d12017 Split out the Silicon Image SATALink support into its own driver,
"satalink".
2003-12-13 23:13:40 +00:00
jmc
695a2a2f9f Change reference at bottom from sys/dev/majors to sys/conf/majors to match
reality
2003-12-10 02:04:00 +00:00
fvdl
e16473e240 Segment registers are only 16 bits wide, so only check 16 bits worth of
them for validity in check_mcontext.
2003-12-06 17:35:44 +00:00
atatat
13f8d2ce5f Dynamic sysctl.
Gone are the old kern_sysctl(), cpu_sysctl(), hw_sysctl(),
vfs_sysctl(), etc, routines, along with sysctl_int() et al.  Now all
nodes are registered with the tree, and nodes can be added (or
removed) easily, and I/O to and from the tree is handled generically.

Since the nodes are registered with the tree, the mapping from name to
number (and back again) can now be discovered, instead of having to be
hard coded.  Adding new nodes to the tree is likewise much simpler --
the new infrastructure handles almost all the work for simple types,
and just about anything else can be done with a small helper function.

All existing nodes are where they were before (numerically speaking),
so all existing consumers of sysctl information should notice no
difference.

PS - I'm sorry, but there's a distinct lack of documentation at the
moment.  I'm working on sysctl(3/8/9) right now, and I promise to
watch out for buses.
2003-12-04 19:38:21 +00:00