0408
来源:互联网 发布:米26重型直升机数据 编辑:程序博客网 时间:2024/04/30 01:44
查询一个邮箱的状态, 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; INT8U *psrc;
- INT8U *pdest;
- OS_ENTER_CRITICAL();
- if (pevent->OSEventType != OS_EVENT_TYPE_MBOX) { (1)
- OS_EXIT_CRITICAL();
- return (OS_ERR_EVENT_TYPE);
- }
- pdata->OSEventGrp = pevent->OSEventGrp; (2)
- psrc = &pevent->OSEventTbl[0];
- pdest = &pdata->OSEventTbl[0];
- for (i = 0; i < OS_EVENT_TBL_SIZE; i++) {
- *pdest++ = *psrc++;
- }
- pdata->OSMsg = pevent->OSEventPtr; (3)
- OS_EXIT_CRITICAL();
- return (OS_NO_ERR);
- }
0 0
- 0408
- 0408
- 0408
- 文章0408
- 工作日记0408
- 第十四天总结0408
- 0408用户短消息系统
- 0408学习记录
- 0407-0805到0408-0308
- 0408学习总结-辨别函数类型
- 0408学习--关于引号的问题
- 0408学习--自增自减
- 基于visual Studio2013解决C语言竞赛题之0408素数
- iOS开发UI篇—0408控制器的三种创建方式
- iOS开发UI篇—0408控制器View的生命周期方法
- 0408学习总结(linux基础命令,vim基础的使用)
- 小谈 URI 区别 URL http://www.360doc.com/content/13/0408/13/11931541_276895477.shtml
- C#中Dictionary<TKey,TValue>排序方式
- centos 6.5下使用中文输入法
- 算法之快速排序
- 小技巧
- 哈希表原理
- 0408
- Android AlterDialog的用法
- python图像处理_色彩转换
- Keyboard Row
- Android Studio快捷键
- Android内存优化三:对Bitmap的内存优化
- 2017华为软挑——遗传算法
- qt建立一个按钮控件
- 12 文档归档 压缩 传输.