Commit Graph

164 Commits

Author SHA1 Message Date
thorpej
2c4c690f14 Add the BUS_DMA_STREAMING flag. 2001-03-07 22:42:16 +00:00
minoura
b675f941fe Use m68k_page_offset and m68k_trunc_page macros,
instead of using PGOFSET directly.
2001-02-21 12:39:16 +00:00
itohy
a9cd6b907b Performance hack.
Mainly for the Neptune-X Ethernet adaptor,
and improves ftp(1) speed by ~10%.

	get: 219 KB/s -> 246 KB/s
	put: 226 KB/s -> 247 KB/s
	(X68030, MC68030 25MHz)
2001-01-29 01:09:29 +00:00
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
minoura
8829b4cc1a Sync. w/ luna68k; eliminate irrelavant code imposed by
the restriction of hp300 hardware and HP-UX compatibility.
2001-01-11 13:18:36 +00:00
minoura
950e1bd9b8 Eliminate EIOMAPSIZE. 2001-01-11 10:40:55 +00:00
minoura
77f3a6ab78 G/C. 2001-01-11 10:36:46 +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
eff2f3d04f We use 4K pages on the x86k. Make PAGE_SIZE and friends into
compile-time constants.
2000-11-14 19:47:25 +00:00
thorpej
b008f5f25a Make PMAP_PAGEIDLEZERO() return a boolean value. FALSE indidcates
that the page being zero'd was not completed and that page zeroing
should be aborted.  This may be used by machine-dependent code doing
slow page access to reduce the latency of running a process that has
become runnable while in the middle of doing a slow page zero.
2000-09-21 17:46:04 +00:00
minoura
cbac1a91d9 Add #ifdef _KERNEL ~ #endif to protect kernel variables from userland. 2000-08-26 23:23:43 +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
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
simonb
889c658b5b Change the kernel mmap interface so that the offset to map is an
"off_t" and the return value is a "paddr_t" to allow mappings
at offsets past 2^31 bytes.  Somewhat inspired by FreeBSD, which
only changed the offset to a "vm_offset_t".

