| typedef struct Muxrpc Muxrpc; |
| typedef struct Muxqueue Muxqueue; |
| uint mintag; /* to be filled by client */ |
| int (*send)(Mux*, void*); |
| int (*gettag)(Mux*, void*); |
| int (*settag)(Mux*, void*, uint); |
| void *aux; /* for private use by client */ |
| QLock lk; /* must be first for muxinit */ |
| void* muxrpc(Mux*, void*); |
| int _muxsend(Mux*, void*); |
| void _muxsendproc(void*); |
| void _muxrecvproc(void*); |
| Muxqueue *_muxqalloc(void); |
| int _muxqsend(Muxqueue*, void*); |
| void *_muxqrecv(Muxqueue*); |
| void _muxqhangup(Muxqueue*); |
| void *_muxnbqrecv(Muxqueue*); |