📄 message.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 + -