Commit Graph

188 Commits

Author SHA1 Message Date
eeh
526bc1de59 Include <machine/frame.h> to get the definition of BIAS and CC64FSZ. 2000-07-23 06:57:55 +00:00
mrg
46a7cab70a make this usable for for userland asm, which needs CC64FSZ 2000-07-23 06:15:33 +00:00
eeh
067b7521b5 Fix PIC bugs. 2000-07-18 22:38:11 +00:00
eeh
3143adecfb Tell gcc that stores clobber "memory". Probably makes no difference since
they should not be used to access normal memory anyway.
2000-07-14 21:02:11 +00:00
eeh
41da794863 Make all the inline functions static. 2000-07-14 21:00:17 +00:00
eeh
7b6085ff22 Add support for 64-bit PIC and dynamic linking. 2000-07-14 20:59:07 +00:00
mrg
81ec8bef47 remove old (bogus) comment. 2000-07-13 06:23:07 +00:00
eeh
ec71379542 Use TSO memory model for 32-bit userland. 2000-07-09 22:02:32 +00:00
eeh
e5cd515b89 Upgrate interrupt handling:
1) use interrupt vectors for specific zs chips rather than polling
	   all of them.

	2) use softintr_schedule() and schedule it for a particular device
	   rather than poll all devices.
2000-07-09 21:58:43 +00:00
pk
406e0f779f Add a `device class' interrupt level argument (from machine/intr.h)
to bus_interrupt_establish().

It's currently only used in sparc64/dev/psycho.c to assign a CPU interrupt
level to devices in PCI slots.
2000-07-09 20:57:41 +00:00
eeh
5a7cb20576 gdb requires a `struct fpstate' so provide one. 2000-07-08 19:25:14 +00:00
eeh
3f2289a3d7 Handle bus_dma aligment properly. 2000-07-07 02:50:19 +00:00
eeh
968524445a Prevent interrupts from being posted if they are active and deprecate polled
interrupts.  This seems to eliminate the spurious interrupts.
2000-07-03 17:56:06 +00:00
eeh
f504adf782 Clean up interrupt handling some more. 2000-07-02 16:13:21 +00:00
eeh
707e41f21e Fix interrupt delivery on UltraSPARC IIi machines. 2000-06-30 22:58:01 +00:00
itojun
d738f90fd7 raise MSIZE from 128 to 256.
- for sizeof(void *) == 8 arch, this is mandatory.  MHLEN is too small
  already (less than 80) and there are chances for unwanted packet loss due
  to m_pullup restriction.
- for other cases, the change should avoid allocating clusters in most cases
  (even when you have IPv4 IPsec tunnel, or IPv6 with moderate amount of
  extension header)

portmasters: if your arch chokes with the change (high memory usage or
whatever), please backout the change for your arch.
2000-06-30 17:55:11 +00:00
eeh
ff9280f4ee This seems to fix the problem in __semctl13.c without breaking anyghing else. 2000-06-29 20:15:24 +00:00
pk
8906c1b836 Fix bus_space_read_region_{2,4,8}(). 2000-06-29 14:10:16 +00:00
mrg
4d14e81c0b remove include of <vm/vm.h>. <vm/vm.h> -> <uvm/uvm_extern.h> 2000-06-29 07:37:53 +00:00
kleink
d82c31e07e Typo. 2000-06-27 08:43:02 +00:00
kleink
bb2ed0f487 G/c _BSD_INTPTR_T_ and _BSD_UINTPTR_T_. 2000-06-27 05:53:22 +00:00
kleink
47b5c5e3b1 Resolve some formatting nits; add __intptr_t and __uintptr_t. 2000-06-27 04:58:51 +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
eeh
7e7c0311e4 Advertise we have __GENERIC_SOFT_INTERRUPTS. 2000-06-26 15:13:26 +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
eeh
6c5d2dbbac With these changes the kernel seems almost stable again. 2000-06-24 20:48:36 +00:00
eeh
85cab8fe27 More VM cleanup:
Move the cpu_info structure above the interrupt stack so it won't
	get corrupted if the stack overflows.

	Flush the D$ before and after all MMU bypass accesses since the
	D$ latches all of those.
