int
fd_write(struct fd *fd, char *addr, int n)
{
- if(fd->writeable == 0)
+ if(fd->writable == 0)
return -1;
if(fd->type == FD_PIPE){
return pipe_write(fd->pipe, addr, n);
release(&fd_table_lock);
if(dummy.type == FD_PIPE){
- pipe_close(dummy.pipe, dummy.writeable);
+ pipe_close(dummy.pipe, dummy.writable);
} else if(dummy.type == FD_FILE){
idecref(dummy.ip);
} else {
enum { FD_CLOSED, FD_NONE, FD_PIPE, FD_FILE } type;
int ref; // reference count
char readable;
- char writeable;
+ char writable;
struct pipe *pipe;
struct inode *ip;
uint off;
if(len % PAGE)
panic("kfree");
- // XXX fill with junk to help debug
+ // Fill with junk to catch dangling refs.
for(i = 0; i < len; i++)
cp[i] = 1;
initlock(&p->lock, "pipe");
(*fd1)->type = FD_PIPE;
(*fd1)->readable = 1;
- (*fd1)->writeable = 0;
+ (*fd1)->writable = 0;
(*fd1)->pipe = p;
(*fd2)->type = FD_PIPE;
(*fd2)->readable = 0;
- (*fd2)->writeable = 1;
+ (*fd2)->writable = 1;
(*fd2)->pipe = p;
return 0;
oops:
}
void
-pipe_close(struct pipe *p, int writeable)
+pipe_close(struct pipe *p, int writable)
{
acquire(&p->lock);
- if(writeable){
+ if(writable){
p->writeopen = 0;
wakeup(&p->readp);
} else {
fd->type = FD_FILE;
if(arg1 & O_RDWR) {
fd->readable = 1;
- fd->writeable = 1;
+ fd->writable = 1;
} else if(arg1 & O_WRONLY) {
fd->readable = 0;
- fd->writeable = 1;
+ fd->writable = 1;
} else {
fd->readable = 1;
- fd->writeable = 0;
+ fd->writable = 0;
}
fd->ip = ip;
fd->off = 0;