Lines Matching refs:b
30 void init(struct prodcons * b) in init() argument
32 sem_init(&b->sem_write, 0, BUFFER_SIZE - 1); in init()
33 sem_init(&b->sem_read, 0, 0); in init()
34 b->readpos = 0; in init()
35 b->writepos = 0; in init()
40 void put(struct prodcons * b, int data) in put() argument
43 sem_wait(&b->sem_write); in put()
45 b->buffer[b->writepos] = data; in put()
46 b->writepos++; in put()
47 if (b->writepos >= BUFFER_SIZE) b->writepos = 0; in put()
49 sem_post(&b->sem_read); in put()
54 int get(struct prodcons * b) in get() argument
58 sem_wait(&b->sem_read); in get()
60 data = b->buffer[b->readpos]; in get()
61 b->readpos++; in get()
62 if (b->readpos >= BUFFER_SIZE) b->readpos = 0; in get()
64 sem_post(&b->sem_write); in get()