CS350 COS
COS
Loading...
Searching...
No Matches
waitchannel.h
Go to the documentation of this file.
1
2#ifndef __WAITCHANNEL_H__
3#define __WAITCHANNEL_H__
4
5#include <sys/cdefs.h>
6#include <sys/queue.h>
7
8#define WAITCHANNEL_NAMELEN 32
9
10typedef struct WaitChannel
11{
15 TAILQ_HEAD(WaitQueue, Thread) chanQueue;
17
19void WaitChannel_Init(WaitChannel *wc, const char *name);
21void WaitChannel_Lock(WaitChannel *wc) __LOCK_EX(wc->lock);
22void WaitChannel_Sleep(WaitChannel *wc) __UNLOCK_EX(wc->lock);
25
26#endif /* __WAITCHANNEL_H__ */
27
#define __LOCK_EX(_x)
Definition: cdefs.h:33
#define __UNLOCK_EX(_x)
Definition: cdefs.h:35
Definition: thread.h:31
TAILQ_HEAD(WaitQueue, Thread) chanQueue
LIST_ENTRY(WaitChannel) chanList
Spinlock lock
Definition: waitchannel.h:12
char name[WAITCHANNEL_NAMELEN]
Definition: waitchannel.h:13
void WaitChannel_Wake(WaitChannel *wc)
Definition: waitchannel.c:91
#define WAITCHANNEL_NAMELEN
Definition: waitchannel.h:8
void WaitChannel_EarlyInit()
void WaitChannel_Init(WaitChannel *wc, const char *name)
Definition: waitchannel.c:28
void WaitChannel_Lock(WaitChannel *wc) __LOCK_EX(wc -> lock)
Definition: waitchannel.c:57
void WaitChannel_WakeAll(WaitChannel *wc)
Definition: waitchannel.c:116
void WaitChannel_Destroy(WaitChannel *wc)
Definition: waitchannel.c:40
void WaitChannel_Sleep(WaitChannel *wc) __UNLOCK_EX(wc -> lock)
Definition: waitchannel.c:71