Added the ADT library (not really abstract, but it's a common data type library)
[tpg/acess2.git] / Kernel / include / adt.h
1 /* 
2  * Acess2
3  * - Abstract Data Types
4  */
5 #ifndef _ADT_H_
6 #define _ADT_H_
7
8 /**
9  * \name Ring Buffer
10  * \{
11  */
12 typedef struct sRingBuffer
13 {
14         size_t  Start;
15         size_t  Length;
16         size_t  Space;
17         char    Data[];
18 }       tRingBuffer;
19
20 /**
21  * \brief Create a ring buffer \a Space bytes large
22  * \param Space Ammount of space to allocate within the buffer
23  * \return Pointer to the buffer structure
24  */
25 extern tRingBuffer      *RingBuffer_Create(size_t Space);
26 extern size_t   RingBuffer_Read(void *Dest, tRingBuffer *Buffer, size_t Length);
27 extern size_t   RingBuffer_Write(tRingBuffer *Buffer, void *Source, size_t Length);
28 /**
29  * \}
30  */
31
32
33 #endif

UCC git Repository :: git.ucc.asn.au