summaryrefslogtreecommitdiff
path: root/kernel/fifo.h
blob: a574a25f317956132aa06686323271044bf5e02c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// SIMPLE FIFO DRIVER

#ifndef FIFO_H
#define FIFO_H

#include <stdint.h>
#include <stdbool.h>

typedef struct fifo_struct
{
    bool	(*put)(struct fifo_stuct*,uint8_t);
    uint8_t	(*get)(struct fifo_struct*);	    
    bool	(*has)(struct fifo_struct*);

    void *data; // opaque! can be a vt52 or a ringbuffer..

}fifo;

volatile bool fifo_put(fifo*,uint8_t);
volatile uint8_t fifo_get(fifo*);
volatile bool fifo_has(fifo*);

#endif