summaryrefslogtreecommitdiff
path: root/sys/src/libthread/threadimpl.h
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@localhost>2011-08-22 03:03:27 +0200
committercinap_lenrek <cinap_lenrek@localhost>2011-08-22 03:03:27 +0200
commit08c39320a46ad94fba9ba3310444f136dd9258f5 (patch)
tree4b98ada862770a8734f0c72240f7bab4a28c8d31 /sys/src/libthread/threadimpl.h
parent9a90e50142c792fdc06dc4faa8a582f441124aad (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.h24
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*);