summaryrefslogtreecommitdiffstats
path: root/sys/sparc64/include/pcb.h
Commit message (Collapse)AuthorAgeFilesLines
* - Add space for kernel floating point registers to the pcb. These will bejake2003-04-031-6/+8
| | | | | | | | | used to support block copy and zero operations in the kernel which use the floating point registers. - While I'm changing the size, improve the layout of struct pcb, sort by size, then alphabetical etc. - Add some assertions to validate assumptions made about how the pcb is allocated.
* - Add a flags field to struct pcb. Use this to keep track of wether orjake2003-04-011-0/+3
| | | | | not the pcb has floating point registers saved in it. - Implement get_mcontext and set_mcontext.
* - Rename pcb_fpstate to pcb_ufp (user floating point), and change it tojake2003-04-011-3/+2
| | | | | | a simple array of 64 ints. - Use a critical section when saving floating point state in cpu_fork instead of sched_lock.
* Rename pcb_fp to pcb_sp, so as to not be confused with floating pointjake2003-04-011-1/+1
| | | | state.
* Explicitely specify an alignment for struct pcb. While all regular pcb'stmm2002-10-191-1/+1
| | | | | are positioned and aligned by md code, dumppcb is just a static variable and requires this.
* The a.out md_coredump stuff isn't referenced anywhere anymore, andpeter2002-10-151-3/+0
| | | | hasn't been filled in for ages.. Nuked.
* Demark sections of code that need special fault handling with labels.jake2002-08-161-1/+0
| | | | | | | | Check if the trapped pc is inside of the demarked sections to implement fault recovery for copyin etc, instead of pcb_onfault. Handle recovery from data access exceptions as well as page faults. Inspired by: bde's sys.dif
* Remove pcb_y. It has moved to trapframe.jake2001-12-291-1/+0
|
* 1. Convert the tstate saved in the pcb to a pstate and test for PSTATE_PEFjake2001-11-181-9/+1
| | | | | | | | | | | | | | to determine if a process is using floating point. in order to avoid sign extending a 13 bit immediate. 2. We don't need to context switch cwp anymore, it is better to just fiddle the save tstate on return from traps. See exception.s 1.10 and 1.12. 3. Completely remove pcb_cwp. 4. Implement vmapbuf, vunmapbuf and vm_fault_quick. Completely remove TODOs from vm_machdep.c (yay!). Submitted by: tmm (1, 3, 4) Obtained from: existing archs (4)
* style(9) the structure definitions.obrien2001-09-051-2/+2
|
* Implement a slightly different window spill/fill algorithm for dealingjake2001-09-031-4/+4
| | | | | | | | | | | | | | | | | | | | | with user windows in kernel mode. We split the windows using %otherwin, but instead of spilling user window directly to the pcb, we attempt to spill to user space. If this fails because a stack page is not resident (or the stack is smashed), the fault handler at tl 2 will detect the situation and resume at tl 1 again where recovery code can spill to the pcb. Any windows that have been saved to the pcb will be copied out to the user stack on return from kernel mode. Add a first stab at 32 bit window handling. This uses much of the same recovery code as above because the alignment of the stack pointer is used to detect 32 bit code. Attempting to spill a 32 bit window to a 64 bit stack, or vice versa, will cause an alignment fault. The recovery code then changes the window state to vector to a 32 bit spill/fill handler and retries the faulting instruction. Add ktr traces in useful places during trap processing. Adjust comments to reflect new code and add many more.
* Add support for splitting the register windows on entry to thejake2001-08-201-1/+15
| | | | | | | | | kernel from usermode. The remaining user windows are spilled to the pcb as necessary. The user land window fault handlers fill directly from the pcb on return. Add system call entry points. Submitted by: tmm
* The author isn't a [UC] Regents. Correct the copyright language.obrien2001-08-091-2/+2
|
* Add floating point context switching code for sparc64.tmm2001-08-041-0/+5
| | | | Reviewed by: jake
* Flesh out the sparc64 port considerably. This contains:jake2001-07-311-1/+3
| | | | | | | | | - mostly complete kernel pmap support, and tested but currently turned off userland pmap support - low level assembly language trap, context switching and support code - fully implemented atomic.h and supporting cpufunc.h - some support for kernel debugging with ddb - various header tweaks and filling out of machine dependent structures
* Add skeleton machine dependent headers and c files for a port of freebsdjake2001-07-311-0/+43
to a new architecture. This is the base of the sparc64 port, but contains limited machine dependent code, and can be used a base for ports. Included are: - standard machine dependent headers, tweaked for a 64 bit, big endian architecture, including empty versions of all the machine dependent structures - a machine independent atomic.h, which can be used until a port has support for interrupts and the operations really need to be atomic - stub versions of all the machine dependent functions, which panic when called and print out the name of the function that needs to be implemented. functions which are normally in assembly files are not included, but this should reduce the number of different undefined references on the first few compiles from hundreds to 5 or 6 Given minimal startup code and console support it should be trivial to make this compile and run the first few sysinits on almost any architecture. Requested by: alfred, imp, jhb
OpenPOWER on IntegriCloud