diff options
Diffstat (limited to 'dev/pktfifo.hh')
-rw-r--r-- | dev/pktfifo.hh | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/dev/pktfifo.hh b/dev/pktfifo.hh index 0b2e95e2a..0c237949c 100644 --- a/dev/pktfifo.hh +++ b/dev/pktfifo.hh @@ -46,15 +46,16 @@ class PacketFifo int _reserved; public: - explicit PacketFifo(int max) : _maxsize(max), _size(0) {} + explicit PacketFifo(int max) : _maxsize(max), _size(0), _reserved(0) {} virtual ~PacketFifo() {} - int maxsize() const { return _maxsize; } int packets() const { return fifo.size(); } - int size() const { return _size + _reserved; } - int avail() const { return maxsize() - size(); } - bool empty() const { return size() == 0; } - bool full() const { return size() >= maxsize(); } + int maxsize() const { return _maxsize; } + int size() const { return _size; } + int reserved() const { return _reserved; } + int avail() const { return _maxsize - _size - _reserved; } + bool empty() const { return size() <= 0; } + bool full() const { return avail() <= 0; } int reserve(int len = 0) { @@ -91,6 +92,7 @@ class PacketFifo { fifo.clear(); _size = 0; + _reserved = 0; } /** |