summaryrefslogtreecommitdiff
path: root/defs.h
diff options
context:
space:
mode:
authorRobert Morris <[email protected]>2019-06-05 14:05:46 -0400
committerRobert Morris <[email protected]>2019-06-05 14:05:46 -0400
commit31136437684b5987ef46f4c6947940cf96de75b3 (patch)
tree3c89b1f0e12bbddbf307259326ecb5f763ba6e09 /defs.h
parentf1a727b971a59bab6025b4c4111342c27356ca40 (diff)
downloadxv6-labs-31136437684b5987ef46f4c6947940cf96de75b3.tar.gz
xv6-labs-31136437684b5987ef46f4c6947940cf96de75b3.tar.bz2
xv6-labs-31136437684b5987ef46f4c6947940cf96de75b3.zip
spinlocks using gcc intrinsics
push_off() / pop_off() set up per-hart plic stuff so all harts get device interrupts
Diffstat (limited to 'defs.h')
-rw-r--r--defs.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/defs.h b/defs.h
index 0e8cb52..2353e4a 100644
--- a/defs.h
+++ b/defs.h
@@ -130,12 +130,11 @@ void swtch(struct context*, struct context*);
// spinlock.c
void acquire(struct spinlock*);
-void getcallerpcs(void*, uint64*);
int holding(struct spinlock*);
void initlock(struct spinlock*, char*);
void release(struct spinlock*);
-void pushcli(void);
-void popcli(void);
+void push_off(void);
+void pop_off(void);
// sleeplock.c
void acquiresleep(struct sleeplock*);
@@ -168,6 +167,7 @@ void timerinit(void);
// trap.c
extern uint ticks;
void trapinit(void);
+void trapinithart(void);
extern struct spinlock tickslock;
void usertrapret(void);
@@ -179,6 +179,7 @@ int uartgetc(void);
// vm.c
void kvminit(void);
+void kvminithart(void);
pagetable_t uvmcreate(void);
void uvminit(pagetable_t, char *, uint);
uint64 uvmalloc(pagetable_t, uint64, uint64);
@@ -194,6 +195,7 @@ int copyinstr(pagetable_t pagetable, char *dst, uint64 srcva, uint64
// plic.c
void plicinit(void);
+void plicinithart(void);
uint64 plic_pending(void);
int plic_claim(void);
void plic_complete(int);