Includes updates for the i386, pc532 and sh3 mmmmap from Jason Thorpe.
2000-06-26 04:55:19 +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
minoura
53e627cd0b MD parts of uvm_pageidlezero. 2000-05-14 14:10:09 +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
minoura
13fc4ebbe1 Do not include opt_m680x0 in LKM. 2000-04-23 05:38:31 +00:00
minoura
64a8c7e0c8 defopt M680[2346]0. 2000-04-18 21:04:51 +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
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
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
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
minoura
2a71e2c15e Minor cleanups & corrections. 2000-01-16 14:20:54 +00:00
minoura
49f79ab628 Change physseg allocation strategy to VM_PSTRAT_BIGFIRST.
Required when big (>64MB) high memory is installed.
2000-01-15 14:47:25 +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
minoura
75c422ec6c Use m68k common cacheops.c. 1999-09-23 15:24:34 +00:00
minoura
be7984a052 First step toward network boot.
By Takeshi Nakayama <tn@catvmics.ne.jp>.
1999-09-23 15:14:57 +00:00
minoura
536a2060af Protect some declarations by #ifdef _KERNEL. 1999-09-23 15:06:37 +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
minoura
d1954679df Missing #if for 060. 1999-05-13 14:24:27 +00:00
minoura
ad762a0b97 Use mvme68k-derived delay routine.
Now that we support various models, the old constant-loop delay routine
may cause problems.
1999-05-05 13:46:20 +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
minoura
a76b0b1bf5 Shut up gcc -Wall. 1999-03-24 14:07:38 +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
ba80d2c6d7 Merged minoura_x68k_bus_h branch. 1999-03-16 16:30:16 +00:00
minoura
e518820ca8 Pullin m68k/ieee.h. 1999-03-15 11:55:53 +00:00
is
f71d843a65 synchronize types, and s/curproc/p/ in one forgotten place 1999-02-26 22:37:57 +00:00
is
bce0bda05c x68k specific part of fix for PR 6152 1999-02-26 16:07:07 +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
itohy
fe5278bffc MACHINE_NEW_NONCONTIG is no longer optional
remove non-MNN code
1999-01-18 07:39:51 +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
itohy
643e0d4cc2 Added intr.h 1998-12-14 19:04:58 +00:00
itohy
b40f2a1c88 Make egcs happy. 1998-12-14 15:22:04 +00:00
minoura
6aa085a693 Splitted out the interrupt handling code to a separate file.
Disallow getting down the interrupt level by splXX.
1998-12-13 15:04:01 +00:00
thorpej
cabecee13c 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:43:49 +00:00
thorpej
b38544d99e Oops, back out a buglet I didn't intend to commit in the last change. 1998-10-07 18:29:26 +00:00
thorpej
d681cf055a configure() prototype is in <sys/device.h> 1998-10-06 20:50:15 +00:00
mycroft
7b15b3b56d Minor change. 1998-09-13 12:01:41 +00:00
minoura
2b34aa908f Eliminated meaningless ITEKANJI. 1998-09-03 14:22:06 +00:00
minoura
8749f59fe4 Unimplemented EIOMAPSIZE defaults to 0. 1998-09-03 14:13:18 +00:00
itohy
1bf1486a77 Added an include file on port dependent boot information. 1998-09-01 19:47:38 +00:00
minoura
7f4ad4748e Eliminated vm_offset_t and vm_size_t. 1998-08-22 14:38:36 +00:00
minoura
a6b5ab0c92 Moved parioctl.h to the system header directory. 1998-08-07 16:16:36 +00:00
minoura
4c4cdda003 Switched to MI zs driver. 1998-08-07 11:19:13 +00:00
minoura
d082dd3db4 Moved grfioctl.h and iteioctl.h to the public include directory. 1998-08-06 14:08:53 +00:00
minoura
b72d8d17f9 __BROKEN_INDIRECT_CONFIG fixes. 1998-08-04 16:51:51 +00:00
veego
1b46ebe1d9 Add elf_machdep.h to the INCS list. 1998-07-12 17:53:29 +00:00
thorpej
639cc899cf Basic elf_machdep.h for m68k; doesn't include relocations, yet. 1998-07-12 01:17:58 +00:00
thorpej
d47ea67c1f Define one page free list, and put all pages on it. 1998-07-08 04:43:18 +00:00
msaitoh
c0eed6da3d sync with -current after a long silence 1998-06-30 11:59:09 +00:00
thorpej
37b378d836 defopt COMPAT_HPUX 1998-06-25 23:56:39 +00:00
cgd
651b44e211 Rework the way kernel include files are installed. In the new method,
as with user-land programs, include files are installed by each directory
in the tree that has includes to install.  (This allows more flexibility
as to what gets installed, makes 'partial installs' easier, and gives us
more options as to which machines' includes get installed at any given
time.)  The old SYS_INCLUDES={symlinks,copies} behaviours are _both_
still supported, though at least one bug in the 'symlinks' case is
fixed by this change.  Include files can't be build before installation,
so directories that have includes as targets (e.g. dev/pci) have to move
those targets into a different Makefile.
1998-06-12 23:22:30 +00:00
cgd
3bbb7f7d45 Move pmap_map() function definition to MD headers, as appropriate. It's
an internal function, and the VM system shouldn't try to prototype it.
(Note that some ports _don't_ prototype it.)
1998-02-18 02:05:32 +00:00
scottr
f49dd3ef30 Avoid declaring the "astpending" and "want_resched" globals in cpu.h,
as this breaks C++ code that happens to indirectly include this header.
Both Matthias Scheler and I noticed this, independently.

This problem notably does not affect the atari and sun3/sun3x ports,
which have already implemented a similar solution.
1998-02-13 07:41:45 +00:00
mycroft
b5c132e4d2 Prototype __flt_rounds() consistently. 1998-02-03 01:26:20 +00:00
perry
6f57e5c573 multiple include protect machine/limits.h, fixes pr 4473 (from Mika Nystrom) 1998-01-09 22:23:44 +00:00
thorpej
61567b54de Garbage-collect pm_stchanged; it's not used by anything. 1998-01-06 07:02:58 +00:00
thorpej
d11b109f2b Garbage-collect use of the PCB's copy of the user segment table pointer. 1998-01-06 06:51:40 +00:00
perry
015e898c02 RCSID Police. 1998-01-05 07:02:46 +00:00
thorpej
b9f1b716f3 Now that all ports have pmap_activate(), and it has an identical interface,
prototype it in <vm/pmap.h>
1998-01-03 01:12:59 +00:00
thorpej
dd966fca05 Change an argument name to PMAP_ACTIVATE() to more accurately describe the
semantics of the argument.
1998-01-01 20:05:23 +00:00
thorpej
287b63b321 - Make pmap_activate() and pmap_deactivate() take a struct proc *.
- Define active_user_pmap() and use it in the appropriate places (from hp300
  port).
1998-01-01 19:52:50 +00:00
oki
49779c8c5a Add MDP_STACKADJ. 1997-12-24 17:46:08 +00:00
is
a16fd7d74e Make these compile after m68k/m68k.h 1.4->1.5. 1997-10-26 21:41:34 +00:00
lukem
28558b28eb rcsid fascism 1997-10-13 14:22:22 +00:00
oki
051b06a759 Add prototypes. 1997-10-10 21:45:18 +00:00
oki
a947a7eff9 Remove __BDEVSW_DUMP_OLD_TYPE. 1997-10-09 12:59:23 +00:00
oki
2ce1763013 Prototype spl0(). 1997-10-09 12:58:31 +00:00
leo
d4713d24c2 Implement the kernel part of pr-1891. This allows for a more flexible sized
msgbuf. Note that old 'dmesg' and 'syslogd' binaries will continue running,
though old 'dmesg' binaries will output a few bytes of junk at the start of
the buffer, and will miss a few bytes at the end of the buffer.
1997-09-19 13:52:37 +00:00
perry
ad1710ce1e update comment from 1981 on memory and disk prices -- pr-2754 from Curt Sampson 1997-07-12 16:18:36 +00:00
veego
1450ec3f1b Restore the define of NPTEPG. 1997-07-10 08:23:03 +00:00
mrg
dc6a98e92c bring mrg-vm-swap2 onto mainilne. 1997-06-12 15:09:23 +00:00
kleink
a10178c21e GC this file. It has been unused for quite a while. 1997-06-11 08:42:31 +00:00
veego
af1627ce0b The 'Mach derived conversion macros' are now in <m68k/param.h> 1997-06-10 20:20:06 +00:00
veego
e32543e434 s/x68k_btop/m68k_btop/ 1997-06-10 20:19:35 +00:00
veego
931d90fcee Use the MI <m68k/param.h> include. 1997-06-10 07:54:35 +00:00