Mercurial > hg > aim92
comparison stitch/buffer.h @ 0:5242703e91d3 tip
Initial checkin for AIM92 aimR8.2 (last updated May 1997).
author | tomwalters |
---|---|
date | Fri, 20 May 2011 15:19:45 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:5242703e91d3 |
---|---|
1 /* | |
2 | |
3 buffer.h | |
4 ======== | |
5 | |
6 simple generic buffer abstraction. | |
7 | |
8 */ | |
9 | |
10 #define DeleteBuffer( _buffer ) ( FreeBuffer( _buffer ), _buffer = 0 ) | |
11 | |
12 #define BufferSize( _buffer ) ( ( _buffer )->size ) | |
13 #define BufferPointer( _buffer ) ( ( _buffer )->addr ) | |
14 #define SetBufferSize( _buffer, _size ) ( ( _buffer )->size = _size ) | |
15 #define SetBufferPointer( _buffer, _addr ) ( ( _buffer )->addr = _addr ) | |
16 #define SizedBufferPointer( _buffer, _size ) ( BufferPointer( ( ( _size ) > BufferSize( _buffer ) ) ? ResizedBuffer( _buffer, _size ) : _buffer ) ) | |
17 | |
18 typedef struct _buffer *Buffer ; | |
19 | |
20 | |
21 struct _buffer { Pointer addr ; unsigned size, refs ; } ; | |
22 | |
23 extern Buffer NewBuffer( /* char where[] */ ) ; | |
24 extern Buffer SharedBuffer( /* Buffer buffer */ ) ; | |
25 extern Buffer ResizedBuffer( /* Buffer buffer, unsigned size */ ) ; | |
26 extern void FreeBuffer( /* Buffer buffer */ ) ; |