summaryrefslogtreecommitdiffstats
path: root/sys/sparc64
Commit message (Collapse)AuthorAgeFilesLines
* KSE Milestone 2julian2001-09-1225-249/+361
| | | | | | | | | | | | | | Note ALL MODULES MUST BE RECOMPILED make the kernel aware that there are smaller units of scheduling than the process. (but only allow one thread per process at this time). This is functionally equivalent to teh previousl -current except that there is a thread associated with each process. Sorry john! (your next MFC will be a doosie!) Reviewed by: peter@freebsd.org, dillon@freebsd.org X-MFC after: ha ha ha ha
* Rip some well duplicated code out of cpu_wait() and cpu_exit() and movepeter2001-09-101-28/+0
| | | | | | | | | | | | it to the MI area. KSE touched cpu_wait() which had the same change replicated five ways for each platform. Now it can just do it once. The only MD parts seemed to be dealing with fpu state cleanup and things like vm86 cleanup on x86. The rest was identical. XXX: ia64 and powerpc did not have cpu_throw(), so I've put a functional stub in place. Reviewed by: jake, tmm, dillon
* style(9) the structure definitions.obrien2001-09-052-2/+2
|
* style(9) the structure definitions.obrien2001-09-059-20/+20
|
* style(9) the structure namesobrien2001-09-041-6/+6
|
* Zap #if 0'ed map init code that got moved to the MI area.peter2001-09-041-87/+0
| | | | Convert the powerpc tree to use the common code.
* Make this compile.jake2001-09-041-0/+3
|
* Remove some stale definitions and update for new assembler code.jake2001-09-031-56/+28
|
* Add ktr traces to copy{in,out} and cpu_switch.jake2001-09-034-6/+198
| | | | | | Context switch the cwp value. The register usage in cpu_switch will be updated shortly to better reflect the fact that the current window may change.
* Add comments following what other architectures have.jake2001-09-031-1/+36
| | | | | Fiddle the register values in the trapframe so children returning from fork() return 0 (and success).
* Change tf_arg to uintptr_t from void * to reflect the fact thatjake2001-09-033-23/+10
| | | | | | non-pointer values may be passed in it. Add appropriate casts. The interrupt type is now passed in tf_arg instead tf_type.
* Implement a slightly different window spill/fill algorithm for dealingjake2001-09-036-1514/+2354
| | | | | | | | | | | | | | | | | | | | | 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.
* Move the alternate global register stack to struct globaldata.jake2001-09-032-0/+12
|
* Add ktr traces.jake2001-09-031-0/+8
|
* Implement pv_bit_count which is used by pmap_ts_referenced.jake2001-09-036-253/+392
| | | | | | | | | | | | | | | | | | | | | | | Remove the modified tte bit and add a softwrite bit. Mappings are only writeable if they have been written to, thus in general modify just duplicates the write bit. The softwrite bit makes it easier to distinguish mappings which should be writeable but are not yet modified. Move the exec bit down one, it was being sign extended when used as an immediate operand. Use the lock bit to mean tsb page and remove the tsb bit. These are the only form of locked (tsb) entries we support and we need to conserve bits where possible. Implement pmap_copy_page and pmap_is_modified and friends. Detect mappings that are being being upgraded from read-only to read-write due to copy-on-write and update the write bit appropriately. Make trap_mmu_fault do the right thing for protection faults, which is necessary to implement copy on write correctly. Also handle a bunch more userland trap types and add ktr traces.
* Implement signals.jake2001-09-035-59/+278
|
* Move %ver definitions from pstate.h to ver.h. Add definitions for normaljake2001-09-032-26/+67
| | | | kernel pstate values, which include a memory store order override.
* Add simple macros for tracing in assembler files. There are quitejake2001-09-031-0/+87
| | | | | a few places where we cannot even call a function, and these have proven to be very useful debugging tools for such situations.
* Use the correct copyrights. Note where most of this came from.jake2001-09-039-58/+135
| | | | Requested by: obrien
* Bump UPAGES to 4. The pcb can be rather large.jake2001-09-031-1/+1
|
* mtx_savecrit is a pil level, not a pstate value, thus mtx_intr_enablejake2001-09-031-1/+1
| | | | was not doing its thing.
* Add a flushw() macro.jake2001-09-031-0/+4
|
* Add atomic_load and store functions without membars, fwiw.jake2001-09-031-5/+24
|
* The definition for ASI_IMMU_TAG_TARGET_REG was wrong. Sort.jake2001-09-031-12/+13
|
* + Blah, there was nothing wrong in rev 1.1 talking about the i386/NOTES.obrien2001-09-021-4/+11
| | | | | | I should have diff'ed the header with the Alpha GENERIC. + fix style nit + turn on NO_MODULES for now.
* Match the style of very other platform we have.obrien2001-09-021-7/+13
|
* Converge with i386/alpha/etc pmap.c for pmap_new_proc/pmap_dispose_proc().peter2001-08-311-16/+14
|
* Remove the MPSAFE keyword from the parser for syscalls.master.dillon2001-08-301-12/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead introduce the [M] prefix to existing keywords. e.g. MSTD is the MP SAFE version of STD. This is prepatory for a massive Giant lock pushdown. The old MPSAFE keyword made syscalls.master too messy. Begin comments MP-Safe procedures with the comment: /* * MPSAFE */ This comments means that the procedure may be called without Giant held (The procedure itself may still need to obtain Giant temporarily to do its thing). sv_prepsyscall() is now MP SAFE and assumed to be MP SAFE sv_transtrap() is now MP SAFE and assumed to be MP SAFE ktrsyscall() and ktrsysret() are now MP SAFE (Giant Pushdown) trapsignal() is now MP SAFE (Giant Pushdown) Places which used to do the if (mtx_owned(&Giant)) mtx_unlock(&Giant) test in syscall[2]() in */*/trap.c now do not. Instead they explicitly unlock Giant if they previously obtained it, and then assert that it is no longer held to catch broken system calls. Rebuild syscall tables.
* o Remove some GCCisms in src/powerpc/include/endian.h.mike2001-08-302-8/+12
| | | | | | | | | | | | | | | | | | | | o Unify <machine/endian.h>'s across all architectures. o Make bswapXX() functions use a different spelling of u_int16_t and friends to reduce namespace pollution. The bswapXX() functions don't actually exist, but we'll probably import these at some point. Atleast one driver (if_de) depends on bswapXX() for big endian cases. o Deprecate byteorder(3) prototypes from <sys/types.h>, these are now prototyped indirectly in <arpa/inet.h>. o Deprecate in_addr_t and in_port_t typedefs in <sys/types.h>, these are now typedef'd in <arpa/inet.h>. o Change byteorder(3) prototypes to use standards compliant uint32_t (spelled __uint32_t to reduce namespace pollution). o Document new preferred headers and standards compliance. Discussed with: bde PR: 29946 Reviewed by: bmilekic
* Use register g6 to point to a small stack for svaing alternate globalsjake2001-08-211-9/+40
| | | | | | | | | during trap handlers. Implement ptrace_set_pc FWIW. Initialize the pcb window scratch area in setregs(), and setup user registers as specified by the SCD. Submitted by: tmm
* Handle the pcb window scratch area in cpu_fork.jake2001-08-211-20/+36
| | | | | | Implement cpu_exit. Submitted by: tmm
* Save and restore %fprs and %y, which are unused by kernel code, butjake2001-08-212-24/+70
| | | | | | | may be used by 32bit userland code. Implement cpu_throw(). Submitted by: tmm
* Disable interrupts when calling openfirmware.jake2001-08-212-14/+26
|
* Rename fp_init_pcb to fp_init_proc. Set the FEF bit in fprs register;jake2001-08-202-5/+19
| | | | | | according the SCD it should be set if no user trap handler in set. Submitted by: tmm
* Add definitions for new assembler code.jake2001-08-201-0/+31
|
* Catch up with new trap entry point names.jake2001-08-201-23/+3
|
* Add variables needed by hardware watchpoint support.jake2001-08-202-0/+12
| | | | Submitted by: tmm
* Add code for supporting hardware watch points.jake2001-08-202-0/+255
| | | | Submitted by: tmm
* Add a system call trap type and syscall() call request handler.jake2001-08-202-2/+228
| | | | | | Also add support for hardware watch point traps. Submitted by: tmm
* Add support for splitting the register windows on entry to thejake2001-08-204-399/+1111
| | | | | | | | | 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
* db_expr_t is signed.jake2001-08-201-1/+1
|
* Add definitions for bits in condition code register and the load storejake2001-08-204-13/+164
| | | | | | unit control registers. Move tstate definitions to their own file. Submitted by: tmm
* Add a definition for the load store unit control register.jake2001-08-201-0/+2
|
* Sync globals.h up with the other platforms. There is still some cruft inobrien2001-08-202-14/+15
| | | | | | | here, but now all the platforms have the same cruft. Consistantly spell the `struct globaldata *' "globalp". Reviewed by: peter
* Don't needlessly duplicate what's basically the same copyright.jake2001-08-181-26/+1
|
* Implement cpu_wait().jake2001-08-181-3/+26
|
* Increase the size of the phys_avail memory map. Implement pmap_dispose_proc.jake2001-08-181-9/+46
| | | | | Turn some more potentially import functions into nops so we can do stuff until they matter.
* Spell ta 1 correctly as ta %xcc, 1. Use %pil for critical enter/exitjake2001-08-181-13/+10
| | | | | instead of pstate.ie. Note that popc is not implemented in hardware on certain ultras, so we can't use it for inline ffs (suck).
* Gcc 3.0 requires a .register pseudo-op for certain global registers whenjake2001-08-181-0/+5
| | | | used in assembly language. Tell it to ignore the registers for now.
* style(9) and make consistent across platformsobrien2001-08-162-28/+58
|
OpenPOWER on IntegriCloud