⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 message.h

📁 本程序为ST公司开发的源代码
💻 H
字号:
/* * message.h * * Copyright (C) STMicroelectronics Ltd. 2000 * * Message passing. */#ifndef __os20_message_h#define __os20_message_h   #ifndef __size_t#define __size_ttypedef unsigned int    size_t;#endif#include "semaphor.h" /* Needed for semaphore_t */struct message_queue_class_s;typedef struct message_hdr_s{    struct message_hdr_s* message_hdr_next;} message_hdr_t;typedef struct message_half_s{     message_hdr_t*       message_half_head;     message_hdr_t*       message_half_tail;     semaphore_t          message_half_sem;} message_half_t;typedef struct message_queue_s{     struct message_queue_class_s *message_queue_class;     message_half_t       message_queue_free;     message_half_t       message_queue_queue;     int                  message_queue_length;   /* maximum message size */     void*                message_queue_memory;} message_queue_t; // QUEUE size if mslgen rounded up to word alignment + message_hdr * number of messages#define MESSAGE_MEMSIZE_QUEUE(msglen, nummsg) ((sizeof(message_hdr_t)+((msglen+3)&~3))*nummsg)void         message_send (message_queue_t*  MessageQueue, void* Message);void*        message_receive (message_queue_t* MessageQueue);void*        message_receive_timeout (message_queue_t* MessageQueue,                                      const osclock_t* time);void*        message_claim (message_queue_t* MessageQueue);void*        message_claim_timeout (message_queue_t* MessageQueue,                                    const osclock_t* time);void         message_release (message_queue_t* MessageQueue, void* Message);void         message_init_queue(message_queue_t* MessageQueue, void* memory,                                size_t ElementSize, unsigned int NoElements);message_queue_t* message_create_queue (size_t ElementSize,                                       unsigned int NoElements);void         message_init_queue_timeout(message_queue_t* MessageQueue,                    void* memory, size_t ElementSize, unsigned int NoElements);message_queue_t* message_create_queue_timeout(size_t ElementSize,                                              unsigned int NoElements);void         message_delete_queue(message_queue_t* MessageQueue);#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -