登录 注册
当前位置:主页 > 资源下载 > 50 > 查询emc datadomain 2500存储设备的维护手册以了解邮箱状态

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

  • 更新:2024-11-04 13:34:38
  • 大小:4.33MB
  • 推荐:★★★★★
  • 来源:网友上传分享
  • 类别:OS - 操作系统
  • 格式:PDF

资源介绍

程序清单 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;