Commit Graph

289 Commits

Author SHA1 Message Date
thorpej d85a75f583 Make sure everybody has an splvm() and equate it with splimp() (splimp()
is the historical name for this interrupt level, and the historical name
is going to go away in the near future).
2001-01-14 02:00:37 +00:00
scw 4350a7f2b7 Unification of the m68k syscall() function. 2000-12-19 21:09:54 +00:00
tsutsui a8fdbdec1c Remove unused pcbb() macro. 2000-12-01 17:57:43 +00:00
thorpej 9f60ecd809 We use 4K pages on the mac68k. Make PAGE_SIZE and friends into
compile-time constants.
2000-11-14 19:07:34 +00:00
thorpej 4db6fc7542 Make need_resched() take a "struct cpu_info *" argument. This
causes gives a primitive form of processor affinity.  Its use in
roundrobin() still needs some work.
2000-08-25 01:04:06 +00:00
thorpej 58e7a6954b Add spllock(). See spl(9) for details. 2000-08-22 19:46:26 +00:00
briggs 3ce3697584 Add bus_space_*_stream_N functions. 2000-07-31 22:40:25 +00:00
briggs 2cc07c0541 Add a DIAGNOSTIC panic if (count-using) bus_space macros are called with
a count of zero.  Some drivers do this accidentally and some bus_space
implementations will fail if count is passed as zero (they are set up in
a do-{}-while structure).
2000-07-31 14:59:15 +00:00
briggs f5882c7ffa Make sure that bus_space read/write functions that take a count will not be
called if count is zero.  The smc91cxx driver, for example, may try to call
bus_space_write_multi_2() with a count of 0.
2000-07-30 23:17:23 +00:00
briggs 2f76646af1 Some uncommitted poking around. No functional change. 2000-07-30 21:48:54 +00:00
briggs 9c85d4dc6a Add byte-swap and stride options to bus_space. Allocate as normal, then
call mac68k_bus_space_handle_swapped() or mac68k_bus_space_handle_set_stride().
Stride is untested.  Swapped code works for SMC ethernet.
2000-07-30 21:38:02 +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
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
scottr 5c7674d4dd Explicitly include headers needed by iopreg.h 2000-02-21 02:04:48 +00:00
scottr 8a00740789 Merge wscons work onto the main development branch. 2000-02-14 07:01:44 +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
tsutsui 249975c3c9 Revert (accidentally removed) MAXSLP macro. 2000-01-27 09:47:12 +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
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
scottr 3310f57beb Replace references to PGOFSET with m68k_trunc_page() and m68k_page_offset(),
as appropriate.
1999-12-12 08:18:48 +00:00
ragge 0513268399 CL* discarding. 1999-12-04 21:13:19 +00:00
scottr 86a8f1d201 Sync cachectl1() implementation with other m68k ports. 1999-11-28 10:36:56 +00:00
kleink 1c2019b5a8 Rip protection against multiple inclusion from wrapper headers. 1999-11-09 21:34:03 +00:00
scottr 560a7ef713 Change the behavior of spladb() so that it raises the IPL only
high enough to block ADB interrupts.
1999-11-06 23:05:40 +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
thorpej 654051453f Use an array for PSL values, rather than individual shortwords, like
the hp300 port.
1999-08-04 16:01:47 +00:00
briggs a33d38257c Declare struct pmap kernel_pmap_store extern. 1999-07-21 03:18:21 +00:00
briggs 79fe772f46 Include a bit more info about what's not happening with IOP. 1999-06-28 04:33:21 +00:00
briggs 71a4446b04 Unfortunately, several changes that are intermingled:
- Add initial IOP support.  ADB doesn't work yet for me, but it's here so
  that others will be encouraged to work on it.  ADB_HW_IOP basically
  is configured as a NOP so that serial consoles will continue to work.
- Roll via1_intr and via2_intr into the intr.c scheme--this also required
  changing rtclock_intr to grovel the stack differently so that hardclock
  gets the right arguments and softclock() doesn't get all reentrant.
- Make via1 interrupts parallel to via2 interrupts--handlers get a pass-
  through pointer and we can register handlers.  Register via1 interrupt
  with intr_establish()--normally level 1, level 6 for A/UX scheme.
- Use intr_establish() to set real via2 interrupt handler instead of the
  hacked function pointer.
- Reorganize adb-direct interrupts so that a function call is removed.
- Implement A/UX interrupts for all Quadras right now.  We may need to
  special case some Quadras, but Linux folks are reporting success on
  several models.
- Fix intrnames to be accurate for the normal, PSC, and A/UX interrupt
  configurations.
1999-06-28 01:56:55 +00:00
briggs f9de07203c Add some constants from Linux/mac68k to note SCC, floppy, and SCSI registers.
Add some code, inspired by Linux/mac68k, to shutdown all DMA on the PSC
at startup and to disable and clear all interrupts except the SCC.
1999-06-28 01:41:13 +00:00
kleink 857dfc7058 Slightly rearrange the SSIR inline assembly implementation in order to avoid
making assumptions on C symbol name prefixes.
1999-06-15 15:26:34 +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
kleink ed74932033 Add COMPAT_SVR4 for m68k. 1999-04-19 21:22:56 +00:00
pk b13e5d1469 Quote "AS IS" as in the majority of Carnegy Mellon notices. 1999-04-12 20:38:17 +00:00
scottr d6fd16c828 vm_size_t -> vsize_t 1999-04-07 06:45:14 +00:00
pk c40eb1cd97 Fix a pasto in copyright text which has been procreating like rabbits.. 1999-04-06 20:09:18 +00:00
scottr fdd8445219 Prototype kvtop() here. 1999-04-06 03:40:23 +00:00
scottr 0848c89c55 The last change wasn't quite enough to build libc during a 'make build'.
Bump DFLDSIZ, too.
1999-03-31 14:58:15 +00:00
scottr 9c8f206e65 Bump DFLSSIZ so that we can build libc.so.*, and limit MAXSSIZ independently
of MAXDSIZ.
1999-03-31 06:53: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 e518820ca8 Pullin m68k/ieee.h. 1999-03-15 11:55:53 +00:00