Commit Graph

1956 Commits

Author SHA1 Message Date
jdolecek c5d51d433e fix prototype for fd_mod_free() - should fix port-mac68k/10063 2000-05-27 10:25:15 +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 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
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 6943d5dd19 defopt FPSP. 2000-05-14 14:13:53 +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
jdolecek 2a0b424186 LKM fixes:
* fix a typo in callout_stop() call
* prototype fd_mod_init(), fd_mod_free() to avoid warnings
* include iwm_mod.h

Fix sent in port-mac68k/9787 by Dave Huang.
2000-04-05 11:37:13 +00:00
scottr 3ca0215f69 Correct a pasto in pm_pmgrop_pm1(); while there were no negative side
effects, the place this code ended up couldn't have had any positive
effect, either.
2000-04-05 07:29:18 +00:00
scottr 15a3a17a43 Correct a few instances where we returned from a function that
had set splhigh() but returned without restoring the previous spl.
The PowerBook keyboard works better, now, but still starts to flake
out pretty badly at 70+ wpm.
2000-04-05 07:18:07 +00:00
scottr 4d23f7686d Attach all displays, keyboards, and mice, not just the first
ones found.
2000-03-31 08:27:43 +00:00
scottr 10c763efa3 The declaration for esp has moved to conf/files. (Hi Charles!) 2000-03-27 21:47:46 +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
tsutsui 9100212ef0 Add a "sc_rev" member to ncr5380_softc and handle CXD1180 quirk
in MI ncr5380sbc.
2000-03-25 15:27:54 +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
scottr 7dbb8560d6 Revert to the old practice of always setting up MRG, even if we don't
need it for ADB.  Besides the misleading message at autoconf time,
MRG is sometimes useful for things other than ADB.
2000-03-20 08:07:52 +00:00
scottr 4f29e4d330 Add and use macros to build ADB FLUSH, LISTEN, and TALK commands. 2000-03-19 07:37:58 +00:00
scottr edfc8b89ad The MRG and direct ADB drivers were inconsistent in how they worked with
a serial console; the direct driver didn't care, but the MRG driver
wouldn't probe ADB when using a serial console.  Remove the check from
the MRG version of the code to resolve this difference.
2000-03-19 06:07:05 +00:00
scottr 513f613391 Add the RasterOps 24MxTV; this card operates in the same manner as two
other RasterOps boards we already handle.  Information provided by
Greg Kerr.
2000-03-18 20:53:24 +00:00
mycroft 6780878550 Fix pasto in previous. 2000-03-18 16:14:57 +00:00
mycroft 0af581a1a1 Add a ncr5380_attach() routine which does part of the initialization, attaches
the scsibus, and does the addref/delref dance.
2000-03-18 16:13:22 +00:00
scottr c62e39490c Check to make sure we get a valid handler ID in response to a TALK R3. 2000-03-18 08:07:50 +00:00
tron e86957458a Install "machineendian_machdep.h". 2000-03-17 22:36:31 +00:00
scottr 0a23aef85e Resurrect a chunk of code from the ite driver that we lost along the way.
This code is necessary for SE/30 internal video, at a minimum.
2000-03-17 04:46:32 +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
scottr 87bf486935 Back out previous; it's now dead code. 2000-03-09 23:15:23 +00:00
scottr d5f475149c The last change has proven unreliable. Attack the problem differently;
assume that the address we have is the correct PA if we can't
figure it out by groveling.  This time it really (yes, really)
works on the PowerBook 14x/16x/170.
2000-03-09 22:27:09 +00:00
scottr 6755970bcf Low-level drivers, like the Power Manager driver, can get us into a major
funk when they misbehave and give us unexpected results.  Specifically:

 - Don't assume that the first free slot is at the top of the table if
   we can't find one.
 - Don't increment ADBNumDevices when backfilling "holes" left by devices
   that didn't respond to a TALK R3 during the initial device scan.
 - Don't assume that an address reassignment worked; make sure something
   responds on the new address before plowing forward.
 - If after device reassignment there are no free slots, make sure to
   indicate this fact.
 - Failing all else, handle the situation where we run out of slots in
   the device table -- which now should "never" happen -- gracefully.

While the Power Manager driver still sometimes misbehaves, it shouldn't
cause the system to crash/hang due to us walking off the end of the
device table.
2000-03-07 06:35:22 +00:00
scottr 027952236a Two changes to facilitate (better) PowerBook 1xx support:
- Use a mask to account for address space "wrapping"
 - Check supervisor data space if we can't find a PTE in user data space
