diff options
Diffstat (limited to 'proc.h')
| -rw-r--r-- | proc.h | 16 | 
1 files changed, 1 insertions, 15 deletions
| @@ -7,26 +7,12 @@ struct cpu {    volatile uint started;       // Has the CPU started?    int ncli;                    // Depth of pushcli nesting.    int intena;                  // Were interrupts enabled before pushcli? - -  // Cpu-local storage variables; see below -  struct cpu *cpu; -  struct proc *proc;           // The currently-running process. +  struct proc *proc;           // The process running on this cpu or null  };  extern struct cpu cpus[NCPU];  extern int ncpu; -// Per-CPU variables, holding pointers to the -// current cpu and to the current process. -// The asm suffix tells gcc to use "%gs:0" to refer to cpu -// and "%gs:4" to refer to proc.  seginit sets up the -// %gs segment register so that %gs refers to the memory -// holding those two variables in the local cpu's struct cpu. -// This is similar to how thread-local variables are implemented -// in thread libraries such as Linux pthreads. -extern struct cpu *cpu asm("%gs:0");       // &cpus[cpunum()] -extern struct proc *proc asm("%gs:4");     // cpus[cpunum()].proc -  //PAGEBREAK: 17  // Saved registers for kernel context switches.  // Don't need to save all the segment registers (%cs, etc), | 
