Go to the source code of this file.
◆ INTQ_BUFSIZE
◆ intq_empty()
| bool intq_empty |
( |
const struct intq * |
q | ) |
|
19 {
22}
#define ASSERT(CONDITION)
Definition: debug.h:30
@ INTR_OFF
Definition: interrupt.h:9
enum intr_level intr_get_level(void)
Definition: interrupt.c:115
int head
Definition: intq.h:32
int tail
Definition: intq.h:33
◆ intq_full()
26 {
29}
static int next(int pos)
Definition: intq.c:74
◆ intq_getc()
36 {
38
45 }
46
50 return byte;
51}
bool intr_context(void)
Definition: interrupt.c:258
static void wait(struct intq *q, struct thread **waiter)
bool intq_empty(const struct intq *q)
Definition: intq.c:19
static void signal(struct intq *q, struct thread **waiter)
unsigned char uint8_t
Definition: stdint.h:20
struct lock lock
Definition: intq.h:26
struct thread * not_empty
Definition: intq.h:28
uint8_t buf[INTQ_BUFSIZE]
Definition: intq.h:31
struct thread * not_full
Definition: intq.h:27
void lock_release(struct lock *)
Definition: synch.c:243
void lock_acquire(struct lock *)
Definition: synch.c:202
◆ intq_init()
| void intq_init |
( |
struct intq * |
q | ) |
|
11 {
15}
#define NULL
Definition: stddef.h:4
void lock_init(struct lock *)
Definition: synch.c:186
◆ intq_putc()
58 {
65 }
66
70}
bool intq_full(const struct intq *q)
Definition: intq.c:26