summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fd.c16
-rw-r--r--fd.h2
2 files changed, 8 insertions, 10 deletions
diff --git a/fd.c b/fd.c
index 68f75e3..ce2931b 100644
--- a/fd.c
+++ b/fd.c
@@ -37,7 +37,7 @@ fd_alloc()
for(i = 0; i < NFD; i++){
if(fds[i].type == FD_CLOSED){
fds[i].type = FD_NONE;
- fds[i].count = 1;
+ fds[i].ref = 1;
release(&fd_table_lock);
return fds + i;
}
@@ -80,18 +80,16 @@ fd_close(struct fd *fd)
{
acquire(&fd_table_lock);
- if(fd->count < 1 || fd->type == FD_CLOSED)
+ if(fd->ref < 1 || fd->type == FD_CLOSED)
panic("fd_close");
- fd->count -= 1;
-
- if(fd->count == 0){
+ if(--fd->ref == 0){
if(fd->type == FD_PIPE){
pipe_close(fd->pipe, fd->writeable);
} else {
panic("fd_close");
}
- fd->count = 0;
+ fd->ref = 0;
fd->type = FD_CLOSED;
}
@@ -102,8 +100,8 @@ void
fd_incref(struct fd *fd)
{
acquire(&fd_table_lock);
- if(fd->count < 1 || fd->type == FD_CLOSED)
- panic("fd_reference");
- fd->count++;
+ if(fd->ref < 1 || fd->type == FD_CLOSED)
+ panic("fd_incref");
+ fd->ref++;
release(&fd_table_lock);
}
diff --git a/fd.h b/fd.h
index c8d0c34..aa03af9 100644
--- a/fd.h
+++ b/fd.h
@@ -1,6 +1,6 @@
struct fd {
enum { FD_CLOSED, FD_NONE, FD_PIPE } type;
- int count; // reference count
+ int ref; // reference count
char readable;
char writeable;
struct pipe *pipe;