Go to the documentation of this file.
69 #define BUFFER_status_READ 1u
70 #define BUFFER_status_NOT_READ 2u
INT32 gk_timeout_ECB_MQ_send(GS_ECB *peventime)
This function is called from the timed IRQ when a send timeout G_ECBType_MESSAGE_SEND_WAIT happens.
INT32 gk_timeout_ECB_MQ_consume(GS_ECB *peventime)
This function is called from the timed IRQ when a consume timeout G_ECBType_MESSAGE_CONSUME_WAIT happ...
INT32 MQ_priority_send
Priority for the next ECB to send (to put last)
TIMEPRIORITY BUFFER_priority
Priority assigned to the consumed TCB
INT32 gk_MQ_send(G_RCB *prcb, void *pmsg, INT32 msg_length, gt_time timeout)
Sends a message to all the consumers. The function returns when the message was delivered to all the ...
unsigned long long gt_time
TIMEPRIORITY BUFFER_timeout
Timeout assigned to the waiting for message
BUFFER CONTROL BLOCK FOR UNION WITH RRDS STRUCT.
void* BUFFER_pbuffer
pointer to the buffer of the message to transmit
INT32 BUFFER_buffer_length
current index to the byte to transfer to resource buffer
INT32 BUFFER_msg_seq
Byte index in the RCB buffer copied
gs_tcb Task Control Block (TCB) structure
INT32 gk_MQ_Read_Sender(void)
INT32 MQ_Count_deliver
Number of times a message has to be delivered
G_RCB* gu_queue_create(void *pbuffer, INT32 buffer_length)
Create a Resource for Queue with default settings.
INT32 gk_QUEUE_granted_kill(GS_ECB *pevent)
GS_ECB* gu_queue_consume(G_RCB *presource, void *pbuffer, INT32 buffer_length, gt_time timeout)
Creates an ECB to consume from a Message Queue.
union timepriority TIMEPRIORITY
INT32 MQ_Buffer_Length
Length of the buffer
INT32 BUFFER_current_byte_index
current index to the byte transfered to the buffer
INT32 MQ_priority_consume
Priority for the next ECB to cons (to put last)
INT32 BUFFER_status
EMPTY, NEW_MESSAGE, END_OF_MESSAGE, MIDDLE_OF_MESSAGE.
INT32 gk_check_consume(GS_ECB * pevent)
Transfer message from the resource to the consumer.
void* MQ_PBuffer
Pointer to the buffer
struct gs_tcb* MQ_CUR_TCB
Pointer to the task of the TCB that send cur msg.
INT32 gk_MQ_move_to_consumer(GS_RRDS *pbuffer_consumer, INT32 start_byte_id, INT32 bytes_count)
INT32 gu_MQ_consumer_mark_read(GS_ECB * pevent)
Mark the current buffer as read.
INT32 MQ_msg_seq
Number of sequence of the current message
INT32 MQ_consumer_count
Number of times a message was delivered
INT32 gu_MQ_receive(GS_ECB *pevent)
INT32 MQ_msg_Length
Length of the current message