Main Page   Modules   Data Structures   File List   Globals  

message.h File Reference

Header file for message.c. More...

#include "types.h"

Go to the source code of this file.

Data Structures

union  OtosMessage
 An otOS message. More...

struct  OtosMessageQueue

Defines

#define MESSAGE_SUCCESS   0
#define MESSAGE_TIMEOUT   1
#define MESSAGE_QUEUE_EMPTY   2
#define MESSAGE_QUEUE_FULL   3

Functions

OtosMessageQueue * otosCreateMessageQueue (uint8_t Size)
 Create a message queue.

uint8_t otosSendMessage (OtosMessageQueue *pQueue, OtosMessage *pMsg)
 Send message to message queue. If a task waits for it, wake it.

uint8_t otosReceiveMessage (OtosMessageQueue *pQueue, OtosMessage *pMsg, uint32_t Timeout)
 Receive message from message queue.


Detailed Description

Header file for message.c.

Definition in file message.h.


Function Documentation

OtosMessageQueue* otosCreateMessageQueue uint8_t    size
 

Create a message queue.

Parameters:
size Size of the message queue
Returns:
Pointer to created message queue, NULL if otOS is out of memory.

Definition at line 63 of file message.c.

References otosAllocate().

uint8_t otosReceiveMessage OtosMessageQueue *    pQueue,
OtosMessage   pMsg,
uint32_t    timeout
 

Receive message from message queue.

Parameters:
pQueue Message queue pointer
pMsg Pointer to message
timeout Number of otOS timer ticks to wait for a message
  • 0: Don't wait, return immediately
  • INFINITE: Wait infinitely
  • else: Wait number of ticks
Returns:
  • MESSAGE_SUCCESS: A message was received
  • MESSAGE_QUEUE_EMPTY: No message was received, because the queue is empty
  • MESSAGE_TIMEOUT: Timeout expired while waiting for a message
Note:
May not be called from an ISR

Definition at line 168 of file message.c.

References g_pRunningTask, and otosBlock.

uint8_t otosSendMessage OtosMessageQueue *    pQueue,
OtosMessage   pMsg
 

Send message to message queue. If a task waits for it, wake it.

Note:
When called from an interrupt service routine, the scheduler is NOT called after sending the message. It will be called at the next system tick. If you want the scheduler to be called as fast as possible, call otosInterruptReturn() at the end of the ISR.
Parameters:
pQueue Pointer to message queue
pMsg Pointer to message
Returns:
  • MESSAGE_SUCCESS: Success
  • MESSAGE_QUEUE_FULL: Message queue is full. Message could not be sent.

Definition at line 101 of file message.c.

References g_pBlockedQueue, g_performDispatch, otosScheduler(), and otosWakeup().


Generated on Sat Jan 25 18:41:43 2003 for otOS by doxygen1.3-rc2