diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/sbi/sbi_error.h | 1 | ||||
| -rw-r--r-- | include/sbi/sbi_fifo.h | 18 |
2 files changed, 12 insertions, 7 deletions
diff --git a/include/sbi/sbi_error.h b/include/sbi/sbi_error.h index 68076e73..300ee743 100644 --- a/include/sbi/sbi_error.h +++ b/include/sbi/sbi_error.h @@ -21,5 +21,6 @@ #define SBI_ETIMEDOUT -8 #define SBI_EIO -9 #define SBI_EILL -10 +#define SBI_ENOSPC -11 #endif diff --git a/include/sbi/sbi_fifo.h b/include/sbi/sbi_fifo.h index ba9769b6..1a595187 100644 --- a/include/sbi/sbi_fifo.h +++ b/include/sbi/sbi_fifo.h @@ -15,18 +15,22 @@ #include <sbi/sbi_types.h> struct sbi_fifo { - int head; - int tail; - spinlock_t qlock; - unsigned long entrysize; - unsigned long num_entries; + /* Static members of struct */ void *queue; + unsigned long entry_size; + unsigned long num_entries; + /* Dynamic members of struct protected by lock */ + spinlock_t qlock; + unsigned long avail; + unsigned long head; + unsigned long tail; }; int sbi_fifo_dequeue(struct sbi_fifo *fifo, void *data); int sbi_fifo_enqueue(struct sbi_fifo *fifo, void *data); -void sbi_fifo_init(struct sbi_fifo *fifo, unsigned long entries, - unsigned long entrysize); +void sbi_fifo_init(struct sbi_fifo *fifo, void *queue_mem, + unsigned long entries, unsigned long entry_size); bool sbi_fifo_is_empty(struct sbi_fifo *fifo); bool sbi_fifo_is_full(struct sbi_fifo *fifo); + #endif |
