00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00033 #ifndef BSP_MESGQUEUE_H
00034 #define BSP_MESGQUEUE_H
00035 #include "bsp_exptable.h"
00036 #include <config.h>
00037
00039 typedef struct {
00041 unsigned int recv_tag_size;
00043 unsigned int send_tag_size;
00045 unsigned int n_mesg;
00047 unsigned int accum_size;
00049 ALIGNED_TYPE * restrict head;
00050 } MessageQueue;
00051
00052
00053
00056 static inline void
00057 messageQueue_initialize (MessageQueue * restrict mesgq)
00058 {
00059 mesgq->recv_tag_size = 0;
00060 mesgq->send_tag_size = 0;
00061 mesgq->n_mesg = 0;
00062 mesgq->accum_size = 0;
00063 mesgq->head = NULL;
00064 }
00065
00067 static inline void
00068 messageQueue_sync(MessageQueue * restrict mesgq)
00069 {
00070 mesgq->recv_tag_size = mesgq->send_tag_size;
00071 mesgq->n_mesg = 0;
00072 mesgq->accum_size = 0;
00073 mesgq->head = NULL ;
00074 }
00075
00076 #endif