44 lines
1.4 KiB
C
44 lines
1.4 KiB
C
|
|
/*----------------------------------------------------------------------------------------------------
|
|||
|
|
# THIS FILE IS A PART OF XerolySkinner's PROJECT
|
|||
|
|
#
|
|||
|
|
# THIS PROGRAM IS FREE SOFTWARE
|
|||
|
|
#
|
|||
|
|
# E-mail:ZABBCCCBBAZ@163.com
|
|||
|
|
# QQ:2715099320
|
|||
|
|
#
|
|||
|
|
# Copyright (c) 2022 XerolySkinner
|
|||
|
|
# All rights reserved.
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
/*----------------------------------------------------------------------------------------------------
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:bsp_Queue
|
|||
|
|
ʱ<EFBFBD><EFBFBD>:20220806-0226
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա:<EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>
|
|||
|
|
˵<EFBFBD><EFBFBD>:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FIFO<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
*/
|
|||
|
|
#ifndef _BSP_QUEUE
|
|||
|
|
#define _BSP_QUEUE
|
|||
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
// <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
// ѭ<><D1AD>ֱ<EFBFBD><D6B1>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD>
|
|||
|
|
#define bsp_QueuePopRunLoopVoid(Queue) \
|
|||
|
|
do{ \
|
|||
|
|
while(!bsp_QueueEmpty(Queue)) \
|
|||
|
|
((void (*)(void))bsp_QueuePop(Queue))(); \
|
|||
|
|
}while(0)
|
|||
|
|
// <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define bsp_QueuePopRunIfVoid(Queue) \
|
|||
|
|
do{ \
|
|||
|
|
if(!bsp_QueueEmpty(Queue)) \
|
|||
|
|
((void (*)(void))bsp_QueuePop(Queue))(); \
|
|||
|
|
}while(0)
|
|||
|
|
// <09><><EFBFBD>ö<EFBFBD><C3B6>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
struct _Queue* bsp_QueueInit(void);
|
|||
|
|
char bsp_QueueEmpty(struct _Queue* list);
|
|||
|
|
char bsp_QueuePush(struct _Queue* list, void* member);
|
|||
|
|
void* bsp_QueuePop(struct _Queue* list);
|
|||
|
|
void bsp_QueuePushCharPtrFree(char* member);
|
|||
|
|
char bsp_QueuePushCharPtr(struct _Queue* list, char* member, unsigned int len);
|
|||
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
#endif
|