diff options
author | cinap_lenrek <cinap_lenrek@localhost> | 2011-08-22 03:03:27 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@localhost> | 2011-08-22 03:03:27 +0200 |
commit | 08c39320a46ad94fba9ba3310444f136dd9258f5 (patch) | |
tree | 4b98ada862770a8734f0c72240f7bab4a28c8d31 /sys/src/libthread/threadimpl.h | |
parent | 9a90e50142c792fdc06dc4faa8a582f441124aad (diff) |
libthread: reimplemented i/o procs using new interrupt ctl message
Diffstat (limited to 'sys/src/libthread/threadimpl.h')
-rw-r--r-- | sys/src/libthread/threadimpl.h | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/sys/src/libthread/threadimpl.h b/sys/src/libthread/threadimpl.h index c5f7c0f2e..c34c61901 100644 --- a/sys/src/libthread/threadimpl.h +++ b/sys/src/libthread/threadimpl.h @@ -25,6 +25,7 @@ typedef struct Tqueue Tqueue; typedef struct Thread Thread; typedef struct Execargs Execargs; typedef struct Proc Proc; +typedef struct Iocall Iocall; /* must match list in sched.c */ typedef enum @@ -135,7 +136,8 @@ struct Proc char threadint; /* tag for threadexitsall() */ }; -struct Pqueue { /* Proc queue */ +struct Pqueue /* Proc queue */ +{ Lock lock; Proc *head; Proc **tail; @@ -143,14 +145,18 @@ struct Pqueue { /* Proc queue */ struct Ioproc { - int tid; - Channel *c, *creply; - int inuse; - long (*op)(va_list*); - va_list arg; - long ret; - char err[ERRMAX]; - Ioproc *next; + QLock; + int intr; + int ctl; + Channel *c, *creply; +}; + +struct Iocall +{ + long (*op)(va_list*); + va_list arg; + long ret; + char err[ERRMAX]; }; void _freeproc(Proc*); |