summaryrefslogtreecommitdiff
path: root/defs.h
diff options
context:
space:
mode:
authorFrans Kaashoek <[email protected]>2011-08-26 10:08:29 -0400
committerFrans Kaashoek <[email protected]>2011-08-26 10:08:29 -0400
commit3a5fa7ed9020eaf8ab843a16d26db7393b2ec072 (patch)
treebfa4ad4ae03d7d21796bacaa7eab8e3d3e4ab365 /defs.h
parent8a9b6dbd4468f6312f1d07226a623879f970bd4b (diff)
downloadxv6-labs-3a5fa7ed9020eaf8ab843a16d26db7393b2ec072.tar.gz
xv6-labs-3a5fa7ed9020eaf8ab843a16d26db7393b2ec072.tar.bz2
xv6-labs-3a5fa7ed9020eaf8ab843a16d26db7393b2ec072.zip
Introduce and use sleeplocks instead of BUSY flags
Remove I_BUSY, B_BUSY, and intrans defs and usages One spinlock per buf to avoid ugly loop in bget fix race in filewrite (don't update f->off after releasing lock)
Diffstat (limited to 'defs.h')
-rw-r--r--defs.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/defs.h b/defs.h
index 19d559b..8231159 100644
--- a/defs.h
+++ b/defs.h
@@ -5,6 +5,7 @@ struct inode;
struct pipe;
struct proc;
struct spinlock;
+struct sleeplock;
struct stat;
struct superblock;
@@ -129,6 +130,10 @@ void initlock(struct spinlock*, char*);
void release(struct spinlock*);
void pushcli(void);
void popcli(void);
+void initsleeplock(struct sleeplock*);
+void acquire_sleeplock(struct sleeplock*,struct spinlock*);
+void release_sleeplock(struct sleeplock*);
+int acquired_sleeplock(struct sleeplock*);
// string.c
int memcmp(const void*, const void*, uint);