Commit Graph

667 Commits

Author SHA1 Message Date
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
8964c35eca Introduce a new process state distinct from SRUN called SONPROC
which indicates that the process is actually running on a
processor.  Test against SONPROC as appropriate rather than
combinations of SRUN and curproc.  Update all context switch code
to properly set SONPROC when the process becomes the current
process on the CPU.
2000-05-26 00:36:42 +00:00
itohy
c72407329e Treat receiver overrun of MFP (clear the error).
Although the keyboard hardware seems to be designed to avoid
overrun, the errors sometimes occur.
2000-05-25 03:33:27 +00:00
itohy
61363bb1c6 Fix the problem where pressing a key at
scsibus0: waiting 2 seconds for devices to settle...
message during boot crashes the system.
This is because ite_filter() is called before init(8) opens the console.
2000-05-25 03:30:19 +00:00
thorpej
1140468205 Use preempt(), not an open-coded equivalent (which won't be
equivalent for long).
2000-05-24 16:48:33 +00:00
thorpej
071aed40ac A foolish consistency; most parts of the kernel use bp->b_data, so
change these from bp->b_un.b_addr to bp->b_data, as well.  This also
allows us more flexibility to experiment with other data buffer types
hung off of struct buf.
2000-05-19 18:54:22 +00:00
minoura
74e4bb664f Wrong logic. Pointed out by Yasufumi. 2000-05-18 15:24:30 +00:00
thorpej
463931b3ba Nuke dk_establish() from orbit except from those ports which still use
it to determine the boot device: mvme68k, pc532, macppc, ofppc.  Those
platforms should be changed to use device_register().  In the mean time,
those ports defined __BROKEN_DK_ESTABLISH.
2000-05-16 05:45:44 +00:00
itohy
cb3a247145 Use bsd.hostprog.mk to allow ELF target on a.out host. 2000-05-15 05:02:29 +00:00
minoura
6943d5dd19 defopt FPSP. 2000-05-14 14:13:53 +00:00
minoura
53e627cd0b MD parts of uvm_pageidlezero. 2000-05-14 14:10:09 +00:00
hubertf
9f48bba3ae Add "install" target, so "make install" after building the kernel
does something useful.  The target can be redefined by putting a
install-kernel-${MACHINE_NAME} target that fits your needs into
/etc/mk.conf.
2000-05-09 00:56:21 +00:00
thorpej
6a33c86623 HAVE_GCC28 -> HAVE_EGCS, and make it match gcc 2.9 as well. Also,
make the use of -Wno-uninitialized explicit, don't rely on a compiler
hack to do it for us.
2000-05-09 00:32:19 +00:00
minoura
a8580db029 Revert 1.18 change.
Hopefully this is a temporary fix; something might be missing in
the SCSI negotiation.
2000-04-30 16:06:20 +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
dfb848e298 M680x0 are now defopt'ed. 2000-04-23 05:49:14 +00:00
minoura
13fc4ebbe1 Do not include opt_m680x0 in LKM. 2000-04-23 05:38:31 +00:00
itojun
3be41bae18 add stf pseudo interface (commented out due to possible security risks) 2000-04-19 06:50:27 +00:00
minoura
dd8c46b8be Explicitly include opt_m680x0.h. 2000-04-18 21:06:06 +00:00
minoura
64a8c7e0c8 defopt M680[2346]0. 2000-04-18 21:04:51 +00:00
minoura
4d4c982aa3 all -> realall. 2000-04-16 14:19:53 +00:00
minoura
311c19c0d5 Sync w/ GENERIC. 2000-04-16 14:17:59 +00:00
thorpej
4044b5a41c Use separate callouts for motor-on and motor-off. Fixes a condition
where the floppy driver would wedge because a motor-on timeout would
be cancelled by another I/O operation cancelling a motor-off timeout.

From enami tsugutomo <enami@sm.sony.co.jp>.
2000-04-07 16:58:53 +00:00
simonb
2f1fef39b3 Centralise the declarations of cpu_model, machine, machine_arch,
osrelease, and ostype and remove "extern char foo[];" (for hostname
and domainname too).

