-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathbuffer.h
More file actions
34 lines (28 loc) · 691 Bytes
/
buffer.h
File metadata and controls
34 lines (28 loc) · 691 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#ifndef BUFFER_H
#define BUFFER_H
#define TAM_BUFFER 1000
#include<semaphore.h>
typedef struct buffer buffer;
typedef struct buffer_element buffer_element;
struct buffer_element
{
char c;
long pos;
};
struct buffer
{
buffer_element buff[TAM_BUFFER];
buffer_element *head, *tail;
sem_t empty;
sem_t full;
sem_t mutex_head;
sem_t mutex_tail;
buffer_element (*get)(struct buffer *b);
void (*insert)(struct buffer *b, buffer_element c);
};
buffer_element getElemFromBuffer(buffer *b);
void insertElemInBuffer(buffer *b, buffer_element elem);
buffer_element *incrementa(buffer *b, buffer_element *elem);
void initBuffer(buffer *b);
void destructBuffer(buffer *b);
#endif