Commit Graph

1069 Commits

Author SHA1 Message Date
leo 4b3b8618df Fix some bugs in clkread(). These bugs caused strange time leaps. 2000-05-31 12:27:30 +00:00
thorpej 8871d8563a Add a comment on single-processor systems about p_cpu being initialized
by fork1().
2000-05-31 05:06:43 +00:00
thorpej e03e9e8086 Rather than starting init and creating kthreads by forking and then
doing a cpu_set_kpc(), just pass the entry point and argument all
the way down the fork path starting with fork1().  In order to
avoid special-casing the normal fork in every cpu_fork(), MI code
passes down child_return() and the child process pointer explicitly.

This fixes a race condition on multiprocessor systems; a CPU could
grab the newly created processes (which has been placed on a run queue)
before cpu_set_kpc() would be performed.
2000-05-28 05:48:59 +00:00
sommerfeld 40339b39f9 Reduce use of curproc in several places:
- Change ktrace interface to pass in the current process, rather than
p->p_tracep, since the various ktr* function need curproc anyway.

 - Add curproc as a parameter to mi_switch() since all callers had it
handy anyway.

 - Add a second proc argument for inferior() since callers all had
curproc handy.

Also, miscellaneous cleanups in ktrace:

 - ktrace now always uses file-based, rather than vnode-based I/O
(simplifies, increases type safety); eliminate KTRFLAG_FD & KTRFAC_FD.
Do non-blocking I/O, and yield a finite number of times when receiving
EWOULDBLOCK before giving up.

 - move code duplicated between sys_fktrace and sys_ktrace into ktrace_common.

 - simplify interface to ktrwrite()
2000-05-27 00:40:29 +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 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
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 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
minoura 879e4dbe7c defopt FPSP. 2000-05-14 14:13:50 +00:00
leo eeecd4445a The console stuff might also be needed by 'ser'. Also update the names of
the serial ports in the comments.
2000-05-09 14:30:47 +00:00
leo 793cd652e3 Add some {u}vm includes for the sake of PHOLD(). 2000-05-09 10:29:01 +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
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
itojun 3be41bae18 add stf pseudo interface (commented out due to possible security risks) 2000-04-19 06:50:27 +00:00
leo 7d08f8e623 Add dummies for barrier methods (copied from i386). 2000-04-11 07:12:47 +00:00
leo 9b47c7431d Now what are we doing with the return value of splx()? (probably a pasto) 2000-04-11 07:08:45 +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
leo 469b432d2d Make this compile with -DDEBUG 2000-03-30 13:28:28 +00:00
leo 27d334cf76 Nuke a bunch of cf_unit abuses. 2000-03-29 14:19:22 +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
leo d4ff1a5f4e This file was forgotten in the commit with log message:
Move the ite_default_* variables to ite.c. They are generic ite.
2000-03-27 14:08:39 +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 b667a5a357 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:30:07 +00:00
cgd 7c35662066 add commented out option PCI_CONFIG_DUMP whever there's a PCIVERBOSE. 2000-03-22 00:58:16 +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
soren 95054da1a1 Fix doubled 'the's in comments. 2000-03-13 23:52:25 +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
leo 141900755f Nuke the local outc() since the prototype for the second argument of tputs()
now matches putchar().
2000-02-15 10:14:55 +00:00
leo 8d6a7f1861 Grabage collect a 'struct buf *' left over from recent disksort changes. 2000-02-15 09:00:07 +00:00
thorpej 5903e181fa Nuke NKMEMCLUSTERS. 2000-02-12 03:29:18 +00:00
leo d10190a70c Move the ite_default_* variables to ite.c. They are generic ite. 2000-02-11 21:42:52 +00:00
leo 39a8093c78 Remove redundant test. 2000-02-11 21:36:38 +00:00
leo 107405406d Oops! Both grfcc and grfet need the generic grfabs layer. 2000-02-11 21:35:42 +00:00
thorpej dded044fc2 Update for the NKMEMPAGES changes. 2000-02-11 19:25:12 +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
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
leo 6328fac75d Add bootm_init() prototype. 2000-02-07 14:36:42 +00:00
jdc be5d89da1a Add definition for default swap partition (libahdi uses this). 2000-02-05 21:14:55 +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
leo 7c575717ef Restructure the ite/grf definitions:
- Make the ite<n> -> grfXX<n> relations explicit. This solves problems
    with the newer autoconf code.
  - Nuke the grfcc definition in std.atari. A Hades has not grfcc...