Also delete redunctant decl of boottime in kern_info_43.c.
2000-03-28 23:57:24 +00:00
minoura
87bc025f49 Move par under intio. 2000-03-27 15:53:04 +00:00
minoura
f23d278c1d Make this compile (typo in callout change). 2000-03-27 15:49:34 +00:00
kleink
230876cf26 Merge parts of chs-ubc2 into the trunk:
* Remove the casts to vaddr_t from the round_page() and trunc_page() macros to
  make them type-generic, which is necessary i.e. to operate on file offsets
  without truncating them.
* In due course, cast pointer arguments to these macros to an appropriate
  integral type (paddr_t, vaddr_t).

Originally done by Chuck Silvers, updated by myself.
2000-03-26 20:42:21 +00:00
thorpej
7b918b4088 New callout mechanism with two major improvements over the old
timeout()/untimeout() API:
- Clients supply callout handle storage, thus eliminating problems of
  resource allocation.
- Insertion and removal of callouts is constant time, important as
  this facility is used quite a lot in the kernel.

The old timeout()/untimeout() API has been removed from the kernel.
2000-03-23 06:40:33 +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
oster
1bad2e1909 Add the RAIDframe device major to the machine-dependent config files
so that the right entries get added to dev_name2blk[].  Needed for / on RAID.
(Whoops!  I missed checking these in when adding the RAID_AUTOCONFIG stuff.)
2000-03-14 15:56:51 +00:00
minoura
37132adf3f Sync. with news68k/news68k/mem.c:1.2. 2000-03-10 16:28:56 +00:00
simonb
4eb55e447c Do the "<space><tab>" thing with the RAID_AUTOCONFIG option. 2000-02-29 06:32:20 +00:00
oster
d9c47013b2 Defopt 'RAID_AUTOCONFIG'. Adding 'options RAID_AUTOCONFIG' turns on
the component auto-detection and auto-configuration of RAID sets.
Also, add "#options RAID_AUTOCONFIG" to the GENERIC config files.
2000-02-26 17:35:33 +00:00
erh
8f03b9a04a Define the DONETISR macro and use netisr_dispatch.h. This is to cut down on code duplication and to standardize the available NETISRs across all ports. 2000-02-21 20:38:46 +00:00
minoura
077b93be1a According to Takeshi Nakayama <tn@catvmics.ne.jp>,
POW_ALARMSW seems always 1 on some models (at least XVI).
2000-02-20 16:18:51 +00:00
thorpej
5903e181fa Nuke NKMEMCLUSTERS. 2000-02-12 03:29:18 +00:00
thorpej
dded044fc2 Update for the NKMEMPAGES changes. 2000-02-11 19:25:12 +00:00
thorpej
fe551f0e64 Fix a bug in disksort_*() which caused non-optimal ordering when multiple
active partitions were on a single spindle.  Add a b_rawblkno member to
struct buf which contains the non-partition-relative block number to sort
by.
2000-02-07 20:16:47 +00:00
minoura
8759daabe7 Sync. 2000-02-05 14:35:41 +00:00
itohy
b4f060a0bc Mark LFS partitions as "BSD lfs ".
Now, swap partition should be "BSD swap" unless COMPAT_14.
2000-02-05 07:38:10 +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
11c8f56d48 Revert STRIPPROG -> STRIP 2000-02-01 05:25:24 +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
tron
04eb110431 Add "dependall" target for comfort. 2000-01-24 20:36:06 +00:00
hubertf
7e5ff67457 Add commented out "ident"-command 2000-01-23 23:46:04 +00:00
mycroft
7b49d242ce Clean up the machine symlink stuff ever so slightly. Needs to be
standardized between files.
2000-01-23 17:04:03 +00:00
thorpej
dc59bc1db3 Update for sys/buf.h/disksort_*() changes. 2000-01-21 23:39:55 +00:00
sommerfeld
aa195e816f Fix PR9240: comment above cpu_fork() out of synch with reality on most ports.
(comment change only, but was wrong for more than just i386).
2000-01-20 22:18:54 +00:00
wrstuden
87e1b0f9b7 Add overlay to kernel configs. 2000-01-20 19:12:28 +00:00
thorpej
a0397a2573 Move callout initialization to a single location; no need to duplicate
that code all over the place.
2000-01-19 20:05:30 +00:00
tsutsui
e61f177ab1 STRIP -> STRIPPROG 2000-01-19 16:29:54 +00:00
tsutsui
644b514c39 Change STRIPFLAGS=-g for cross-toolchains. 2000-01-19 14:44:58 +00:00
msaitoh
0b9af6bdce check whether tv_usec >= 1000000 2000-01-19 02:52:16 +00:00
thorpej
c4e802b942 Use b_cylinder as defined in sys/buf.h 2000-01-18 19:52:21 +00:00
minoura
9a0577db94 Wrong () balance in dumpsize calculation. 2000-01-17 16:17:32 +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
itohy
cf055ef630 Change the implementation of ms(4) polling to use timeout(9) software
interrupt in order to eliminate glitches on MPU interrupt levels.
I don't know whether this is a good solution, but it does work.
2000-01-14 08:22:42 +00:00
itohy
dbb0c078a5 - Do not lower interrupt level at clock interrupt.
The original code lowers level 6 to 4, and if a
  clock interrupt occurs in splzs (or similar) the
  system may be in unpredictable state.
  To do such a hack correctly, checking the original priority
  and duplicated clock interrupts would be required.
  For now, just disable the hack.

