Commit Graph

207 Commits

Author SHA1 Message Date
thorpej 58e7a6954b Add spllock(). See spl(9) for details. 2000-08-22 19:46:26 +00:00
kleink e695f72a2e Add <machine/int_types.h>, which provides namespace-pure definitions
of exact-width integer types.
2000-06-26 15:42:16 +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 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
is 128258c1a2 Initial IOBlix support. Only lpt and com; lpt untested; com assumes 24 MHz
clock (needs autoprobe of clock speed).
2000-03-23 22:44:42 +00:00
tron e86957458a Install "machineendian_machdep.h". 2000-03-17 22:36:31 +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
aymeric 7cd55062c0 do as if bus_space_read_4() returned an int, although it just calls panic. 2000-03-04 11:49:18 +00:00
is a90153e264 enlarge the initial kernel page table - needed for some 128 MB machine 2000-02-14 20:23:20 +00:00
thorpej dded044fc2 Update for the NKMEMPAGES changes. 2000-02-11 19:25:12 +00:00
cgd 7d16ac338c add __BROKEN_CONFIG_UNIT_USAGE #define, becuase these ports do very
wrong things with device configuration data "cf_unit" information.
2000-02-05 00:13:22 +00:00
mhitch 554647f636 Semicolons in the 32-bit macros aren't nice.
Add a stride-4 with swapping bus_space_method for use by MI wdc.
2000-01-31 22:43:36 +00:00
tsutsui b0fbaa33fb Remove obsoleted macros. 2000-01-26 09:44:10 +00:00
aymeric 9e5a868b12 add IPL_SERIAL to enable PCMCIA com* compilation 2000-01-23 21:04:22 +00:00
aymeric 3a54b5a896 code factorisation and added stride 1 functions 2000-01-23 21:02:17 +00:00
aymeric 921c6acc0e defined IPL_BIO, IPL_NET and IPL_TTY for soon to be integrated PCMCIA code 2000-01-15 15:04:21 +00:00
is 99943b2c6b Rewrite of the Amiga bus_space machinery to prepare for the support of
the generic IDE driver and the PCMCIA slots.
1999-12-30 20:56:44 +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
ragge 0513268399 CL* discarding. 1999-12-04 21:13:19 +00:00
kleink 1c2019b5a8 Rip protection against multiple inclusion from wrapper headers. 1999-11-09 21:34:03 +00:00
is e4dbf8998d Remove now superfluous prototype definitions (of the m68k cache operations). 1999-10-14 21:40:05 +00:00
is 744246fa0b vm_offset_t -> vaddr_t/paddr_t 1999-09-25 21:47:02 +00:00
mycroft c3e1f6741d A foolish consistency. 1999-08-30 18:58:01 +00:00
simonb 06a92524c2 Include <sys/bswap.h> for function prototypes. i386, pc532 and vax
still include <machine/byte_swap.h> and define macros for some of
the bswap*() functions.
1999-08-21 05:39:51 +00:00
thorpej 28fb7c1eb8 Define cpu_number() as discussed on tech-smp. 1999-08-10 21:08:05 +00:00
thorpej eb20bbc780 Change the semantics of splsoftclock() to be like other spl*() functions,
that is priority is rasied.  Add a new spllowersoftclock() to provide the
atomic drop-to-softclock semantics that the old splsoftclock() provided,
and update calls accordingly.

This fixes a problem with using the "rnd" pseudo-device from within
interrupt context to extract random data (e.g. from within the softnet
interrupt) where doing so would incorrectly unblock interrupts (causing
all sorts of lossage).

