EE445M RTOS
Taken at the University of Texas Spring 2015
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
buffer.h
Go to the documentation of this file.
1
/* -*- mode: c; c-basic-offset: 4; -*- */
2
/* Created by Eric Crosson 2015-03-04 */
3
/* Revision history: Look in Git FGT */
4
#ifndef __BUFFER__
5
#define __BUFFER__
6
18
#define BUFFER_MAX_LENGTH 32
19
#define BUFFER_DEFAULT_DECREMENT_AMOUNT 1
20
22
#define buffer_init(buf) \
23
buffer_len(buf) = 0;
24
28
#define buffer_add(buf, elt) \
29
do { \
30
if(buffer_len(buf) + 1 <= BUFFER_MAX_LENGTH) { \
31
buf[buffer_len(buf)] = elt; \
32
++buffer_len(buf); \
33
} \
34
} while (false)
35
36
39
#define buffer_dec(buf) \
40
buffer_dec_(buf, BUFFER_DEFAULT_DECREMENT_AMOUNT)
41
47
#define buffer_dec_(buf, amount) \
48
do { \
49
if(buffer_len(buf) - amount >= 0) { \
50
buffer_len(buf) = buffer_len(buf) - amount; \
51
} \
52
} while (false)
53
55
#define buffer_last(buf) \
56
buf[buffer_len(buf)-1]
57
59
#define buffer_full(buf) \
60
(buf##_SIZE == BUFFER_MAX_LENGTH-1)
61
63
#define buffer_empty(buf) \
64
(buf##_SIZE == 0)
65
66
#define buffer_clear(buf) \
67
buffer_len(buf) = 0
68
70
#define buffer_null_terminate(buf) \
71
buf[buffer_len(buf)] = 0
72
74
#define buffer_len(buf) \
75
buf##_SIZE
76
77
#endif
78
79
/* End Doxygen group
80
* @}
81
*/
lib
libbuffer
buffer.h
Generated on Fri Mar 13 2015 21:18:37 for EE445M RTOS by
1.8.9.1