diff options
| -rw-r--r-- | fd.c | 16 | ||||
| -rw-r--r-- | fd.h | 2 | 
2 files changed, 8 insertions, 10 deletions
| @@ -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);  } @@ -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; | 
