mk_msgqf.h

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

H
57
字号
/**********************************************************************************
 * mk_msgQF.h                                                                         
 * coded by hspark@ce.cnu.ac.kr
 * date : 2002/06/23
 **********************************************************************************/

#ifndef __MK_MSGQF_H__
#define __MK_MSGQF_H__

#include "kernel\\mk_defs.h"
#include "kernel\\mk_task.h"
#include "kernel\\mk_sem.h"
#include "kernel\\mk_mem.h"

#define	MK_MSGQF_MAGIC		0xF3CD03E4L			/* Magic Value of Message Queue */

#define MK_QUEUE_FULL	-46
#define MK_QUEUE_EMPTY	-45

typedef struct mk_fixed_queue_msg_struct {
	ULONG	fm_StartOfMsg;
	ULONG	fm_Length;
	struct mk_fixed_queue_msg_struct *fm_pNext;
} MK_FIXED_QUEUE_MSG;

typedef struct mk_fixed_msg_queue_struct {
	ULONG	fq_Magic;
	ULONG	fq_AvailableSize;
	struct mk_fixed_queue_msg_struct *fq_pMsgListHead;
	struct mk_fixed_queue_msg_struct *fq_pMsgListTail;
	struct mk_buffer_pool_struct	fq_Pool;	/* Include SendSemaphore */
	struct mk_semaphore_struct		fq_ReceiveSemaphore;
} MK_FIXED_QUEUE;

/*-----------------------------------------------------------------
 * Internal Function
 *-----------------------------------------------------------------*/
void MK_FixedMsgQueueInitialze(void);
ULONG MK_GetFixedMsgQueueAvailableBufferSize(MK_FIXED_QUEUE *pQueue);
INT MK_GetFixedMsgQueueMsgCount(MK_FIXED_QUEUE *pQueue);

STATUS MK_CreateFixedMsgQueue(MK_FIXED_QUEUE *pQueue, char *pName, void *pAddr, int Count, 
							  ULONG Size, BOOLEAN Options);
ULONG MK_GetFixedMsgQueueNeedSize(UINT MsgCount, ULONG Size);
STATUS MK_DeleteFixedMsgQueue(MK_FIXED_QUEUE *pQueue);
STATUS MK_FixedMsgQueuePend(MK_FIXED_QUEUE *pFMsgQueue, void *pMsg, ULONG BufSize,
							ULONG *pLength, long Ticks);
STATUS MK_FixedMsgQueuePost(MK_FIXED_QUEUE *pFMsgQueue, void *pMsg, ULONG Length, 
							long Ticks);
STATUS MK_FixedMsgQueueFrontPost(MK_FIXED_QUEUE *pQueue, void *pMsg, ULONG Length, 
							long Ticks);
STATUS MK_FixedMsgQueueBroadcastPost(MK_FIXED_QUEUE *pQueue, void *pMsg, ULONG Length, 
							long Ticks);
STATUS MK_FixedMsgQueueReset(MK_FIXED_QUEUE *pQueue);

#endif /* __MK_MSGQF_H__ */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?