Commit Graph

53 Commits

Author SHA1 Message Date
aymeric 77dd4deaa6 introduce an interrupt_depth variable which counts how nested we are into
interrupts.
This allows hardclock() to account for the time spent in interrrupts, and
as a side-effect, top(1), systat(1) and others will no more report 0% of
interrupt activity.

mvme68k does that already.
2001-11-07 23:25:03 +00:00
mrg 67afbd6270 use _KERNEL_OPT 2001-05-30 11:57:16 +00:00
scw 4350a7f2b7 Unification of the m68k syscall() function. 2000-12-19 21:09:54 +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 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
is e4dbf8998d Remove now superfluous prototype definitions (of the m68k cache operations). 1999-10-14 21:40:05 +00:00
thorpej 28fb7c1eb8 Define cpu_number() as discussed on tech-smp. 1999-08-10 21:08:05 +00:00
is f71d843a65 synchronize types, and s/curproc/p/ in one forgotten place 1999-02-26 22:37:57 +00:00
is 84971e3a6f mac68k part of pr 6152 fix, and missing bits for the others 1999-02-25 23:13:39 +00:00
thorpej 49c62c4336 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:41:23 +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
is 1fd18c6ecf Define is_draco() inlined.
Corresponds to removal of this function in autoconf.c 1.61.
1998-09-05 21:10:55 +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
is a16fd7d74e Make these compile after m68k/m68k.h 1.4->1.5. 1997-10-26 21:41:34 +00:00
thorpej e2b0388ed8 regdump() is prototyped in <m68k/cpu.h> now. 1997-04-09 19:34:53 +00:00
mhitch d8489a6f7e "options GENERIC" is obsolete, don't need the prototype for setconf() anymore. 1997-01-31 22:59:19 +00:00
thorpej e469c7beca Use <m68k/cpu.h>. 1996-09-11 00:11:42 +00:00
is a7a99df915 Some more Prototypes needed for DraCo support. 1996-05-19 15:35:43 +00:00
is 9546c59d96 Only declare setconf() #ifdef GENERIC. 1996-05-16 16:10:11 +00:00
is d5793c310d add DCIA prototype. 1996-05-16 16:02:15 +00:00
is f6ab1073c8 First part of M68060 and DraCo support.
* for the M68060 part: store buffer and branch target cache aren't
  enabled yet (this needs cleanup of lots of locore.s code which is a
  maze of little passages, all a little different) (and it wasn't yet
  tested in an accellerated Amiga, only in the DraCo).

  I've included a workaround for 2 of the CPU bugs in chips with Masks
  1F43G and earlier, but didn't bother to deal with the can of worms
  in the [0-3]D11W chips. Be sure to get "68060 rev. 1" or more
  reported at kernel startup time, or at least mention it (or the mask
  revision, if available) when reporting problems.

* for the DraCo: only machines with a CIA timer.

  I assigned machine id 32000+nn (0x7Dnn), where n is the machine
  readable Quicklogic custom chip revision (also printed at boot
  time).  "Guaranteed to work" up to rev. 3, newer DraCo's aren't
  guaranteed to have any CIA (we don't have a driver for the new timer
  yet).

  Supported are:

  - MF-II keyboards on the native interface and A3000 keyboards via
    the CIA.
  - builtin SCSI interface (yet another instance of siop)
  - CIA timer.
  - Zorro II devices which don't do DMA (don't get mapped to Zorro II
    address space in the DraCo)
  - "local bus" devices which are autoconfigured by the boot rom
    (should be all); only an Altais driver is there (looks like a Retina Z3)

  Not yet supported are:

  - native timer of newer machines.
  - Real Time Clock.
  - serial, parallel + floppy on the SuperIO chip (that is also: no mouse)

  XXX You need an enhanced boot loader, which will committed in a few days.

  XXX std.draco should and will go away.
