Update TODO list
[trut64.git] / avr / msgbuffer.c
blob837a0e21369f8d582343edaa52dd1f1db06fddfa
1 /*
2 * Copyright (C) 2007 Anton Blad
3 * Copyright (C) 2007 Fredrik Kuivinen
4 * Copyright (C) 2007 Jakob Rosén
6 * This file is licensed under GPL v2.
7 */
9 #include "msgbuffer.h"
11 uint8_t msgbuffer[MSGBUFFER_CAPACITY];
12 uint8_t msgbuffer_start = 0;
13 uint8_t msgbuffer_size = 0;
15 void msgbuffer_addbyte(uint8_t a)
17 uint8_t idx;
19 if(msgbuffer_size < MSGBUFFER_CAPACITY)
21 idx = msgbuffer_start+msgbuffer_size;
22 if(idx >= MSGBUFFER_CAPACITY)
23 idx -= MSGBUFFER_CAPACITY;
25 msgbuffer[idx] = a;
26 msgbuffer_size++;
30 uint8_t msgbuffer_getbyte()
32 uint8_t a = 0xff;
34 if(msgbuffer_size > 0)
36 a = msgbuffer[msgbuffer_start];
38 msgbuffer_size--;
39 msgbuffer_start++;
40 if(msgbuffer_start >= MSGBUFFER_CAPACITY)
41 msgbuffer_start = 0;
44 return a;