查询邮箱的状态-emc datadomain 2500 存储设 备维护手册

时间:2021-06-09 07:52:34
【文件属性】:
文件名称:查询邮箱的状态-emc datadomain 2500 存储设 备维护手册
文件大小:4.33MB
文件格式:PDF
更新时间:2021-06-09 07:52:34
uCOS-II 程序清单 L6.17 无等待地从邮箱中得到消息 void *OSMboxAccept (OS_EVENT *pevent) { void *msg; OS_ENTER_CRITICAL(); if (pevent->OSEventType != OS_EVENT_TYPE_MBOX) { (1) OS_EXIT_CRITICAL(); return ((void *)0); } msg = pevent->OSEventPtr; (2) if (msg != (void *)0) { (3) pevent->OSEventPtr = (void *)0; (4) } OS_EXIT_CRITICAL(); return (msg); (5) } 6.6.5 查询一个邮箱的状态, OSMboxQuery() OSMboxQuery()函数使应用程序可以随时查询一个邮箱的当前状态。程序清单 L6.18 是该 函数的源代码。它需要两个参数:一个是指向邮箱的指针 pevent。该指针是在建立该邮箱时, 由 OSMboxCreate()函数返回的;另一个是指向用来保存有关邮箱的信息的 OS_MBOX_DATA(见 uCOS_II.H)数据结构的指针 pdata。在调用 OSMboxCreate()函数之前,必须先定义该结构变量, 用来保存有关邮箱的信息。之所以定义一个新的数据结构,是因为这里关心的只是和特定邮箱 有关的内容,而非整个 OS_EVENT 数据结构的内容。后者还包含了另外两个域(.OSEventCnt 和.OSEventType),而 OS_MBOX_DATA只包含邮箱中的消息指针(.OSMsg)和该邮箱现有的等待 任务列表(.OSEventTbl[]和.OSEventGrp)。 和前面的所以函数一样,该函数也是先检查事件控制是否是邮箱[L6.18(1)]。然后,将邮 箱中的等待任务列表[L6.18(2)]和邮箱中的消息[L6.18(3)]从 OS_EVENT 数据结构复制到 OS_MBOX_DATA数据结构。 程序清单 L6.18 查询邮箱的状态 INT8U OSMboxQuery (OS_EVENT *pevent, OS_MBOX_DATA *pdata) { INT8U i;

网友评论