Commit Graph

44 Commits

Author SHA1 Message Date
hannken
3b5501efa7 Cleanup last by using a "n"umeric address space identifier.
Ok: Martin Husemann <martin@netbsd.org>
2007-03-31 13:04:21 +00:00
martin
a63279589c When invalidating a context, make sure to flush user windows upfront.
Do not set the DMMU secondary context to 0 (that would be kernel), and
add a few required membars after switching the secondary dmmu context.

This avoids SIRs caused by double kernel_data_faults, caused by spills
of obsolete user windows after the context for that user pmap is gone.
2007-03-30 21:14:13 +00:00
cdi
d0f8217f78 Use ANSI-style function definitions and declarations. 2006-02-20 19:00:27 +00:00
perry
fbae48b901 Change "inline" back to "__inline" in .h files -- C99 is still too
new, and some apps compile things in C89 mode. C89 keywords stay.

As per core@.
2006-02-16 20:17:12 +00:00
cdi
d50f0c6274 ANSIfication: u_intN_t -> uintN_t, use ANSI function declarations/definitions
instead of K&R ones.
2006-02-11 17:57:31 +00:00
perry
50a256a3a0 __asm__ -> __asm
__const__ -> const
__inline__ -> inline
__volatile__ -> volatile
2005-12-24 23:23:59 +00:00
perry
5f1c88d70d Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete. 2005-12-24 20:06:46 +00:00
christos
95e1ffb156 merge ktrace-lwp. 2005-12-11 12:16:03 +00:00
petrov
a021a66c36 Added UPA_MID definitions and macros(similar to FreeBSD).
Added membar_store, membar_load macros.
No need to set %asi _after_ alternate space use in corresponding functions.
Enable(unifdef) casa functions for __arch64__.
2004-07-01 22:59:16 +00:00
heas
66307fc36e typo in define name, littie -> little 2004-07-01 14:57:46 +00:00
martin
44eda0ad6b Add missing ; in inline assembler for 32bit kernels 2004-06-24 19:42:27 +00:00
petrov
ac26f9468c clean-up, reformat __asm statements. 2004-06-17 19:35:14 +00:00
nakayama
3a065cad6a Eliminate cast 64-bit address to u_long. 2004-03-22 12:24:37 +00:00
chs
cec587ddf6 checkpoint of MP work from dennis and myself. includes cross-processor
interrupt framework, a sledgehammer TLB invalidation and misc MP fixes.
doesn't work at all yet.
2004-03-14 18:18:54 +00:00
eeh
dcb399fc7c Don't need to flush the d$ for MMU bypass accesses. 2002-04-24 23:54:24 +00:00
eeh
59339eac04 Make PHYS_ASI() also recognize little-endian ASIs. 2002-01-14 20:44:30 +00:00
eeh
c633b30dd4 Add some alternate spellings for ASIs.
Make sure ASI_PRIMARY_NOFAULT is always restored.
Garbage collect some old code.
2001-08-06 23:55:34 +00:00
eeh
0c4549ab71 Don't bother flushing cache lines for un-cached accesses. 2001-07-19 23:47:37 +00:00
eeh
5df2260776 Add the shorter version of block ASIs used by Sun. 2001-06-29 23:56:05 +00:00
eeh
a5ecd862b1 Fix some 32-bit assembly code. 2000-12-29 17:13:33 +00:00
fvdl
2c81c82473 Comment out caxsa, it's not used. Avoids 32 bit compile errors. 2000-12-04 20:14:05 +00:00
eeh
a17d71cd4b Fix register sheduling bug in st?a() routines and add casxa(). 2000-08-31 19:08:47 +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
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
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
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
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
mrg
304778e6c2 - IRSR_BUSY is bit 5 not bit 4.
- IRSR_MID(x) is &'d with 0x1f (5 bits) not 0xf.
2000-04-10 16:05:13 +00:00
mrg
30c351dc59 mmm, missing return types make gcc unhappy. 1999-06-08 10:35:36 +00:00
eeh
186c3eba2b Make pbrobeget() and probeset() work for 64-bit values as well. To do this
the arguments are changed so the address is first and the ASI second so we
can have the address in %o0:%o1 and not worry about unused registers.

Also a bit of copyright cleanup.
1999-06-05 21:58:16 +00:00
eeh
07d5dfdd7b Fix some bugs in some more of those asm macros. 1999-05-31 00:13:16 +00:00
eeh
cd53dbd506 Re-write ASI load/stores to use full 64-bit addresses so we can use device
register addresses with MMU bypass ASIs.
1999-05-30 19:11:33 +00:00
eeh
56b080bed6 Fixup argument confusion to __asm() statements. long long is two registers
wide in 32-bit mode.  Doh!.
1999-05-22 20:25:49 +00:00
eeh
564db48540 Don't clobber any input regs in __asm statements. 1999-05-11 05:06:17 +00:00
eeh
f0503a65c8 Flush D$ on bypass accesses. 1999-03-22 05:35:39 +00:00
mrg
7006310cbd retire _LP64; use compiler provided __arch64__, but still defined _LP64 where we used to anyway. 1999-01-31 09:21:18 +00:00
eeh
08af05f929 Fix 32-bit gcc scheduling problems. 1998-11-13 03:47:15 +00:00
eeh
a112a2a4cc It slices. It dices. It does everything except exec a sparc32_compat init. 1998-09-05 23:57:24 +00:00
eeh
cf9a8a5a53 Periodic update: now starts probing devices. 1998-09-02 05:51:35 +00:00
eeh
01e2e698b6 Import of sparc64. 1998-06-20 04:58:50 +00:00