History

made shit work

Matthew Veety committed 10 years ago

Commit f42f2a91 parent 079f1c42 files · +11 −10Browse files

Unified · Split

2 files
  1. fd.c +2 −2
  2. openclose.c +9 −8
fd.c+2−2
@@ -7,7 +7,7 @@ int fdclose(ReadWriter*); · 6 unmodified lines
7long fdread(ReadWriter*, void*, long, vlong);7long fdread(ReadWriter*, void*, long, vlong);
8long fdwrite(ReadWriter*, void*, long, vlong);8long fdwrite(ReadWriter*, void*, long, vlong);
9 9
10ReadWriter fdrdwr {10ReadWriter fdrdwr = {
11 .open = fdopen,11 .open = fdopen,
12 .close = fdclose,12 .close = fdclose,
13 .pread = fdread,13 .pread = fdread,
@@ -54,6 +54,6 @@ fd2gio(int fd) · 40 unmodified lines
54{54{
55 void *x = malloc(sizeof(int));55 void *x = malloc(sizeof(int));
56 memcpy(x, &fd, sizeof(int));56 memcpy(x, &fd, sizeof(int));
57 return gopen(fdrdwr, x);57 return gopen(&fdrdwr, x);
58}58}
59 59
openclose.c+9−8
@@ -21,12 +21,13 @@ getnext(void) · 20 unmodified lines
21ReadWriter*21ReadWriter*
22getrdstruct(int fd)22getrdstruct(int fd)
23{23{
24 rlock(giolock);24 rlock(&giolock);
25 ReadWriter *rval;25 ReadWriter *rval;
26 if(gio_filedes_st[fd] != 1)26 if(gio_filedes_st[fd] != 1)
27 rval = nil;27 rval = nil;
28 rval = gio_filedes[fd];28 rval = gio_filedes[fd];
29 runlock(giolock);29 runlock(&giolock);
30 return rval;
30}31}
31 32
32int33int
@@ -35,9 +36,9 @@ gopen(ReadWriter* rd, void *aux) · 2 unmodified lines
35 int pfd;36 int pfd;
36 ReadWriter *buf;37 ReadWriter *buf;
37 38
38 wlock(giolock);39 wlock(&giolock);
39 if(pfd == -1){40 if(pfd == -1){
40 wunlock(giolock);41 wunlock(&giolock);
41 return -1;42 return -1;
42 }43 }
43 buf = malloc(sizeof(ReadWriter));44 buf = malloc(sizeof(ReadWriter));
@@ -50,13 +51,13 @@ gopen(ReadWriter* rd, void *aux) · 6 unmodified lines
50 if((buf->open(buf)) != 0){51 if((buf->open(buf)) != 0){
51 buf->close(buf);52 buf->close(buf);
52 free(buf);53 free(buf);
53 wunlock(giolock);54 wunlock(&giolock);
54 return -1;55 return -1;
55 }56 }
56 }57 }
57 gio_filedes[pfd] = buf;58 gio_filedes[pfd] = buf;
58 gio_filedes_st[pfd] = 1;59 gio_filedes_st[pfd] = 1;
59 wunlock(giolock);60 wunlock(&giolock);
60 return pfd;61 return pfd;
61}62}
62 63
@@ -68,14 +69,14 @@ gclose(int fd) · 5 unmodified lines
68 69
69 if(gio_filedes_st[fd] == 0)70 if(gio_filedes_st[fd] == 0)
70 return -1;71 return -1;
71 wlock(giolock);72 wlock(&giolock);
72 bf = gio_filedes[fd];73 bf = gio_filedes[fd];
73 if(bf->close != nil)74 if(bf->close != nil)
74 rval = bf->close(bf);75 rval = bf->close(bf);
75 free(bf);76 free(bf);
76 gio_filedes_st[fd] = 0;77 gio_filedes_st[fd] = 0;
77 gio_filedes[fd] = nil;78 gio_filedes[fd] = nil;
78 wunlock(giolock);79 wunlock(&giolock);
79 return rval;80 return rval;
80}81}
81 82