Commit Graph

562 Commits

Author SHA1 Message Date
cgd
47449a63d2 kill __P in these files. (I had to look at them anyway with an eye for
adding some protos... and adding them with __P seems wrong, but mixing
__P and not __P in the same file seems wrong too, so...)
2000-06-01 00:04:50 +00:00
thorpej
a7d0570e67 First sweep at scheduler state cleanup. Collect MI scheduler
state into global and per-CPU scheduler state:

	- Global state: sched_qs (run queues), sched_whichqs (bitmap
	  of non-empty run queues), sched_slpque (sleep queues).
	  NOTE: These may collectively move into a struct schedstate
	  at some point in the future.

	- Per-CPU state, struct schedstate_percpu: spc_runtime
	  (time process on this CPU started running), spc_flags
	  (replaces struct proc's p_schedflags), and
	  spc_curpriority (usrpri of processes on this CPU).

	- Every platform must now supply a struct cpu_info and
	  a curcpu() macro.  Simplify existing cpu_info declarations
	  where appropriate.

	- All references to per-CPU scheduler state now made through
	  curcpu().  NOTE: this will likely be adjusted in the future
	  after further changes to struct proc are made.

Tested on i386 and Alpha.  Changes are mostly mechanical, but apologies
in advance if it doesn't compile on a particular platform.
2000-05-26 21:19:19 +00:00
thorpej
26f56b9cab Only use __builtin_va_alist_t if using GCC 2.96 or later. Fixes
pkg/10080, from Matthias Scheler.
2000-05-12 23:49:11 +00:00
jdolecek
8fedbd8497 Add i386-specific part of MicroChannel Architecture bus support, as
found in some older IBM PS/2 machines.

This code is based upon work by Scott D. Telford, with some minor bits
in arch/i386/mca/mca_machdep.c taken from FreeBSD.

XXX this is still very experimental and development version; use at your
XXX own risk
2000-05-11 16:38:10 +00:00
thorpej
b193ffa77c Use __GNUC_PREREQ__(). 2000-05-05 00:20:22 +00:00
thorpej
d3d81e3ad6 Make varargs and stdarg work with GCC 2.96 and later. 2000-05-03 21:54:06 +00:00
thorpej
855b79db92 Let each platform typedef the new __cpu_simple_lock_t, which should
be the most efficient type used for the atomic operations in the
simplelock structure, and should also be __volatile.
2000-05-02 04:41:04 +00:00
thorpej
1dcdb13c04 Implement __cpu_simple_{,un}lock{,try}(), modeled after the Alpha
implementation.
2000-04-29 19:39:51 +00:00
thorpej
f51470a514 Require that each each MACHINE/MACHINE_ARCH supply a lock.h. This file
contains the values __SIMPLELOCK_LOCKED and __SIMPLELOCK_UNLOCKED, which
replace the old SIMPLELOCK_LOCKED and SIMPLELOCK_UNLOCKED.  These files
are also required to supply inline functions __cpu_simple_lock(),
__cpu_simple_lock_try(), and __cpu_simple_unlock() if locking is to be
supported on that platform (i.e. if MULTIPROCESSOR is defined in the
_KERNEL case).  Change these functions to take an int * (&alp->lock_data)
rather than the struct simplelock * itself.

These changes make it possible for userland to use the locking primitives
by including <machine/lock.h>.
2000-04-29 03:31:45 +00:00
thorpej
23694b5ab3 Glue in uvm_pageidlezero(). While here, improve some panic messages
in pmap.c, as requested by Jonathan Stone.
2000-04-24 17:18:16 +00:00
thorpej
8c5710a861 - Declare biosbasemem and biosextmem in <machine/cpu.h>, don't extern
them everywhere they're used.
- Avoid integer overflow when converting bios{base,ext}mem (in units of
  kilobytes) to bytes.
2000-04-21 18:37:20 +00:00
drochner
13c9f8d398 implement bus_space_vaddr() 2000-04-17 17:24:48 +00:00
minoura
78b105698a Move dl* function definitions to libc on ELF.
Based on the patch supplied by Takuya Shiozaki <tshiozak@astec.co.jp>.
See http://mail-index.netbsd.org/tech-userlevel/2000/02/23/0000.html.
2000-04-02 15:35:47 +00:00
simonb
9308187dbf Remove redundant decl of consinit() - it's in <sys/systm.h>.
Remove duplicate definition of delay() - we only need one in this file.
2000-03-29 03:54:03 +00:00
thorpej
6b45fb25a9 The assembler understands rdmsr, wrmsr, rdtsc, and rdpmc, so there's
no need to use .byte.
2000-03-28 19:17:29 +00:00
thorpej
fd21635b22 Extern cpu_id and cpu_vendor[] here. 2000-03-28 19:16:05 +00:00
thorpej
0c4b7c7531 Add functions to read the TSC and Performance Counters. 2000-03-28 01:38:22 +00:00
thorpej
f4f96605b9 Add/correct some MSRs, from Intel Architecture Software Developer's Manual,
Volume 3 (System Programming).
2000-03-27 23:15:57 +00:00
thorpej
e84ce772ff Add some MSR-related calls. From FreeBSD. 2000-03-24 19:07:12 +00:00
thorpej
b05796c812 Add some Model Specific Register definitions. From FreeBSD. 2000-03-24 19:06:07 +00:00
ws
7da71e5f9e Make IPKDB working again.
Add support for i386 debugging and pci-based ne2000 boards.
2000-03-22 20:58:25 +00:00
tron
8caeaa49bd Install "endian_machdep.h" required for "sys/endian.h". 2000-03-17 17:22:57 +00:00
mycroft
9e21b6555a In the `MY THAT'S GROSS' department...
Eliminate the recursive include of machine/endian.h from sys/endian.h.
2000-03-17 00:09:18 +00:00
mycroft
02905321b2 Foolish consistency. Mainly, always use underscores and sys/endian.h. 2000-03-16 15:09:34 +00:00
mycroft
415cbeb83f This code has nothing to do with UCB. 2000-03-16 14:15:26 +00:00
drochner
aa1de89bdf explicitely #include <sys/systm.h> #if BUS_SPACE_DEBUG to get a printf()
prototype
2000-03-15 16:44:48 +00:00
kristerw
ce56ba78b7 Make the inline asm conform to what gcc thinks they should look like (per
discussions in http://gcc.gnu.org/ml/gcc-patches/1998-11/msg00004.html)

Approved by fvdl.
2000-03-13 21:10:24 +00:00
kleink
a9ebf7bb8c Define ISO C99 (unsigned) long long (min, max) symbols. 2000-03-07 19:31:49 +00:00
thorpej
dded044fc2 Update for the NKMEMPAGES changes. 2000-02-11 19:25:12 +00:00
thorpej
dc80cc068b Move KERNBASE to 0xc0000000, giving the kernel a more-or-less full 1G
of virtual address space, leaving userland with 3G, and update comments
to match the new reality.

We knew we were going to have to bite this bullet eventually, and there
are a couple of outstanding PRs related to this issue (9389 and 9313).
Complete solution to those PRs is going to involve some sort of run-time
decision on how large kmem_map should be, as well as changing some data
structure allocation strategies in UVM.  However, this change will at
least allow the PR submitter to simply throw resources at the problem.
2000-02-11 07:00:11 +00:00
thorpej
52a2804a5c Add a new function call to the ISA DMA API: isa_dmamaxsize(), which returns
the maximum transfer size for the specified DMA channel.  Make all clients
of ISA DMA use this call to determine their maximum transfer size.
2000-02-07 22:07:27 +00:00
kleink
36e6bc645e Improve namespace test macros a bit. 2000-02-05 14:04:36 +00:00
cgd
253b179629 clean up (group, sort) __HAVE_* defines 2000-02-05 00:07:30 +00:00
kleink
82464e46d6 Add a C99-style va_copy macro. 2000-02-03 16:16:06 +00:00
danw
f77befbc84 #define __HAVE_DEVICE_REGISTER on ports that have it, and check for
that, rather than a list of architecture defines, in config_attach
2000-02-01 04:01:19 +00:00
drochner
799634df70 next step in getting machdep.c maintainable - put bus_space related
stuff into a separate file
2000-01-26 18:47:59 +00:00
tsutsui
b0fbaa33fb Remove obsoleted macros. 2000-01-26 09:44:10 +00:00
drochner
8eb798e603 define a "BUS_SPACE_MAP_PREFETCHABLE" flag which basically means that
device accesses are idempotent (but should not be cached by the CPU)
2000-01-25 22:13:17 +00:00
mycroft
c26054b799 Delint. 2000-01-22 22:40:58 +00:00
matt
100b64e3c6 Add some i386 defines. 2000-01-10 03:03:54 +00:00
kleink
693059feda const -> __const and include <sys/cdefs.h> earlier; fixes PR lib/9052
by Takahiro Kambe.
2000-01-04 14:20:05 +00:00
kleink
11e6c54cfc C99: Define a NAN macro in <math.h> which evaulates to a constant expression of
a single-precision quiet NaN; only to be defined on platforms that do support
this value.
1999-12-23 10:15:05 +00:00
drochner
b7b6c4bb4f machdep.c is becoming an unmaintainable mess
put console initialisation into a separate file
1999-12-21 12:34:11 +00:00
sommerfeld
c86b5b3d08 Add new CPU feature flags (up through recent Pentium III and Celerons) 1999-12-13 01:31:30 +00:00
ragge
0513268399 CL* discarding. 1999-12-04 21:13:19 +00:00
drochner
b678bca85b Allow loading of kernels larger than (16-1)M.
XXX This is a stopgap fix which can be pulled up to 1.4.x. It only replaces
the arbitrary 16M boundary by an arbitrary 128M boundary. A clean solution
would need changes to the mi loadfile.c parts.
1999-11-30 12:02:13 +00:00
thorpej
4a98f5856e Basic interface to BIOS32. Separated from UCHIYAMA Yasushi's PCI BIOS
patches and cleaned up a bit.
1999-11-17 00:55:50 +00:00
drochner
8f5c3d689b add GDT segments for pnpbios use 1999-11-12 18:37:29 +00:00
marc
e1e554ac35 charles was on drugs. There's no such thing as #elifdef. 1999-11-09 02:25:33 +00:00
mycroft
277394fdd3 Fix WARN_REFERENCES() here for the ELF case. 1999-11-07 07:20:26 +00:00