📄 util.h
字号:
/******************************************************************************
* Filename : Utilities.h
* Start : 2002. 11. 11
* By : Taejin Kwon
* Contact : eric.kwon@samsung.com
* Description :
******************************************************************************
*/
#ifndef _UTIL_H_
#define _UTIL_H_
#define BM_SUCCESS 0x00000001
#define BM_FAIL 0x00000000
#define BM_WAIT_RB_AVAIL 0x00000001
#define BM_WAIT_WB_AVAIL 0x00000002
#define INVALID_BUFFER_INDEX 0x0FFFFFFF
typedef struct {
/*
common feature for Buffer Manager
*/
ULONG p_StartAddress; /* start address of first BE (word aligned) */
ULONG p_StopAddress; /* start address of first BE (word aligned) */
} BufferElement_t;
typedef void (*BM_CALLBACK)(void);
typedef struct {
/*
common feature for Buffer Manager
*/
ULONG p_StartAddress; /* start address of first BE (word aligned) */
ULONG p_StopAddress; /* start address of first BE (word aligned) */
/* sz_TotalBuffer must be (sz_Chunk*n_Chunk) */
ULONG sz_TotalBuffer; /* size of Total buffer */
ULONG sz_Chunk; /* size of one chunk */
ULONG n_Chunk; /* number of BufferElement */
/*
current status of Buffer Manager
*/
ULONG status;
ULONG cReadIndex; /* index for current reading chunk */
ULONG cWriteIndex; /* index for current writing chunk */
ULONG sFreeList; /* index for starting chunk of FreeList*/
ULONG sValid; /* index for starting chunk of ValidList*/
ULONG nFree; /* count for FreeChunks */
ULONG nValid; /* count for ValidChunks */
BM_CALLBACK ReadBufferAvailCallback;
BM_CALLBACK WriteBufferAvailCallback;
} BufferManager_t;
void InitBufferManager(BufferManager_t *bm, ULONG p, ULONG n, ULONG szChunk);
ULONG PutSReadBuffer(BufferManager_t *bm);
ULONG GetReadBuffer(BufferManager_t *bm, BufferElement_t *be);
ULONG PutReadBuffer(BufferManager_t *bm);
ULONG GetWriteBuffer(BufferManager_t *bm, BufferElement_t *be);
ULONG PutWriteBuffer(BufferManager_t *bm);
void ResetBufferState(BufferManager_t *bm);
void SetReadAvailCallback(BufferManager_t *bm, BM_CALLBACK func);
void SetWriteAvailCallback(BufferManager_t *bm, BM_CALLBACK func);
#endif /* _UTIL_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -