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