- Do not use clock interrupt for ms polling.
2000-01-14 08:21:22 +00:00
minoura
58b3ac77bd Give up support of 4MB RAM machines for standard sysinst-based installer.
Restricted small installer must be used on those machines.
1999-12-24 17:02:13 +00:00
minoura
7330ce45ef Replace shell script version of newdisk utility with C version.
Add the man page newdisk(8).
1999-12-24 16:51:24 +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
minoura
63604fe51b Add pseudo-device pty. sysinst does use ptys. 1999-12-05 15:40:17 +00:00
ragge
26e1b45757 clrnd()/clbase() discarding. 1999-12-05 11:56:30 +00:00
ragge
0513268399 CL* discarding. 1999-12-04 21:13:19 +00:00
itohy
169af5c51b Add a dummy read just after enabling receiver interrupt.
If the receiver already has datum, no further arrival of
data is possible and no interrupts will occur.
This change fixes problem that pressing key during boot
may sometimes disable the keyboard.

Remove unreferenced variable "in" in kbdcngetc().
1999-12-03 00:14:06 +00:00
is
14ed33e42e Fix typo (&& -> &). 1999-11-28 20:30:57 +00:00
minoura
bf013a4539 Remove ether+ driver. Requested by msaitoh. 1999-11-27 15:57:17 +00:00
is
df61f0409e From the 68040 User Manual, page 4-10:
"To fully support self-modifying code in any situation, it is imperative that
a CPUSHA intrcution is executed before the execution of the first self-modified
instruction. The CPUSHA instruction has the effect of ensuring that there is
no stale data iin memory, the pipeline is flushed, and instruction prefetches
are repeated and taken from external memory."

I verified that this is the only way (I can think of) to make the sigtramp
regression test work on 68040. doing cpushl dc; cinvl ic; over the affected
address range, then nop (to synchronize the pipeline) is not enough; apparently
the nop does not FLUSH the pipeline and prefetch...

