summaryrefslogtreecommitdiff
path: root/proc.h
diff options
context:
space:
mode:
authorRobert Morris <[email protected]>2010-09-13 15:34:44 -0400
committerRobert Morris <[email protected]>2010-09-13 15:34:44 -0400
commitfaad047ab22cbe989c208bff5ecb42608ecb8d7b (patch)
treeb47cd8948dcbc5c86117982245b53f4e9c95dc30 /proc.h
parent124fe7e457c0dc9b671c7ffccb56004eb61da4f0 (diff)
downloadxv6-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.h14
1 files changed, 7 insertions, 7 deletions
diff --git a/proc.h b/proc.h
index 4a80a28..7ffaffb 100644
--- a/proc.h
+++ b/proc.h
@@ -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