66 |
}; |
}; |
67 |
|
|
68 |
/* Create a new buffer structure with SIZE, returning the pointer. */ |
/* Create a new buffer structure with SIZE, returning the pointer. */ |
69 |
extern inline struct buffer * |
static inline struct buffer * |
70 |
create_buffer (size_t size) |
create_buffer (size_t size) |
71 |
{ |
{ |
72 |
struct buffer *new = malloc (sizeof (struct buffer) + size); |
struct buffer *new = malloc (sizeof (struct buffer) + size); |
80 |
} |
} |
81 |
|
|
82 |
/* Return the size of B. */ |
/* Return the size of B. */ |
83 |
extern inline size_t |
static inline size_t |
84 |
buffer_size (struct buffer *b) |
buffer_size (struct buffer *b) |
85 |
{ |
{ |
86 |
return b->tail - b->head; |
return b->tail - b->head; |
87 |
} |
} |
88 |
|
|
89 |
/* Return how much characters can be read from B. */ |
/* Return how much characters can be read from B. */ |
90 |
extern inline size_t |
static inline size_t |
91 |
buffer_readable (struct buffer *b) |
buffer_readable (struct buffer *b) |
92 |
{ |
{ |
93 |
return buffer_size (b); |
return buffer_size (b); |
94 |
} |
} |
95 |
|
|
96 |
/* Return how much characters can be written to B. */ |
/* Return how much characters can be written to B. */ |
97 |
extern inline size_t |
static inline size_t |
98 |
buffer_writable (struct buffer *b) |
buffer_writable (struct buffer *b) |
99 |
{ |
{ |
100 |
return b->size - buffer_size (b); |
return b->size - buffer_size (b); |
101 |
} |
} |
102 |
|
|
103 |
/* Flush B. */ |
/* Flush B. */ |
104 |
extern inline void |
static inline void |
105 |
clear_buffer (struct buffer *b) |
clear_buffer (struct buffer *b) |
106 |
{ |
{ |
107 |
if (b == 0) |
if (b == 0) |
111 |
} |
} |
112 |
|
|
113 |
/* Read up to LEN bytes from B to DATA, returning the amount actually read. */ |
/* Read up to LEN bytes from B to DATA, returning the amount actually read. */ |
114 |
extern inline size_t |
static inline size_t |
115 |
buffer_read (struct buffer *b, void *data, size_t len) |
buffer_read (struct buffer *b, void *data, size_t len) |
116 |
{ |
{ |
117 |
size_t max = buffer_size (b); |
size_t max = buffer_size (b); |
136 |
} |
} |
137 |
|
|
138 |
/* Write LEN bytes from DATA to B, returning the amount actually written. */ |
/* Write LEN bytes from DATA to B, returning the amount actually written. */ |
139 |
extern inline size_t |
static inline size_t |
140 |
buffer_write (struct buffer *b, void *data, size_t len) |
buffer_write (struct buffer *b, void *data, size_t len) |
141 |
{ |
{ |
142 |
size_t size = buffer_writable (b); |
size_t size = buffer_writable (b); |