1996-05-09 20:30:30 +00:00
veego 2c2a65b39e Add a __noreturn__ attribute for doboot 1996-04-27 20:55:08 +00:00
veego 463c504dc7 The prototyp for cpu_set_kpc is now in sys/systm.h 1996-04-23 22:54:49 +00:00
veego a922ebfb8b - Cleanup for -Wall and -Wstrict-prototypes 1996-04-21 21:13:16 +00:00
is 62dcb879c0 Typo squished. 1996-03-30 16:22:55 +00:00
is 77e56e826d Yet more MC68060 bits. 1996-03-26 16:55:37 +00:00
is ed24bc5ba8 AMIGA_68060 flag in cpu.h and genassym.c. 1996-03-15 19:47:45 +00:00
mycroft ce000f04ef Remove deprecated cpu_setstack(). 1995-12-21 05:01:32 +00:00
chopps 2208782633 SCSI disconnects: siop from osymh@gemini.oscs.montana.edu (Michael L. Hitch)
and sbic from "Eduardo E. Horvath eeh@btr.com" <eeh@btr.btr.com>

Other cleanup (remove cpu040) and enabling IVS A500 support
from osymh@gemini.oscs.montana.edu (Michael L. Hitch)
1995-08-18 15:27:29 +00:00
cgd c83f9c5568 remove unused cpu_exec() definitions. moved "broken swap" markers, for
ports that still need it, to types.h.
1995-06-28 02:55:18 +00:00
chopps 0282985f87 PS_STRINGS in A2. Add fputype, remove cpuspeed. switch to new coredump 1995-05-16 20:59:07 +00:00
chopps c7b33abd2d enable swapping of process 1995-05-12 00:21:54 +00:00
chopps 35785d310e remove double mapping of kernel stack. created cpu_set_kpc() 1995-05-11 23:04:18 +00:00
cgd 8703076975 define BROKEN_SWAP and/or cpu_swapout as appropriate. 1995-05-05 03:41:51 +00:00
christos de42a28a1b - added sunos_machdep.c for sun3, atari, amiga and mac68k.
- changed machdep.c and trap.c to use struct emul.
- remove ep_setup references.
- added struct emul to all emulations.
1995-04-22 20:24:40 +00:00
jtc 71ab4ed9dc KERNEL -> _KERNEL 1995-03-28 18:13:48 +00:00
chopps 32dc3c5832 Many changes from osymh@gemini.oscs.montana.edu (Michael L. Hitch)
Now use amiga HW for soft interrupts, non-contig options (2 or many chunks),
interrupt handler lists, 4066 ethernet, 1291 scsi, option to defer level 6
interrupts to level 4 (deal with icky built-in serial port)
1995-02-12 19:18:33 +00:00
cgd ec77f0b327 new RCS ID format. 1994-10-26 02:01:24 +00:00
chopps cd5921a72f started out cleaning up amiga_init.c ended up touching alot of files. 1994-06-04 11:58:35 +00:00
chopps 62843870cc update to work with new m68k frame and recent vm changes. 1994-05-25 07:59:57 +00:00
chopps 0c5b43e133 update for recent sig changes and fix clock.c and ite.c 1994-05-09 06:38:37 +00:00
chopps 571ade5c16 resistance is futile, you will be assimilated.
amiga goes: config.new *and* /sys/scsi.
clock code coerced into a single .c file adding an accurate usec delay().
disklabel.c updated to DTRT, code to write RDB's to be added soon.
sbic (old scsi) converted over to new scsi and config this covers about
90% of users.  Other drivers soon.
1994-05-08 05:53:56 +00:00
chopps 36de8a074d update to match current proc flags. 1994-05-04 07:35:33 +00:00
chopps 172b2ced90 also conform to standard style 1994-04-10 02:28:14 +00:00
chopps c1a4ced691 protect against multiple inclusion (and be consitent) 1994-04-10 02:06:32 +00:00
chopps 276eff6bd9 Add missing Id's 1994-02-11 07:00:37 +00:00
chopps c7d3c021db swap ps and pc to match m68k:struct frame. 1994-02-03 04:24:03 +00:00
mw 28b8a3907b Updated headers from current amiga branch. 1994-01-26 21:12:12 +00:00
mw 10e446bf72 new tree for amiga, replacing the bogous previous one.
SunOS support works for a lot of executables now (static and dynamic).
1993-10-30 23:41:47 +00:00