-
创建一份针对EMC DataDomain 2500存储设备的维护手册
资源介绍
图 F6.6 任务、中断服务子程序和邮箱之间的关系
6.6.1 建立一个邮箱,OSMboxCreate()
程序清单 L6.14是 OSMboxCreate()函数的源代码,基本上和函数 OSSemCreate()相似。不
同之处在于事件控制块的类型被设置成 OS_EVENT_TYPE_MBOX[L6.14(1)],以及使用.OSEventPtr
域来容纳消息指针,而不是使用.OSEventCnt域[L6.14(2)]。
OSMboxCreate()函数的返回值是一个指向事件控制块的指针[L6.14(3)]。这个指针在调用
函数 OSMboxPend(),OSMboxPost(),OSMboxAccept()和 OSMboxQuery()时使用。因此,该指针
可以看作是对应邮箱的句柄。值得注意的是,如果系统中已经没有事件控制块可用,函数
OSMboxCreate()将返回一个 NULL指针。
邮箱一旦建立,是不能被删除的。比如,如果有任务正在等待一个邮箱的信息,这时删除
该邮箱,将有可能产生灾难性的后果。
程序清单 L6.14 建立一个邮箱
OS_EVENT *OSMboxCreate (void *msg)