Note that the 68060 UM has copied the above cited passage, but in fact this is
not true. This might be connected to the fact that the 68060 does ensure
memory access order under most conditions.
1999-11-25 20:30:38 +00:00
minoura
c48182e1ae Add missing `major' entries: md and fd. 1999-11-23 14:17:09 +00:00
sommerfeld
17d170b1ca defopt COM_DEBUG, COM_HAYESP, and COM16650 1999-11-22 03:53:38 +00:00
itohy
3e16beaf22 Add a bunch of "__attribute__((__packed__))"s
to get along with the ELF compiler.
1999-11-22 01:14:55 +00:00
itojun
e9a0023b37 bring in content of GENERIC.v6 into GENERIC.
remove GENERIC.v6 file (as it is part of GENERIC now).

"faith" interface is commented out by default as it is not really for
general use.
IPsec items are commented out as well, though we can enable "options IPSEC"
without export-related issue ("options IPSEC" will enable authentication
portion only).  We may need to think about it again.

if you have problem compiling with INET6 on archs I do not have access to,
please contact me.

XXX what to do with arch/arm32/SHARK{,.v6}?
1999-11-21 14:00:37 +00:00
itohy
7be83cbb7c Oops, I misspelt a macro name. 1999-11-19 03:54:08 +00:00
minoura
e8a82e3d7e Do not reset SCSI bus. 1999-11-18 15:03:03 +00:00
minoura
8ae197322f Sync w/ GENERIC (options SOFTDEP).
Add IPv6 options to ALL.
1999-11-18 14:09:40 +00:00
minoura
b799f7bb46 Remove MAPPEDCOPY (somewhat buggy?). 1999-11-18 14:08:24 +00:00
itohy
02ebc9e4d4 Support conversion from ELF, as well as from a.out. 1999-11-16 00:48:11 +00:00
fvdl
8bec119fcc Add commented out option SOFTDEP to all GENERIC kernels. 1999-11-15 19:10:44 +00:00
fvdl
d116707af0 Add
prefix ../gnu/sys
cinclude "conf/files.softdep"
prefix

to all std.* files, so that soft dependencies can be activated using
"options SOFTDEP".
1999-11-15 19:00:25 +00:00
minoura
1a29be4d0c Increase ramdisk size. 1999-11-13 14:19:46 +00:00
thorpej
1946167939 Update for pmap_enter() API change. No functional difference. 1999-11-13 00:30:26 +00:00
itohy
de6b762004 Make X680x0 IOCS library build on ELF toolchain. 1999-11-11 08:16:20 +00:00
itohy
59c36c2cb6 Make Human68k DOS library build on ELF toolchain. 1999-11-11 08:14:43 +00:00
itohy
fcc45340da Make it build on ELF toolchain. 1999-11-11 08:12:50 +00:00
kleink
1c2019b5a8 Rip protection against multiple inclusion from wrapper headers. 1999-11-09 21:34:03 +00:00
itohy
cef3e31058 Fix the problem that single-step tracing of a trap instruction
drops the system into kernel debugger.
1999-10-26 00:20:34 +00:00
thorpej
e6c88a7686 Update for SCSIPI changes. 1999-09-30 22:59:52 +00:00
minoura
8da8dfb94f Could not compile w/ options M68060.
Supply -m68030 and -m68851 to the assembler.
1999-09-24 15:31:52 +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
thorpej
11cae42531 Centralize the declaration and clearing of `cold'. 1999-09-17 19:59:35 +00:00
minoura
15a7aff6f8 Sync (hp300). 1999-09-16 14:40:21 +00:00
minoura
da2dab0c10 Finish PMAP_NEW.
- Wrong argument to pmap_kremove (vm_machdep.c:pagemove()).
 - Uninitialized variable (pmap.c:pmap_kremove <- this should be fixed long ago...)
1999-09-16 14:35:42 +00:00
thorpej
3b01d1b872 Rename the machine-dependent autoconfiguration entry point `cpu_configure()',
and rename config_init() to configure() and call cpu_configure() from there.
1999-09-15 18:10:33 +00:00
chs
f3a668ed84 eliminate the PMAP_NEW option by making it required for all ports.
ports which previously had no support for PMAP_NEW now implement
the pmap_k* interfaces as wrappers around the non-k versions.
1999-09-12 01:16:55 +00:00