summaryrefslogtreecommitdiffstats
path: root/sys
Commit message (Collapse)AuthorAgeFilesLines
* Sync with NetBSD (1.16 - 1.17)joe2001-12-291-32/+13
| | | | | "Bring the coding style into the 80s, i.e., get rid of __P and use ANSI prototypes and declarations."
* Update with missing filenames, merged from NetBSD.joe2001-12-291-1/+10
|
* Fix an error which could cause a panic if both an ifpi and ifpi2 controllergj2001-12-292-5/+5
| | | | | | | were installed. For the ifpi2, change the string in the driver_t from "ifpi2" to "ifpi2-" so that one sees "ifpi2-0" instead of "ifpi20" at boot time.
* Make these compile.jake2001-12-293-24/+18
|
* Remove local change that crept in.jake2001-12-291-1/+0
|
* Don't reveal a router in the IPSTEALTH mode through IP options.yar2001-12-291-4/+41
| | | | | | | | | | | The following steps are involved: a) the IP options related to routing (LSRR and SSRR) are processed as though the router were a host, b) the other IP options are processed as usual only if the packet is destined for the router; otherwise they are ignored. PR: kern/23123 Discussed in: freebsd-hackers
* Add a header for user trap types required by the sparc abi.jake2001-12-291-0/+84
| | | | | For simplicity the corresponding kernel types use the same numerical values.
* Adapt for used by upcoming fp emulation code.jake2001-12-291-62/+41
| | | | | | Comment. Submitted by: tmm
* Print the correct v9 opcodes.jake2001-12-291-18/+18
| | | | Submitted by: tmm
* Don't concatenate __func__.jake2001-12-291-1/+1
|
* sparc64 needs the same alingment fixes that alpha and ia64 do.jake2001-12-291-1/+1
| | | | Submitted by: tmm
* sparc64 needs the same alignment fixes that ia64 and alpha need.jake2001-12-291-1/+1
| | | | Submitted by: tmm
* Change traces in hardclock and statclock to use the KTR_CLK tracejake2001-12-291-2/+2
| | | | facility, rather than KTR_INTR.
* Update to new constants.jake2001-12-291-34/+34
|
* Make cont in ddb work.jake2001-12-291-0/+1
|
* Prototype dcache_inval_phys.jake2001-12-291-0/+1
| | | | Submitted by: tmm
* Add comments as to why VM_MAXUSER_ADDRESS is magic (abitrary).jake2001-12-291-6/+21
| | | | | | Define the KVA_RANGE in terms of ttes, not sttes. Remove UPT_MIN_ADDRESS. We no longer use a hard coded address for the user tsb.
* Make tte bit constants explicitly unsigned and long.jake2001-12-291-46/+33
| | | | | Add a wierd soft bit. Remove struct stte.
* Add definitions for dcache color bits, which may move to cache.h.jake2001-12-291-6/+36
| | | | | | | Add fields to md_page for tracking virtual page color, and pv entry lists. Fix pmap_track_modified to work for non-kernel pmaps. This is due to kernel virtual addresses potentially overlapping with userland addresses.
* Implement pv entries as separate structures from the ttes, like otherjake2001-12-291-162/+29
| | | | architectures do.
* Remove support for multi level tsbs, making this code much simpler andjake2001-12-292-356/+103
| | | | | | | | much less magic, fragile, broken. Use ttes rather than sttes. We still use the replacement scheme used by the original code, which is pretty cool. Many crucial bug fixes from: tmm
* Implement pv entries as separate structures from the ttes, as otherjake2001-12-291-172/+177
| | | | | | architectures do. Many crucial bug fixes from: tmm
* Great pmap rewrite to use a much simpler one level tsb of ttes, insteadjake2001-12-291-430/+867
| | | | | | | | | | | | | | of sttes. Also removes many differences between this and the other pmaps. Reserve the kva space used by the openfirmware translations. Use physical addresses directly in pmap_zero_page and pmap_copy_page, now that we have the cache line shooting support. Add code to track the virtual cachability of mapped pages. The dmmu requires that multiple mappings of the same phsyical address have the save virtual address bits up to a colour boundary. Violating this requires all mappings to be mapped uncacheable. We do not yet handle the case of a badly aliased mapping becoming cachable again. Many crucial bug fixes from: tmm
* Use fprs to track floating register usage. Clear it once we've savedjake2001-12-292-344/+270
| | | | | | | | the registers so we don't uselessly save them over and over again for each context switch until another floating point instruction is executed. Use a non-specific tlb slot for the tsb, which needs to have a locked entry. Remove overly verbose traces.
* Add .register directives for gcc3.jake2001-12-292-1372/+1634
| | | | | | | | | | | | | | | | | | | | | | | | | | | Add macros to atomically increment an integer variable in the data section and to atomically set a bit in a tte. Note that the latter does not return the new value. Rewrite RESUME_SPILLFILL_MAGIC to use more sensical calculations, and to preserve all alternate globals religiously. Must now be called on alternate globals. Defer switching to the kernel stack until inside the syscall, trap, interrupt wrappers. Splitting the windows is all that's really urgent. Adapt to new trap types. Add %xcc where appropriate in order to not use v8 opcodes inadvertantly (which work fine). Modify the low level tlb fault handlers to operate on a tsb made up of ttes, not sttes. This effectively makes the tsb twice as large. After atomically updating tte bits in memory, also set the bit in the register that holds the data which will be loaded into the tlb. The macro returns the old value. Use the preloaded mmu global which holds the address of the current user tsb. Add back a low level protection fault handler instead of just punting into the vm system. This effectively saves a soft fault per COW fault. Add a trace to intr_enqueue. Pass arguments to the trap, interrupt, syscall wrappers in the out registers instead of some on the stack, some in registers. Use the preloaded alternate global pcb register.
* Add needed include of fsr.h.jake2001-12-291-5/+5
| | | | | | Use fprs to track floating point usage. Remove misguided comment. Clear fprs in a child process's new trapframe.
* 1. Adapt to new trap types.jake2001-12-291-137/+149
| | | | | | | | | | 2. Make trap_pfault more like it is on other architectures. 3. Fix a bug in syscall() which caused system calls with more than six arguments that are called through the wild card syscall to have their arguments scrambled. This affected mmap due to the (bogus) wrapper in libc. Submitted by: tmm (3)
* Add .register directives for gcc3.jake2001-12-292-34/+74
| | | | | | | Add some traces that can be useful but are also very loud. Use defines for offsets into jmpbuf instead of magic numbers. Fix a style bug. Fixup comments.
* Assert at compile time that structures which need to be a power ofjake2001-12-291-6/+10
| | | | | 2 really are. Move a trace to before flushw in case it goes off the deep end.
* Remove a debug printf.jake2001-12-291-70/+59
| | | | | | Setup new dedicated global register (alternate, and mmu). Make setregs readable again. Adapt to moving of many things into trapframe.
* intr_handlers is an array of function pointers, not small structures.jake2001-12-291-2/+5
| | | | | Assert at compile time that structures which need to be a power of 2 in size really are.
* Add .register directive for gcc3.jake2001-12-292-4/+16
| | | | Enforce in hardware the non-use of floating point in the kernel.
* 1. Make this more name space friendly (* -> emul_*).jake2001-12-291-20/+16
| | | | | | | 2. Don't whine about unaligned fixups by default. 3. Adapt to removal of mmuframe. Submitted by: tmm (1, 2)
* Be paranoid about the sizeof passed to db_get_value, not all trapframejake2001-12-291-136/+91
| | | | | | fields are u_long. Print useful information about traps in backtraces. GC some dead code.
* Implement dcache_inval_phys, which shoots the cache lines that correspondjake2001-12-291-4/+29
| | | | | | | to a specific physical address. This is used for page copy and zero routines which use physical addresses directly. Submitted by: tmm
* Make AIO a loadable module.alfred2001-12-2918-112/+242
| | | | | | | | | | | | | | | | | | | | | | | | Remove the explicit call to aio_proc_rundown() from exit1(), instead AIO will use at_exit(9). Add functions at_exec(9), rm_at_exec(9) which function nearly the same as at_exec(9) and rm_at_exec(9), these functions are called on behalf of modules at the time of execve(2) after the image activator has run. Use a modified version of tegge's suggestion via at_exec(9) to close an exploitable race in AIO. Fix SYSCALL_MODULE_HELPER such that it's archetecuterally neutral, the problem was that one had to pass it a paramater indicating the number of arguments which were actually the number of "int". Fix it by using an inline version of the AS macro against the syscall arguments. (AS should be available globally but we'll get to that later.) Add a primative system for dynamically adding kqueue ops, it's really not as sophisticated as it should be, but I'll discuss with jlemon when he's around.
* Rename definitions to better match the hardware wstate fields.jake2001-12-291-2/+2
| | | | Don't include WSTATE_TRANSITION in WSTATE_NORMAL_MASK.
* Add definitions for TSTATE_MM_* and TSTATE_{I,X}CC_*.jake2001-12-291-0/+10
| | | | Implement TSTATE_SECURE in terms of PSTATE_SECURE.
* Rename and renumber trap types to comply with the user trap types asjake2001-12-291-40/+54
| | | | | | | specified by the sparc abi. We use numerically higher values for all internal kernel types. Remove soft trap types which need to be exposed to userland. They will move to utrap.h.
* 1. Certain tlb operations need to be atomic, so disable interrupts forjake2001-12-291-0/+54
| | | | | | | | | | their duration. This is still only effective as long as they are only used in the static kernel. Code in modules may cause instruction faults which makes these break in different ways anyway. 2. Add a load bearing membar #Sync. 3. Add an inline for demapping an entire context. Submitted by: tmm (1, 2)
* jmpbuf is no longer a ucontext_t since it does not need to be passedjake2001-12-291-1/+7
| | | | | to sigreturn. Add definitions for array offsets.
* Add fprs to struct fpreg.jake2001-12-291-0/+1
|
* Define PSTATE_MM_MASK in terms of PSTATE_MM_SIZE.jake2001-12-291-2/+4
| | | | Implement PSTATE_SECURE.
* Remove pcb_y. It has moved to trapframe.jake2001-12-291-1/+0
|
* Don't concatentate __func__.jake2001-12-291-5/+9
| | | | | Make page size constants explicitly long and unsigned. Add a macro for compile time assertions.
* Make it clear that IH_SHIFT is expected to be that of a pointer.jake2001-12-291-7/+2
| | | | | Make intr_handlers an array of function pointers instead of small structures.
* Add definitions for magic numbers used in asm.jake2001-12-291-17/+15
| | | | | | | Bloat trapframe with many extra fields so we don't need extra structures. Use small data types where possible. Remove second copy of TF_DONE. Remove mmuframe.
* Change fpblock to be an array of ints instead longs.jake2001-12-291-5/+3
| | | | | Change fp_init_thread to take a thread instead of a pcb so we can get at the trapframe.
* Add "memory" to the clobber list for membars.jake2001-12-291-1/+1
| | | | Submitted by: tmm
* Implement CLKF_USERMODE so that user time is accounted properly.jake2001-12-291-2/+2
| | | | Submitted by: tmm
OpenPOWER on IntegriCloud