util.h

来自「三星ic 9980的源代码. 718版.」· C头文件 代码 · 共 73 行

H
73
字号
/******************************************************************************
 *   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 + =
减小字号Ctrl + -
显示快捷键?