annotate 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
rev   line source
tomwalters@0 1 /*
tomwalters@0 2
tomwalters@0 3 buffer.h
tomwalters@0 4 ========
tomwalters@0 5
tomwalters@0 6 simple generic buffer abstraction.
tomwalters@0 7
tomwalters@0 8 */
tomwalters@0 9
tomwalters@0 10 #define DeleteBuffer( _buffer ) ( FreeBuffer( _buffer ), _buffer = 0 )
tomwalters@0 11
tomwalters@0 12 #define BufferSize( _buffer ) ( ( _buffer )->size )
tomwalters@0 13 #define BufferPointer( _buffer ) ( ( _buffer )->addr )
tomwalters@0 14 #define SetBufferSize( _buffer, _size ) ( ( _buffer )->size = _size )
tomwalters@0 15 #define SetBufferPointer( _buffer, _addr ) ( ( _buffer )->addr = _addr )
tomwalters@0 16 #define SizedBufferPointer( _buffer, _size ) ( BufferPointer( ( ( _size ) > BufferSize( _buffer ) ) ? ResizedBuffer( _buffer, _size ) : _buffer ) )
tomwalters@0 17
tomwalters@0 18 typedef struct _buffer *Buffer ;
tomwalters@0 19
tomwalters@0 20
tomwalters@0 21 struct _buffer { Pointer addr ; unsigned size, refs ; } ;
tomwalters@0 22
tomwalters@0 23 extern Buffer NewBuffer( /* char where[] */ ) ;
tomwalters@0 24 extern Buffer SharedBuffer( /* Buffer buffer */ ) ;
tomwalters@0 25 extern Buffer ResizedBuffer( /* Buffer buffer, unsigned size */ ) ;
tomwalters@0 26 extern void FreeBuffer( /* Buffer buffer */ ) ;