ronnie
2022-10-14 1504bb53e29d3d46222c0b3ea994fc494b48e153
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
 
#ifndef __HAL_BUFFER_LIST_H__
#define __HAL_BUFFER_LIST_H__
 
#include <fcntl.h>
#include <cutils/list.h>
#include <utils/Mutex.h>
 
namespace android {
 
typedef struct BUFFER_NODE_t
{
    struct listnode    i_list;
    int                id;
    void *            data;
    int                size;
    char            priv[128];
    int             fd;
}buffer_node;
 
class BufferListManager {
public:
    BufferListManager();
    ~BufferListManager();
 
    // return buffer start address
    buffer_node * allocBuffer(uint32_t id, uint32_t min_size);
    void releaseBuffer(buffer_node * node);
 
    bool isListEmpty();
 
    buffer_node * pop();
    void push(buffer_node * node);
    int getItemCnt();
 
private:
    Mutex                mLock;
 
    struct listnode        mList;
 
    int                    mItemCnt;
};
 
}; /* namespace android */
 
#endif  /* __HAL_BUFFER_LIST_H__ */