dol: initial dol commit
[jump.git] / dol / src / dol / visitor / hds / lib / WindowedFifo.h
1 #ifndef _WINDOWEDFIFO_H_\r
2 #define _WINDOWEDFIFO_H_\r
3 \r
4 #include "systemc.h"\r
5 \r
6 class WindowedFifo {\r
7     public:\r
8         WindowedFifo(char* name, unsigned size);\r
9         virtual ~WindowedFifo();\r
10 \r
11         virtual unsigned reserve(void** destination, unsigned len);\r
12         virtual void release();\r
13 \r
14         virtual unsigned capture(void** destination, unsigned len);\r
15         virtual void consume();\r
16 \r
17         virtual unsigned used() const;\r
18         virtual unsigned unused() const;\r
19         virtual unsigned size() const;\r
20         virtual char* getName() const;\r
21 \r
22     protected:\r
23         char *_buffer;\r
24         unsigned _head;\r
25         unsigned _tail;\r
26         unsigned _headRoom;\r
27         unsigned _tailRoom;\r
28         unsigned _size;\r
29         unsigned _use;\r
30         unsigned _writeReserve;  
31         unsigned _readReserve; 
32         //bool _isFull;\r
33         bool _isHeadReserved;\r
34         bool _isTailReserved;\r
35         char *_name;\r
36         sc_event _readEvent;\r
37         sc_event _writeEvent;\r
38 };\r
39 \r
40 #endif\r