summaryrefslogtreecommitdiff
path: root/proc.h
diff options
context:
space:
mode:
authorFrans Kaashoek <[email protected]>2017-08-07 14:35:05 -0400
committerFrans Kaashoek <[email protected]>2017-08-07 14:35:05 -0400
commit61cb32aa9bc457a6b39c5055cbf7fdd718dab7c2 (patch)
tree74f1a818d7722264d8a0fe825760d01ea7a83a9a /proc.h
parent5cbccef811ce0347370723c0b931e108c306279e (diff)
parentc9fa90f7e514f27fa1ac071cd9795f3830ab6a1b (diff)
downloadxv6-labs-61cb32aa9bc457a6b39c5055cbf7fdd718dab7c2.tar.gz
xv6-labs-61cb32aa9bc457a6b39c5055cbf7fdd718dab7c2.tar.bz2
xv6-labs-61cb32aa9bc457a6b39c5055cbf7fdd718dab7c2.zip
Merge branch 'nogs'
Diffstat (limited to 'proc.h')
-rw-r--r--proc.h16
1 files changed, 1 insertions, 15 deletions
diff --git a/proc.h b/proc.h
index 7352805..1647114 100644
--- a/proc.h
+++ b/proc.h
@@ -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),