diff options
author | Robert Morris <[email protected]> | 2019-06-05 14:05:46 -0400 |
---|---|---|
committer | Robert Morris <[email protected]> | 2019-06-05 14:05:46 -0400 |
commit | 31136437684b5987ef46f4c6947940cf96de75b3 (patch) | |
tree | 3c89b1f0e12bbddbf307259326ecb5f763ba6e09 /defs.h | |
parent | f1a727b971a59bab6025b4c4111342c27356ca40 (diff) | |
download | xv6-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.h | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -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); |