2000-06-24 04:38:20 +00:00
eeh
0db2dfd53f Make these interrupt levels reflect reality a bit better. 2000-06-24 04:25:08 +00:00
eeh
be308420d4 Get rid of vaddrs.h. 2000-06-24 04:20:58 +00:00
kleink
133ea38323 Add a WEAK_ALIAS() macro. 2000-06-23 12:18:45 +00:00
eeh
75eaa6ba70 lda is unsigned, ldswa is signed. Fixes a 32-bit sign extension bug. 2000-06-20 18:06:12 +00:00
eeh
245619bad4 Have separate data and text segments, make text read-only. 2000-06-19 23:30:32 +00:00
eeh
3517559eb5 Missing paren. 2000-06-13 05:04:05 +00:00
eeh
fb0404cc75 Start reorganizing the kernel for MULTIPROCESSOR support. 2000-06-12 23:32:46 +00:00
eeh
3dfb9ee7ac More debugging support. 2000-06-12 23:20:54 +00:00
mrg
fdfb59b4b9 ih_map & ih_clr are volatile. 2000-06-12 05:29:43 +00:00
eeh
d26027dd5b Only use 32-bit addresses for all accesses that don't bypass the MMU.
Makes SBus work again.
2000-06-10 20:51:43 +00:00
eeh
6baca0c1ad Fixup signed/unsigned issues so 32-bit addresses are not sign extended. 2000-06-08 17:43:24 +00:00
pk
9a8d03d6bd Add a couple of missing semi-colons. 2000-06-07 09:16:41 +00:00
cgd
cffb580806 Implement the more flexiable `evcnt' interface as discussed (briefly) on
tech-kern and now documented in evcnt(9).
2000-06-04 19:14:14 +00:00
eeh
03228642f7 Use all 64 address bits in ld*a()/st*a() macros so physical device addresses
work.  (Also add some bus_space_*() debug hooks).
2000-06-02 22:56:32 +00:00
eeh
94084a33f8 New softintr interface. 2000-06-02 15:36:53 +00:00
cgd
47449a63d2 kill __P in these files. (I had to look at them anyway with an eye for
adding some protos... and adding them with __P seems wrong, but mixing
__P and not __P in the same file seems wrong too, so...)
2000-06-01 00:04:50 +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
eeh
ca743bac9a Use the PCI function code to distinguish simba bus A from bus B instead
of the current hack.
2000-05-24 20:27:52 +00:00
mrg
296eaaa36d add two new CPU_ISXXX versions: CPU_ISSUN4U, CPU_ISSUN4MOR4U 2000-05-22 02:35:23 +00:00
eeh
424619ca1a Fix the sparc64 console.
Unlike the other Sun machines, UltraSPARCs can have consoles run on different
chips than zs, so we need to support them.  So, here we go:

	Add a new PROM console driver with a major number and everything.
	This is the default driver if nothing else attaches.  It does not
	use the keyboard driver since the PROM translates keystrokes itself.
	(Unfortunately it also swallows L1-A).

	Have the keyboard driver take over the console when it attaches on a
	serial port.  When a serial port detects a keyboard and attaches the
	keyboard driver, it needs to provide a set of consdev vectors.  They
	keyboard driver will use those to send I/O to the keyboard and mouse.
2000-05-19 05:26:16 +00:00
hannken
0b2854eb6c Fix for lint during build of libc. 2000-05-05 20:12:00 +00:00
thorpej
855b79db92 Let each platform typedef the new __cpu_simple_lock_t, which should
be the most efficient type used for the atomic operations in the
simplelock structure, and should also be __volatile.
2000-05-02 04:41:04 +00:00
thorpej
a2edf1690f Fix a declaration inside __ldstub(). 2000-05-01 00:46:29 +00:00