2000-01-26 14:56:40 +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
thorpej 52242fdf9f Update for sys/buf.h/disksort_*() changes. 2000-01-21 23:28:59 +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
leo 7396daca2b No longer abuse cf_unit. This broke with the latest autoconf changes. 2000-01-19 13:23:14 +00:00
leo 4911054546 Allow storage-space to be passed to the alloc_bus_space_tag() functions. This
permits static tags to be used during early console init.
2000-01-19 13:12:54 +00:00
msaitoh 0b9af6bdce check whether tv_usec >= 1000000 2000-01-19 02:52:16 +00:00
leo 2f371152d6 Init the preset_row_scan register. This fixes a sometimes partly scrolled-up
console.
2000-01-12 08:53:01 +00:00
leo a93741b5c7 Determine the default floppy type on the TT/Falcon by reading the config
switches. (Thanks to Michael Schwingen for the missing bits of information!).
2000-01-06 12:14:33 +00:00
leo 2b1c23376c Fix y2k buglet in /dev/rtc reported by Julian Coleman. Note that the input
and output format of /dev/rtc is now changed.
2000-01-06 12:03:31 +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
leo ef4d7a827f Change the copy_region function to shutup gcc's unused warnings in some
cases. Use the bus_space_tag without doing something useful... (idea from
Matthias Drochner).
1999-12-13 15:40:28 +00:00
leo 748a00abd5 Fix argument of extent_free(). 1999-12-09 13:07:41 +00:00
leo c9457413cb Implement an allocator for VA-space using fixed extent maps. It is now
possible to allocate VA-space before uvm is initialized.
1999-12-06 16:06:24 +00:00
leo b6e2a143e4 Allocate the physical RAM from the extent map. 1999-12-06 15:34:42 +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
is 14ed33e42e Fix typo (&& -> &). 1999-11-28 20:30:57 +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
leo 761038f279 Correct the test for a free-slot for isa_intr_alloc(). Also issue a warning
that should make it clear in which slot the card is expected to be in.
Isapnp is not what it seems to be on the atari (where interrupts are
hardwired to slot numbers).
1999-11-23 14:48:58 +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
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
thorpej 1946167939 Update for pmap_enter() API change. No functional difference. 1999-11-13 00:30:26 +00:00
kleink 1c2019b5a8 Rip protection against multiple inclusion from wrapper headers. 1999-11-09 21:34:03 +00:00
thomas 938dcb33e9 Align IO and memory of PCI devices. 1999-11-07 22:23:05 +00:00
leo b9ba082e30 Define an audio device at c-major 42 and reserve 41 for wscons. 1999-10-28 13:43:54 +00:00
leo 4c4e4258e2 Use extent maps. 1999-10-28 13:38:35 +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
leo c9a3053200 correct second argument of bus_space_unmap(). 1999-10-25 14:52:55 +00:00
leo 8c73075593 Limit the io-region mapped by this driver to the part actually used.
Otherwise, it conflicts with the wd-driver.
1999-10-22 08:50:59 +00:00
leo 48ddedb4e8 Fix pci-interrupt handling. It was broken by the latest slot numbering
changes.
1999-10-21 15:38:54 +00:00
leo e1b938443f Ouch! Correct bus_space_unmap() call parameter usage. 1999-10-21 15:33:49 +00:00
leo 64f9129eff Add prototype of isa_intr_alloc(). 1999-10-21 15:32:08 +00:00
leo 6b31bde1bb Implement at least a bit of isa_intr_alloc(). 1999-10-21 15:26:57 +00:00
leo 2c1b82026b implement DIOCSDINFO. 1999-10-21 15:03:28 +00:00
thorpej e6c88a7686 Update for SCSIPI changes. 1999-09-30 22:59:52 +00:00
leo c9448b002c Specify the major number of the md-device. Otherwise config(1) won't emit
a dev_name2blk enrty for the RAM-disk. This made the installation procedure
unusable.
1999-09-27 14:32:17 +00:00
leo 364d7ca19d Make sure the pointer to the cpu_label is not NULL before trying to use it. 1999-09-22 07:20:44 +00:00
leo 9251fedf5d Do not enable VGA cards automatically. Since chances are high that they
claim overlapping memory areas. This causes only the 'console' VGA card
to be enabled.
1999-09-22 07:18:45 +00:00
leo 313488aee7 Reverse the order in which PCI cards are scanned. Now the order matches the
TOS-scan order. This causes TOS & NetBSD to use the same video card on
a system with multiple VGA cards.
1999-09-22 07:15:43 +00:00
thorpej 11cae42531 Centralize the declaration and clearing of `cold'. 1999-09-17 19:59:35 +00:00
leo f7fd8ced64 Remove FP-emulation from the TT-kernel. All TT's should have an FPU. 1999-09-16 12:00:04 +00:00
leo b9b9cc8cb9 Make this compile again. 1999-09-16 11:58:49 +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
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