2000-03-04 08:16:16 +00:00
scottr a5d6bd9c7a Add get_pte_s() to search the supervisor space. 2000-03-04 08:10:51 +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
scottr d67bf4504d Turn off some noise during autoconfig on the IIfx/Q9x0, making it
conditional on the TRACE_CONFIG debugging flag.
2000-02-24 05:02: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
scottr 5bc9da0d51 Correct some temporary confusion between the IOPs and the OSS: move
IOP init back to mac68k_init().  We'll deal with the OSS later.
2000-02-21 05:50:14 +00:00
scottr 45ac4c3122 Use constants defined in viareg.h to set value of VIA2. 2000-02-21 05:36:11 +00:00
scottr 17a313075f Correct some temporary confusion between the IOPs and the OSS: move
IOP init back to mac68k_init().  We'll deal with the OSS later.
2000-02-21 04:08:21 +00:00
scottr 5c7674d4dd Explicitly include headers needed by iopreg.h 2000-02-21 02:04:48 +00:00
scottr eb17197dee Initialize VIA/IOP/PSC from intr_init(). While here, re-order headers
to match KNF.
2000-02-21 01:51:37 +00:00
scottr 806c8c15e0 Initialize VIA/IOP/PSC from intr_init(). 2000-02-21 01:48:49 +00:00
scottr ab647533a1 Bracket disabled IIfx IOP code with #ifdef __notyet__, rather than
commenting it out or using #if 0.
2000-02-21 01:20:55 +00:00
ender f30d8c9d30 Include mac68k/dev/akbdmap.h, not macppc/dev/akbdmap.h. Fixes PR 9435
filed by Dave Huang <khym@bga.com>.
2000-02-17 02:07:07 +00:00
scottr 042be92f6f Update for wscons. 2000-02-14 08:58:41 +00:00
scottr 2071e61796 Update for wscons. 2000-02-14 08:48:08 +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
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
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
tsutsui 249975c3c9 Revert (accidentally removed) MAXSLP macro. 2000-01-27 09:47:12 +00:00
ender 3e79c827d4 Fix PR 9302. Fix provided by Hauke Fath (hauke@Espresso.Rhein-Neckar.DE). 2000-01-27 02:26:17 +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
msaitoh 0b9af6bdce check whether tv_usec >= 1000000 2000-01-19 02:52:16 +00:00
thorpej 8201b36ca0 Use b_cylinder as defined in sys/buf.h 2000-01-18 19:43:02 +00:00
scottr 97a60329d2 Apparently, the Mac TV is a re-packaged Performa 550. Add code to
recognize this so that Mac TV users can finally ditch the MRG_ADB option.
1999-12-25 08:16:34 +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 1c5a093819 Make this compile without bpf. Problem noted by Bob Nestor, fix from
Frederick Bruckman.
1999-12-20 01:06:40 +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
scottr a15eb6dc13 An interrupt handler may change adbInCount underneath us, so qualify the declaration
with volatile.  The bug didn't show its face until more agressive
optimization showed up, apparently a result of the last egcs upgrade.
(The interrupt handling changes from June have certainly also played
a part.)  Thanks to Ken'ichi Ishizaka for discovering the problem.
1999-12-10 00:03:47 +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
scottr 3029c58799 Use a bitwise-and to test CC_IPURGE, not a logical-and. This could have led
to flushing the entire cache unnecessarily.
1999-11-28 11:10:47 +00:00
scottr 86a8f1d201 Sync cachectl1() implementation with other m68k ports. 1999-11-28 10:36:56 +00:00
scottr 99d3468790 Don't use the plural form of the word "target" if there is only one! 1999-11-28 10:10:51 +00:00
scottr dc2663bf69 If there is only one ADB device, it will do us no good to avoid it
when guessing which device to poll next.  Resolves PR 7407, but the
bug is a lot older than that.
1999-11-28 10:07:34 +00:00
scottr 2454426afe Take a cue from the i386 port: Enable DHCP by default, rather than
BOOTP.
1999-11-24 22:01:19 +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
scottr 4ecba735df Garbage collect adb_initted. 1999-11-07 08:22:50 +00:00
scottr 0b8b3c403e In the interrupt handlers, check adb_polling instead of
adb_initted to decide whether to handle 'recovered' interrupts
immediately.
1999-11-07 08:18:24 +00:00
scottr 26208b5e57 Garbage-collect adb_init(). It's been dead for a long time. 1999-11-07 08:08:10 +00:00
scottr c11dd8b6dd We want adb_polling set regardless of whether we're using the MRG driver. 1999-11-07 08:07:20 +00:00
scottr 8da942f249 Oops... last rev created an unused variable. While here, clean up
adb_reinit()'s variables a bit, too.
1999-11-07 06:15:09 +00:00
scottr 23411c4c1b Convert one more buffer copy that I missed in rev 1.28. 1999-11-07 05:50:26 +00:00
scottr a7628ea793 Always using polling for poweroff (from macppc). 1999-11-07 00:16:39 +00:00
scottr 27adad708f ite_polling -> adb_polling 1999-11-07 00:12:55 +00:00
scottr 57dc0b9f46 We need adb_initted in a couple of places; declare it here. 1999-11-07 00:12:54 +00:00
scottr ad43c94436 ite_polling -> adb_polling 1999-11-07 00:12:53 +00:00
scottr c827b513ac Convert buffer copies to memcpy(). 1999-11-06 23:50:29 +00:00
scottr 12a535f5ef Add more delay in adb_reinit() (from macppc). 1999-11-06 23:44:32 +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
scottr c738f52fb3 Update an outdated comment. 1999-11-06 22:44:52 +00:00