Project

General

Profile

Download (787 Bytes) Statistics
| Branch: | Tag: | Revision:
1
#ifndef _FIFO_H
2
#define _FIFO_H
3

    
4
#include <sys/types.h>
5

    
6
#define FIFO_SIZE	1024
7

    
8
struct fifo {
9
	uint16_t size;		/* actual FIFO size, can be smaller than 'data' */
10
	uint16_t producer;	/* index of producer */
11
	uint16_t consumer;	/* index of consumer */
12
	uint16_t watermark;
13
	uint8_t irq;
14
	uint8_t irq_en;
15
	uint8_t status;
16
	void (*callback)(struct fifo *fifo, uint8_t event, void *data);
17
	void *cb_data;
18
	uint8_t data[FIFO_SIZE];
19
};
20

    
21

    
22
extern int fifo_init(struct fifo *fifo, uint16_t size, 
23
		     void (*callback)(struct fifo *fifo, uint8_t event, void *data), void *cb_data);
24
extern uint16_t fifo_data_get(struct fifo *fifo, uint16_t len, uint8_t *data);
25
extern uint16_t fifo_data_put(struct fifo *fifo, uint16_t len, uint8_t *data);
26
extern int fifo_available(struct fifo *fifo);
27

    
28
#endif
(6-6/40)
Add picture from clipboard (Maximum size: 48.8 MB)