XXX 4 platforms do not have priority-raising capability: newsmips, sparc,
XXX sparc64, and VAX.  This platforms still have this bug until their
XXX spl*() functions are fixed.
1999-08-05 18:08:08 +00:00
is 1b5eb98937 Sync with Atari pmap: support for the UVM changes 1999-06-19 19:44:08 +00:00
kleink e1529b8f93 Pull in the right generic m68k header. (Where was my mind?) 1999-04-29 14:38:39 +00:00
thorpej b8073b401b Garbage-collect the VM_MBUF_SIZE constant. Instead, use the size
(nmbclusters * mclbytes), so that the right amount of KVA space is
allocated if those variables are patched.
1999-04-26 22:46:44 +00:00
is bbeb5012d5 Add dummy bus_space_barrier method, like mac68k 1999-04-20 05:48:37 +00:00
kleink ed74932033 Add COMPAT_SVR4 for m68k. 1999-04-19 21:22:56 +00:00
drochner 76fa1751fe Add a macro to check for sufficient pointer alignment in bus.h context,
"BUS_SPACE_ALIGNED_POINTER()".
Equal to the param.h "ALIGNED_POINTER()" normally, but obeys additional
requirements of the bus_space_xxx_n() macros. (BUS_SPACE_DEBUG)
1999-03-23 21:29:03 +00:00
minoura 9729dbb6ad Pullin m68k/ieee.h. 1999-03-15 12:42:51 +00:00
is f71d843a65 synchronize types, and s/curproc/p/ in one forgotten place 1999-02-26 22:37:57 +00:00
is 84971e3a6f mac68k part of pr 6152 fix, and missing bits for the others 1999-02-25 23:13:39 +00:00
is fde637530e Machine independent part of fix for PR 6152 (gdb doesn't work on machines
with UVM and seperate I&D-Cache). Mostly by Michael Hitch, but pass struct
proc * instead of the pmap. Reason: said machine will need a method to do
the syncing operation for "curproc", too; this way more code can be shared.
1999-02-25 21:54:53 +00:00
is 435f80f928 prepare for gdb fix 1999-02-25 19:51:22 +00:00
is 2c7fa23c38 Fix Copyright dates 1999-02-16 23:34:10 +00:00
is dc068e0d1f Assign my files to The NetBSD Foundation, Inc. 1999-02-16 22:46:55 +00:00
mycroft 3e6e3322d8 Format consistency. 1999-01-24 12:56:51 +00:00
mycroft 082204fa3d Standardize format. 1999-01-22 14:12:07 +00:00
bouyer dc306354b0 Move the bswap functions from libutil to libc (this bups the
minor of libc and the major of libutil). For little-endian architectures
merge the bnswap() assembly versions with nto* and hton* using symbols
aliasing. Use symbol renaming for the bswap function in this case to avoid
namespace pollution.
Declare bswap* in machine/bswap.h, not machine/endian.h. For little-endian
machines, common code for inline macros go in machine/byte_swap.h
Sync libkern with libc.
Adjust #include in kernel sources for machine/bswap.h.
1999-01-15 13:31:15 +00:00
is 06f7b24f4c Implement softintr_disestablish(). 1998-11-28 16:39:25 +00:00
thorpej 49c62c4336 Changes to support fork_kthread():
- cpu_set_kpc() now takes void *arg third argument, passed to the
  entry point.
- cpu_fork() allows parent to be non-curproc iff parent is proc0.
  When forking non-curproc, assume its state has already been saved.
- Adjust various pieces of machine-dependent code to account of all of this.
1998-11-11 06:41:23 +00:00
is 9916260262 - declare method arrays in bus.h
- add interleaved_wordaccess method array
1998-11-08 21:09:27 +00:00
is ba74edf69b Fix typo. 1998-11-07 22:50:25 +00:00
is fd3b226223 We didn't really implement bus_space_{read,write}_stream_N, but
bus_space_{read,write}_region_stream_N. Correct the names.
1998-11-07 22:44:36 +00:00
is 4e322893fa Make the data pointer of the write_multi, write_region and write_stream
methods const *.
1998-10-12 22:02:43 +00:00
is 842fbdf4d2 - add bus_space_{copy,set}_region_{1,2} support and implementation for
_1 and for _2 in the contiguous and interleaved case.

- while we're here, reorganize bus.h into sections, and use the defined
  convenience functions everywhere.
1998-10-12 21:15:54 +00:00
thorpej 908cdfe4e3 Add scsibus entry points to the cdevsw[]. 1998-10-10 02:00:49 +00:00