diff options
author | Robert Morris <[email protected]> | 2010-09-13 15:34:44 -0400 |
---|---|---|
committer | Robert Morris <[email protected]> | 2010-09-13 15:34:44 -0400 |
commit | faad047ab22cbe989c208bff5ecb42608ecb8d7b (patch) | |
tree | b47cd8948dcbc5c86117982245b53f4e9c95dc30 /proc.h | |
parent | 124fe7e457c0dc9b671c7ffccb56004eb61da4f0 (diff) | |
download | xv6-labs-faad047ab22cbe989c208bff5ecb42608ecb8d7b.tar.gz xv6-labs-faad047ab22cbe989c208bff5ecb42608ecb8d7b.tar.bz2 xv6-labs-faad047ab22cbe989c208bff5ecb42608ecb8d7b.zip |
change some comments, maybe more informative
delete most comments from bootother.S (since copy of bootasm.S)
ksegment() -> seginit()
move more stuff from main() to mainc()
Diffstat (limited to 'proc.h')
-rw-r--r-- | proc.h | 14 |
1 files changed, 7 insertions, 7 deletions
@@ -11,7 +11,7 @@ // Per-CPU state struct cpu { uchar id; // Local APIC ID; index into cpus[] below - struct context *scheduler; // Switch here to enter scheduler + struct context *scheduler; // swtch() here to enter scheduler struct taskstate ts; // Used by x86 to find stack for interrupt struct segdesc gdt[NSEGS]; // x86 global descriptor table volatile uint booted; // Has the CPU started? @@ -20,7 +20,7 @@ struct cpu { // Cpu-local storage variables; see below struct cpu *cpu; - struct proc *proc; + struct proc *proc; // The currently-running process. }; extern struct cpu cpus[NCPU]; @@ -29,13 +29,13 @@ 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. ksegment sets up the +// 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"); // This cpu. -extern struct proc *proc asm("%gs:4"); // Current proc on this cpu. +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. @@ -61,13 +61,13 @@ enum procstate { UNUSED, EMBRYO, SLEEPING, RUNNABLE, RUNNING, ZOMBIE }; // Per-process state struct proc { uint sz; // Size of process memory (bytes) - pde_t* pgdir; // Linear address of proc's pgdir + pde_t* pgdir; // Page table char *kstack; // Bottom of kernel stack for this process enum procstate state; // Process state volatile int pid; // Process ID struct proc *parent; // Parent process struct trapframe *tf; // Trap frame for current syscall - struct context *context; // Switch here to run process + struct context *context; // swtch() here to run process void *chan; // If non-zero, sleeping on chan int killed; // If non-zero, have been killed struct file *ofile[NOFILE]; // Open files |