aboutsummaryrefslogtreecommitdiff
path: root/sys/alpha/include/pcb.h
Commit message (Collapse)AuthorAgeFilesLines
* First pass at removing Alpha kernel support.John Baldwin2006-05-111-65/+0
| | | | Notes: svn path=/head/; revision=158458
* Begin all license/copyright comments with /*- or #-Warner Losh2005-01-051-1/+1
| | | | Notes: svn path=/head/; revision=139727
* Implement makectx(). The makectx() function is used by KDB to createMarcel Moolenaar2004-07-101-0/+1
| | | | | | | | | | | | a PCB from a trapframe for purposes of unwinding the stack. The PCB is used as the thread context and all but the thread that entered the debugger has a valid PCB. This function can also be used to create a context for the threads running on the CPUs that have been stopped when the debugger got entered. This however is not done at the time of this commit. Notes: svn path=/head/; revision=131905
* Cleanup <machine/cpu.h> by moving MD prototypes to <machine/md_var.h>Marcel Moolenaar2003-08-171-0/+4
| | | | | | | | | | | | | | | | | | like we have on other platforms. Move savectx() to <machine/pcb.h>. A lot of files got these MD prototypes through the indirect inclusion of <machine/cpu.h> and now need to include <machine/md_var.h>. The number of which is unexpectedly large... osf1_misc.c especially is tricky because szsigcode is redefined in one of the osf1 header files. Reordering of the include files was needed. linprocfs.c now needs an explicit extern declaration. Tested with: LINT Notes: svn path=/head/; revision=119008
* The a.out md_coredump stuff isn't referenced anywhere anymore, andPeter Wemm2002-10-151-10/+0
| | | | | | | hasn't been filled in for ages.. Nuked. Notes: svn path=/head/; revision=105138
* Overhaul the per-CPU support a bit:John Baldwin2001-12-111-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - The MI portions of struct globaldata have been consolidated into a MI struct pcpu. The MD per-CPU data are specified via a macro defined in machine/pcpu.h. A macro was chosen over a struct mdpcpu so that the interface would be cleaner (PCPU_GET(my_md_field) vs. PCPU_GET(md.md_my_md_field)). - All references to globaldata are changed to pcpu instead. In a UP kernel, this data was stored as global variables which is where the original name came from. In an SMP world this data is per-CPU and ideally private to each CPU outside of the context of debuggers. This also included combining machine/globaldata.h and machine/globals.h into machine/pcpu.h. - The pointer to the thread using the FPU on i386 was renamed from npxthread to fpcurthread to be identical with other architectures. - Make the show pcpu ddb command MI with a MD callout to display MD fields. - The globaldata_register() function was renamed to pcpu_init() and now init's MI fields of a struct pcpu in addition to registering it with the internal array and list. - A pcpu_destroy() function was added to remove a struct pcpu from the internal array and list. Tested on: alpha, i386 Reviewed by: peter, jake Notes: svn path=/head/; revision=87702
* - Add appropriate #ifndef/#define/#endif to protect against multipleJohn Baldwin2001-04-171-5/+4
| | | | | | | | | inclusions. - Blow away all evidence of a static curpcb as curpcb is a per-CPU variable and this definition is now bogus. Notes: svn path=/head/; revision=75566
* - Don't call clear_resched() in userret(), instead, clear the resched flagJohn Baldwin2001-02-201-1/+0
| | | | | | | | | | | | | | | in mi_switch() just before calling cpu_switch() so that the first switch after a resched request will satisfy the request. - While I'm at it, move a few things into mi_switch() and out of cpu_switch(), specifically set the p_oncpu and p_lastcpu members of proc in mi_switch(), and handle the sched_lock state change across a context switch in mi_switch(). - Since cpu_switch() no longer handles the sched_lock state change, we have to setup an initial state for sched_lock in fork_exit() before we release it. Notes: svn path=/head/; revision=72746
* Major update to the way synchronization is done in the kernel. HighlightsJason Evans2000-09-071-1/+8
| | | | | | | | | | | | | | | | | | include: * Mutual exclusion is used instead of spl*(). See mutex(9). (Note: The alpha port is still in transition and currently uses both.) * Per-CPU idle processes. * Interrupts are run in their own separate kernel threads and can be preempted (i386 only). Partially contributed by: BSDi (BSD/OS) Submissions by (at least): cp, dfr, dillon, grog, jake, jhb, sheldonh Notes: svn path=/head/; revision=65557
* $Id$ -> $FreeBSD$Peter Wemm1999-08-281-1/+1
| | | | Notes: svn path=/head/; revision=50477
* Implement 'software completion' for floating point arithmetic. On theDoug Rabson1998-12-041-1/+2
| | | | | | | | | | | | | | | | | | | | | alpha, operations involving non-finite numbers or denormalised numbers or operations which should generate such numbers will cause an arithmetic exception. For programs which follow some strict code generation rules, the kernel trap handler can then 'complete' the operation by emulating the faulting instruction. To use software completion, a program must be compiled with the arguments '-mtrap-precision=i' and '-mfp-trap-mode=su' or '-mfp-trap-mode=sui'. Programs compiled in this way can use non-finite and denormalised numbers at the expense of slightly less efficient code generation of floating point instructions. Programs not compiled with these options will receive a SIGFPE signal when non-finite or denormalised numbers are used or generated. Reviewed by: John Polstra <jdp@polstra.com> Notes: svn path=/head/; revision=41499
* Import NetBSD/Alpha headers needed to get the FreeBSD userland to compileJohn Birrell1998-03-091-0/+65
(and even run). These files don't necessarily make sense for a FreeBSD/Alpha kernel build. That will come later and these files will be changed accordingly. Notes: svn path=/cvs2svn/branches/JB/; revision=34368