RTEMS
tr-event-send.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: BSD-2-Clause */
2 
9 /*
10  * Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
11  *
12  * Redistribution and use in source and binary forms, with or without
13  * modification, are permitted provided that the following conditions
14  * are met:
15  * 1. Redistributions of source code must retain the above copyright
16  * notice, this list of conditions and the following disclaimer.
17  * 2. Redistributions in binary form must reproduce the above copyright
18  * notice, this list of conditions and the following disclaimer in the
19  * documentation and/or other materials provided with the distribution.
20  *
21  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
25  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31  * POSSIBILITY OF SUCH DAMAGE.
32  */
33 
34 #ifdef HAVE_CONFIG_H
35 #include "config.h"
36 #endif
37 
38 #include <rtems/score/statesimpl.h>
39 #include <rtems/score/threadimpl.h>
40 
41 #include "tr-event-send.h"
42 
43 #include <rtems/test.h>
44 
53 typedef enum {
54  PRIO_HIGH = 1,
55  PRIO_NORMAL,
56  PRIO_LOW,
57  PRIO_OTHER
58 } Priorities;
59 
60 typedef enum {
61  SENDER_NONE,
62  SENDER_SELF,
63  SENDER_SELF_2,
64  SENDER_WORKER,
65  SENDER_INTERRUPT
66 } SenderTypes;
67 
68 typedef enum {
69  RECEIVE_SKIP,
70  RECEIVE_NORMAL,
71  RECEIVE_INTERRUPT
72 } ReceiveTypes;
73 
74 typedef enum {
75  RECEIVE_COND_UNKNOWN,
76  RECEIVE_COND_SATSIFIED,
77  RECEIVE_COND_UNSATISFIED
78 } ReceiveConditionStates;
79 
83 typedef struct {
88  SenderTypes sender_type;
89 
93  Priorities sender_prio;
94 
99 
104 
109 
113  ReceiveTypes receive_type;
114 
120 
125 
131 
136 
141  ReceiveConditionStates receive_condition_state;
142 
148 
153 
158 
163 
169 
175 
181 
187 
192 
198 
204 
209  rtems_event_set ( *get_pending_events )( Thread_Control * );
210 
214  size_t pcs[ 4 ];
215 
222 
224  ReqRtemsEventSendReceive_Instance;
225 
226 static const char * const ReqRtemsEventSendReceive_PreDesc_Id[] = {
227  "InvId",
228  "Task",
229  "NA"
230 };
231 
232 static const char * const ReqRtemsEventSendReceive_PreDesc_Send[] = {
233  "Zero",
234  "Unrelated",
235  "Any",
236  "All",
237  "MixedAny",
238  "MixedAll",
239  "NA"
240 };
241 
242 static const char * const ReqRtemsEventSendReceive_PreDesc_ReceiverState[] = {
243  "NotWaiting",
244  "Poll",
245  "Timeout",
246  "Lower",
247  "Equal",
248  "Higher",
249  "Other",
250  "Intend",
251  "NA"
252 };
253 
254 static const char * const ReqRtemsEventSendReceive_PreDesc_Satisfy[] = {
255  "All",
256  "Any",
257  "NA"
258 };
259 
260 static const char * const * const ReqRtemsEventSendReceive_PreDesc[] = {
261  ReqRtemsEventSendReceive_PreDesc_Id,
262  ReqRtemsEventSendReceive_PreDesc_Send,
263  ReqRtemsEventSendReceive_PreDesc_ReceiverState,
264  ReqRtemsEventSendReceive_PreDesc_Satisfy,
265  NULL
266 };
267 
268 #define INPUT_EVENTS ( RTEMS_EVENT_5 | RTEMS_EVENT_23 )
269 
271 
272 static rtems_id CreateWakeupSema( void )
273 {
275  rtems_id id;
276 
278  rtems_build_name( 'W', 'K', 'U', 'P' ),
279  0,
281  0,
282  &id
283  );
284  T_assert_rsc_success( sc );
285 
286  return id;
287 }
288 
289 static void DeleteWakeupSema( rtems_id id )
290 {
291  if ( id != 0 ) {
293 
294  sc = rtems_semaphore_delete( id );
295  T_rsc_success( sc );
296  }
297 }
298 
299 static void Wait( rtems_id id )
300 {
302 
304  T_quiet_rsc_success( sc );
305 }
306 
307 static void Wakeup( rtems_id id )
308 {
310 
311  sc = rtems_semaphore_release( id );
312  T_quiet_rsc_success( sc );
313 }
314 
315 static bool BlockedForEvent( Thread_Wait_flags flags )
316 {
317  return
319 }
320 
321 static bool IntendsToBlockForEvent( Thread_Wait_flags flags )
322 {
323  return
325 }
326 
327 static bool EventReadyAgain( Thread_Wait_flags flags )
328 {
329  return
331 }
332 
333 static bool IsSatisfiedFlags( Context *ctx )
334 {
335  return EventReadyAgain( _Thread_Wait_flags_get( ctx->runner_thread ) );
336 }
337 
338 static bool IsSatisfiedState( Context *ctx )
339 {
341 }
342 
343 static void SendAction( Context *ctx )
344 {
345  T_thread_switch_log *log;
346 
347  log = T_thread_switch_record_4( &ctx->thread_switch_log );
348  T_quiet_null( log );
349  ctx->send_status = ( *ctx->send )( ctx->receiver_id, ctx->events_to_send );
350  log = T_thread_switch_record( NULL );
351  T_quiet_eq_ptr( log, &ctx->thread_switch_log.log );
352 }
353 
354 static void Send(
355  Context *ctx,
356  bool ( *is_satsified )( Context * )
357 )
358 {
359  SendAction( ctx );
360 
361  if ( ( *is_satsified )( ctx ) ) {
362  ctx->receive_condition_state = RECEIVE_COND_SATSIFIED;
363  } else {
365  rtems_event_set pending;
366  rtems_event_set missing;
367 
368  ctx->receive_condition_state = RECEIVE_COND_UNSATISFIED;
369  pending = ( *ctx->get_pending_events )( ctx->runner_thread );
370  ctx->unsatisfied_pending = pending;
371 
372  missing = INPUT_EVENTS & ~ctx->events_to_send;
373  T_ne_u32( missing, 0 );
374  sc = ( *ctx->send )( ctx->runner_id, missing );
375  T_rsc_success( sc );
376 
377  pending = ( *ctx->get_pending_events )( ctx->runner_thread );
378  T_eq_u32( pending, ctx->events_to_send & ~INPUT_EVENTS );
379  }
380 }
381 
382 static void Worker( rtems_task_argument arg )
383 {
384  Context *ctx;
385 
386  ctx = (Context *) arg;
387 
388  while ( true ) {
390  rtems_task_priority prio;
391 
392  Wait( ctx->worker_wakeup );
393 
394  switch ( ctx->sender_prio ) {
395  case PRIO_NORMAL:
396  case PRIO_HIGH:
397  prio = 0;
398  sc = rtems_task_set_priority( RTEMS_SELF, ctx->sender_prio, &prio );
399  T_rsc_success( sc );
400  T_eq_u32( prio, PRIO_LOW );
401  break;
402  case PRIO_OTHER:
404  RTEMS_SELF,
405  ctx->other_sched,
406  PRIO_LOW
407  );
408  T_rsc_success( sc );
409  break;
410  case PRIO_LOW:
411  break;
412  }
413 
414  Send( ctx, IsSatisfiedState );
415 
417  RTEMS_SELF,
418  ctx->runner_sched,
419  PRIO_HIGH
420  );
421  T_rsc_success( sc );
422 
423  Wakeup( ctx->runner_wakeup );
424  }
425 }
426 
427 static rtems_event_set GetPendingEvents( Context *ctx )
428 {
429  rtems_event_set pending;
431 
432  sc = ( *ctx->receive )(
435  0,
436  &pending
437  );
438  T_quiet_rsc_success( sc );
439 
440  return pending;
441 }
442 
443 static void ReqRtemsEventSendReceive_Cleanup( Context *ctx );
444 
445 static void InterruptPrepare( void *arg )
446 {
447  ReqRtemsEventSendReceive_Cleanup( arg );
448 }
449 
450 static void InterruptAction( void *arg )
451 {
452  Context *ctx;
453 
454  ctx = arg;
455  ctx->receive_status = ( *ctx->receive )(
456  INPUT_EVENTS,
457  ctx->receive_option_set,
458  ctx->receive_timeout,
459  &ctx->received_events
460  );
461  T_quiet_rsc_success( ctx->receive_status );
462 }
463 
464 static void InterruptContinue( Context *ctx )
465 {
467 
468  sc = ( *ctx->send )( ctx->receiver_id, INPUT_EVENTS );
469  T_quiet_rsc_success( sc );
470 }
471 
472 static T_interrupt_test_state Interrupt( void *arg )
473 {
474  Context *ctx;
475  Thread_Wait_flags flags;
476  T_interrupt_test_state next_state;
477  T_interrupt_test_state previous_state;
478 
479  ctx = arg;
480  flags = _Thread_Wait_flags_get( ctx->runner_thread );
481 
482  if ( IntendsToBlockForEvent( flags ) ) {
483  next_state = T_INTERRUPT_TEST_DONE;
484  } else if ( BlockedForEvent( flags ) ) {
485  next_state = T_INTERRUPT_TEST_LATE;
486  } else {
487  next_state = T_INTERRUPT_TEST_EARLY;
488  }
489 
490  previous_state = T_interrupt_test_change_state(
491  T_INTERRUPT_TEST_ACTION,
492  next_state
493  );
494 
495  if ( previous_state == T_INTERRUPT_TEST_ACTION ) {
496  if ( next_state == T_INTERRUPT_TEST_DONE ) {
497  Send( ctx, IsSatisfiedFlags );
498  } else {
499  InterruptContinue( ctx );
500  }
501  }
502 
503  return next_state;
504 }
505 
506 static const T_interrupt_test_config InterruptConfig = {
507  .prepare = InterruptPrepare,
508  .action = InterruptAction,
509  .interrupt = Interrupt,
510  .max_iteration_count = 10000
511 };
512 
513 static void ReqRtemsEventSendReceive_Pre_Id_Prepare(
515  ReqRtemsEventSendReceive_Pre_Id state
516 )
517 {
518  switch ( state ) {
519  case ReqRtemsEventSendReceive_Pre_Id_InvId: {
520  ctx->receiver_id = 0xffffffff;
521  ctx->sender_type = SENDER_SELF;
522  break;
523  }
524 
525  case ReqRtemsEventSendReceive_Pre_Id_Task: {
526  ctx->receiver_id = ctx->runner_id;
527  break;
528  }
529 
530  case ReqRtemsEventSendReceive_Pre_Id_NA:
531  break;
532  }
533 }
534 
535 static void ReqRtemsEventSendReceive_Pre_Send_Prepare(
537  ReqRtemsEventSendReceive_Pre_Send state
538 )
539 {
540  switch ( state ) {
541  case ReqRtemsEventSendReceive_Pre_Send_Zero: {
542  ctx->events_to_send = 0;
543  break;
544  }
545 
546  case ReqRtemsEventSendReceive_Pre_Send_Unrelated: {
548  break;
549  }
550 
551  case ReqRtemsEventSendReceive_Pre_Send_Any: {
553  break;
554  }
555 
556  case ReqRtemsEventSendReceive_Pre_Send_All: {
558  break;
559  }
560 
561  case ReqRtemsEventSendReceive_Pre_Send_MixedAny: {
563  break;
564  }
565 
566  case ReqRtemsEventSendReceive_Pre_Send_MixedAll: {
568  break;
569  }
570 
571  case ReqRtemsEventSendReceive_Pre_Send_NA:
572  break;
573  }
574 }
575 
576 static void ReqRtemsEventSendReceive_Pre_ReceiverState_Prepare(
578  ReqRtemsEventSendReceive_Pre_ReceiverState state
579 )
580 {
581  switch ( state ) {
582  case ReqRtemsEventSendReceive_Pre_ReceiverState_NotWaiting: {
583  ctx->sender_type = SENDER_SELF;
584  ctx->receive_type = RECEIVE_SKIP;
585  break;
586  }
587 
588  case ReqRtemsEventSendReceive_Pre_ReceiverState_Poll: {
589  ctx->sender_type = SENDER_SELF;
590  ctx->receive_type = RECEIVE_NORMAL;
592  break;
593  }
594 
595  case ReqRtemsEventSendReceive_Pre_ReceiverState_Timeout: {
596  ctx->sender_type = SENDER_SELF_2;
597  ctx->receive_type = RECEIVE_NORMAL;
598  ctx->receive_timeout = 1;
599  break;
600  }
601 
602  case ReqRtemsEventSendReceive_Pre_ReceiverState_Lower: {
603  ctx->sender_type = SENDER_WORKER;
604  ctx->sender_prio = PRIO_HIGH;
605  ctx->receive_type = RECEIVE_NORMAL;
606  break;
607  }
608 
609  case ReqRtemsEventSendReceive_Pre_ReceiverState_Equal: {
610  ctx->sender_type = SENDER_WORKER;
611  ctx->sender_prio = PRIO_NORMAL;
612  ctx->receive_type = RECEIVE_NORMAL;
613  break;
614  }
615 
616  case ReqRtemsEventSendReceive_Pre_ReceiverState_Higher: {
617  ctx->sender_type = SENDER_WORKER;
618  ctx->sender_prio = PRIO_LOW;
619  ctx->receive_type = RECEIVE_NORMAL;
620  break;
621  }
622 
623  case ReqRtemsEventSendReceive_Pre_ReceiverState_Other: {
624  ctx->sender_type = SENDER_WORKER;
625  ctx->sender_prio = PRIO_OTHER;
626  ctx->receive_type = RECEIVE_NORMAL;
627  break;
628  }
629 
630  case ReqRtemsEventSendReceive_Pre_ReceiverState_Intend: {
631  ctx->sender_type = SENDER_INTERRUPT;
632  ctx->receive_type = RECEIVE_INTERRUPT;
633  break;
634  }
635 
636  case ReqRtemsEventSendReceive_Pre_ReceiverState_NA:
637  break;
638  }
639 }
640 
641 static void ReqRtemsEventSendReceive_Pre_Satisfy_Prepare(
643  ReqRtemsEventSendReceive_Pre_Satisfy state
644 )
645 {
646  switch ( state ) {
647  case ReqRtemsEventSendReceive_Pre_Satisfy_All: {
649  break;
650  }
651 
652  case ReqRtemsEventSendReceive_Pre_Satisfy_Any: {
654  break;
655  }
656 
657  case ReqRtemsEventSendReceive_Pre_Satisfy_NA:
658  break;
659  }
660 }
661 
662 static void ReqRtemsEventSendReceive_Post_SendStatus_Check(
664  ReqRtemsEventSendReceive_Post_SendStatus state
665 )
666 {
667  switch ( state ) {
668  case ReqRtemsEventSendReceive_Post_SendStatus_Ok: {
669  T_rsc_success( ctx->send_status );
670  break;
671  }
672 
673  case ReqRtemsEventSendReceive_Post_SendStatus_InvId: {
674  T_rsc( ctx->send_status, RTEMS_INVALID_ID );
675  break;
676  }
677 
678  case ReqRtemsEventSendReceive_Post_SendStatus_NA:
679  break;
680  }
681 }
682 
683 static void ReqRtemsEventSendReceive_Post_ReceiveStatus_Check(
685  ReqRtemsEventSendReceive_Post_ReceiveStatus state
686 )
687 {
688  switch ( state ) {
689  case ReqRtemsEventSendReceive_Post_ReceiveStatus_None: {
690  T_eq_int( ctx->receive_condition_state, RECEIVE_COND_UNKNOWN );
691  T_eq_u32( GetPendingEvents( ctx ), 0 );
692  break;
693  }
694 
695  case ReqRtemsEventSendReceive_Post_ReceiveStatus_Pending: {
696  T_eq_int( ctx->receive_condition_state, RECEIVE_COND_UNKNOWN );
697  T_eq_u32( GetPendingEvents( ctx ), ctx->events_to_send );
698  break;
699  }
700 
701  case ReqRtemsEventSendReceive_Post_ReceiveStatus_Timeout: {
702  T_rsc( ctx->receive_status, RTEMS_TIMEOUT );
703  T_eq_int( ctx->receive_condition_state, RECEIVE_COND_UNKNOWN );
704  T_eq_u32( GetPendingEvents( ctx ), ctx->events_to_send );
705  break;
706  }
707 
708  case ReqRtemsEventSendReceive_Post_ReceiveStatus_Satisfied: {
709  T_rsc( ctx->receive_status, RTEMS_SUCCESSFUL );
710 
711  if ( ctx->receive_type != RECEIVE_NORMAL ) {
712  T_eq_int( ctx->receive_condition_state, RECEIVE_COND_SATSIFIED );
713  }
714 
715  T_eq_u32( ctx->received_events, ctx->events_to_send & INPUT_EVENTS );
716  T_eq_u32( GetPendingEvents( ctx ), ctx->events_to_send & ~INPUT_EVENTS );
717  break;
718  }
719 
720  case ReqRtemsEventSendReceive_Post_ReceiveStatus_Unsatisfied: {
721  T_rsc( ctx->receive_status, RTEMS_UNSATISFIED );
722  T_eq_int( ctx->receive_condition_state, RECEIVE_COND_UNKNOWN );
723  T_eq_u32( GetPendingEvents( ctx ), ctx->events_to_send );
724  break;
725  }
726 
727  case ReqRtemsEventSendReceive_Post_ReceiveStatus_Blocked: {
728  T_eq_int( ctx->receive_condition_state, RECEIVE_COND_UNSATISFIED );
729  T_eq_u32( ctx->unsatisfied_pending, ctx->events_to_send );
730  break;
731  }
732 
733  case ReqRtemsEventSendReceive_Post_ReceiveStatus_NA:
734  break;
735  }
736 }
737 
738 static void ReqRtemsEventSendReceive_Post_SenderPreemption_Check(
740  ReqRtemsEventSendReceive_Post_SenderPreemption state
741 )
742 {
743  T_thread_switch_log *log;
744  size_t i;
745 
746  log = &ctx->thread_switch_log.log;
747 
748  switch ( state ) {
749  case ReqRtemsEventSendReceive_Post_SenderPreemption_No: {
750  /*
751  * There may be a thread switch to the runner thread if the sender thread
752  * was on another scheduler instance.
753  */
754 
755  T_le_sz( log->recorded, 1 );
756 
757  for ( i = 0; i < log->recorded; ++i ) {
758  T_ne_u32( log->events[ i ].executing, ctx->worker_id );
759  T_eq_u32( log->events[ i ].heir, ctx->runner_id );
760  }
761  break;
762  }
763 
764  case ReqRtemsEventSendReceive_Post_SenderPreemption_Yes: {
765  T_eq_sz( log->recorded, 2 );
766  T_eq_u32( log->events[ 0 ].heir, ctx->runner_id );
767  T_eq_u32( log->events[ 1 ].heir, ctx->worker_id );
768  break;
769  }
770 
771  case ReqRtemsEventSendReceive_Post_SenderPreemption_NA:
772  break;
773  }
774 }
775 
776 static void ReqRtemsEventSendReceive_Setup(
778 )
779 {
780  static char task_stack[ RTEMS_MINIMUM_STACK_SIZE ];
781  static const rtems_task_config task_config = {
782  .name = rtems_build_name( 'W', 'O', 'R', 'K' ),
783  .initial_priority = PRIO_LOW,
784  .stack_area = task_stack,
785  .stack_size = sizeof( task_stack ),
786  .initial_modes = RTEMS_DEFAULT_MODES,
787  .attribute_set = RTEMS_DEFAULT_ATTRIBUTES
788  };
789 
791  rtems_task_priority prio;
792 
793  memset( ctx, 0, sizeof( *ctx ) );
795  ctx->runner_id = ctx->runner_thread->Object.id;
796  ctx->worker_wakeup = CreateWakeupSema();
797  ctx->runner_wakeup = CreateWakeupSema();
798 
800  T_rsc_success( sc );
801 
802  #if defined(RTEMS_SMP)
804  T_rsc_success( sc );
805  T_ne_u32( ctx->runner_sched, ctx->other_sched );
806  #endif
807 
808  prio = 0;
809  sc = rtems_task_set_priority( RTEMS_SELF, PRIO_NORMAL, &prio );
810  T_rsc_success( sc );
811  T_eq_u32( prio, PRIO_HIGH );
812 
813  sc = rtems_task_build( &task_config, &ctx->worker_id );
814  T_assert_rsc_success( sc );
815 
816  sc = rtems_task_start( ctx->worker_id, Worker, (rtems_task_argument) ctx );
817  T_assert_rsc_success( sc );
818 }
819 
820 static void ReqRtemsEventSendReceive_Setup_Wrap( void *arg )
821 {
823 
824  ctx = arg;
825  ctx->in_action_loop = false;
826  ReqRtemsEventSendReceive_Setup( ctx );
827 }
828 
829 static void ReqRtemsEventSendReceive_Teardown(
831 )
832 {
834  rtems_task_priority prio;
835 
836  prio = 0;
837  sc = rtems_task_set_priority( RTEMS_SELF, PRIO_HIGH, &prio );
838  T_rsc_success( sc );
839  T_eq_u32( prio, PRIO_NORMAL );
840 
841  if ( ctx->worker_id != 0 ) {
842  sc = rtems_task_delete( ctx->worker_id );
843  T_rsc_success( sc );
844  }
845 
846  DeleteWakeupSema( ctx->worker_wakeup );
847  DeleteWakeupSema( ctx->runner_wakeup );
848 }
849 
850 static void ReqRtemsEventSendReceive_Teardown_Wrap( void *arg )
851 {
853 
854  ctx = arg;
855  ctx->in_action_loop = false;
856  ReqRtemsEventSendReceive_Teardown( ctx );
857 }
858 
859 static size_t ReqRtemsEventSendReceive_Scope( void *arg, char *buf, size_t n )
860 {
862 
863  ctx = arg;
864 
865  if ( ctx->in_action_loop ) {
866  return T_get_scope( ReqRtemsEventSendReceive_PreDesc, buf, n, ctx->pcs );
867  }
868 
869  return 0;
870 }
871 
872 static T_fixture ReqRtemsEventSendReceive_Fixture = {
873  .setup = ReqRtemsEventSendReceive_Setup_Wrap,
874  .stop = NULL,
875  .teardown = ReqRtemsEventSendReceive_Teardown_Wrap,
876  .scope = ReqRtemsEventSendReceive_Scope,
877  .initial_context = &ReqRtemsEventSendReceive_Instance
878 };
879 
880 static const uint8_t ReqRtemsEventSendReceive_TransitionMap[][ 3 ] = {
881  {
882  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
883  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
884  ReqRtemsEventSendReceive_Post_SenderPreemption_No
885  }, {
886  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
887  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
888  ReqRtemsEventSendReceive_Post_SenderPreemption_No
889  }, {
890  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
891  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
892  ReqRtemsEventSendReceive_Post_SenderPreemption_No
893  }, {
894  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
895  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
896  ReqRtemsEventSendReceive_Post_SenderPreemption_No
897  }, {
898  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
899  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
900  ReqRtemsEventSendReceive_Post_SenderPreemption_No
901  }, {
902  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
903  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
904  ReqRtemsEventSendReceive_Post_SenderPreemption_No
905  }, {
906  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
907  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
908  ReqRtemsEventSendReceive_Post_SenderPreemption_No
909  }, {
910  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
911  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
912  ReqRtemsEventSendReceive_Post_SenderPreemption_No
913  }, {
914  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
915  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
916  ReqRtemsEventSendReceive_Post_SenderPreemption_No
917  }, {
918  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
919  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
920  ReqRtemsEventSendReceive_Post_SenderPreemption_No
921  }, {
922  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
923  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
924  ReqRtemsEventSendReceive_Post_SenderPreemption_No
925  }, {
926  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
927  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
928  ReqRtemsEventSendReceive_Post_SenderPreemption_No
929  }, {
930  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
931  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
932  ReqRtemsEventSendReceive_Post_SenderPreemption_No
933  }, {
934  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
935  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
936  ReqRtemsEventSendReceive_Post_SenderPreemption_No
937  }, {
938  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
939  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
940  ReqRtemsEventSendReceive_Post_SenderPreemption_No
941  }, {
942  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
943  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
944  ReqRtemsEventSendReceive_Post_SenderPreemption_No
945  }, {
946  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
947  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
948  ReqRtemsEventSendReceive_Post_SenderPreemption_No
949  }, {
950  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
951  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
952  ReqRtemsEventSendReceive_Post_SenderPreemption_No
953  }, {
954  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
955  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
956  ReqRtemsEventSendReceive_Post_SenderPreemption_No
957  }, {
958  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
959  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
960  ReqRtemsEventSendReceive_Post_SenderPreemption_No
961  }, {
962  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
963  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
964  ReqRtemsEventSendReceive_Post_SenderPreemption_No
965  }, {
966  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
967  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
968  ReqRtemsEventSendReceive_Post_SenderPreemption_No
969  }, {
970  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
971  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
972  ReqRtemsEventSendReceive_Post_SenderPreemption_No
973  }, {
974  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
975  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
976  ReqRtemsEventSendReceive_Post_SenderPreemption_No
977  }, {
978  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
979  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
980  ReqRtemsEventSendReceive_Post_SenderPreemption_No
981  }, {
982  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
983  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
984  ReqRtemsEventSendReceive_Post_SenderPreemption_No
985  }, {
986  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
987  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
988  ReqRtemsEventSendReceive_Post_SenderPreemption_No
989  }, {
990  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
991  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
992  ReqRtemsEventSendReceive_Post_SenderPreemption_No
993  }, {
994  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
995  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
996  ReqRtemsEventSendReceive_Post_SenderPreemption_No
997  }, {
998  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
999  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1000  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1001  }, {
1002  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1003  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1004  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1005  }, {
1006  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1007  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1008  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1009  }, {
1010  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1011  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1012  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1013  }, {
1014  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1015  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1016  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1017  }, {
1018  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1019  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1020  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1021  }, {
1022  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1023  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1024  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1025  }, {
1026  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1027  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1028  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1029  }, {
1030  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1031  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1032  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1033  }, {
1034  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1035  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1036  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1037  }, {
1038  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1039  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1040  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1041  }, {
1042  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1043  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1044  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1045  }, {
1046  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1047  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1048  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1049  }, {
1050  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1051  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1052  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1053  }, {
1054  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1055  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1056  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1057  }, {
1058  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1059  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1060  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1061  }, {
1062  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1063  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1064  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1065  }, {
1066  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1067  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1068  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1069  }, {
1070  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1071  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1072  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1073  }, {
1074  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1075  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1076  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1077  }, {
1078  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1079  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1080  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1081  }, {
1082  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1083  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1084  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1085  }, {
1086  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1087  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1088  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1089  }, {
1090  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1091  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1092  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1093  }, {
1094  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1095  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1096  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1097  }, {
1098  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1099  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1100  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1101  }, {
1102  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1103  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1104  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1105  }, {
1106  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1107  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1108  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1109  }, {
1110  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1111  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1112  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1113  }, {
1114  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1115  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1116  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1117  }, {
1118  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1119  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1120  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1121  }, {
1122  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1123  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1124  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1125  }, {
1126  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1127  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1128  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1129  }, {
1130  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1131  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1132  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1133  }, {
1134  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1135  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1136  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1137  }, {
1138  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1139  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1140  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1141  }, {
1142  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1143  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1144  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1145  }, {
1146  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1147  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1148  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1149  }, {
1150  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1151  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1152  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1153  }, {
1154  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1155  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1156  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1157  }, {
1158  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1159  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1160  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1161  }, {
1162  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1163  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1164  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1165  }, {
1166  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1167  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1168  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1169  }, {
1170  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1171  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1172  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1173  }, {
1174  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1175  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1176  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1177  }, {
1178  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1179  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1180  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1181  }, {
1182  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1183  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1184  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1185  }, {
1186  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1187  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1188  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1189  }, {
1190  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1191  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1192  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1193  }, {
1194  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1195  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1196  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1197  }, {
1198  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1199  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1200  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1201  }, {
1202  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1203  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1204  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1205  }, {
1206  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1207  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1208  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1209  }, {
1210  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1211  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1212  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1213  }, {
1214  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1215  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1216  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1217  }, {
1218  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1219  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1220  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1221  }, {
1222  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1223  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1224  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1225  }, {
1226  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1227  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1228  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1229  }, {
1230  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1231  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1232  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1233  }, {
1234  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1235  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1236  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1237  }, {
1238  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1239  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1240  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1241  }, {
1242  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1243  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1244  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1245  }, {
1246  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1247  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1248  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1249  }, {
1250  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1251  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1252  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1253  }, {
1254  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1255  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1256  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1257  }, {
1258  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1259  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1260  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1261  }, {
1262  ReqRtemsEventSendReceive_Post_SendStatus_InvId,
1263  ReqRtemsEventSendReceive_Post_ReceiveStatus_None,
1264  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1265  }, {
1266  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1267  ReqRtemsEventSendReceive_Post_ReceiveStatus_Pending,
1268  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1269  }, {
1270  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1271  ReqRtemsEventSendReceive_Post_ReceiveStatus_Pending,
1272  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1273  }, {
1274  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1275  ReqRtemsEventSendReceive_Post_ReceiveStatus_Unsatisfied,
1276  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1277  }, {
1278  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1279  ReqRtemsEventSendReceive_Post_ReceiveStatus_Unsatisfied,
1280  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1281  }, {
1282  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1283  ReqRtemsEventSendReceive_Post_ReceiveStatus_Timeout,
1284  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1285  }, {
1286  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1287  ReqRtemsEventSendReceive_Post_ReceiveStatus_Timeout,
1288  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1289  }, {
1290  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1291  ReqRtemsEventSendReceive_Post_ReceiveStatus_Blocked,
1292  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1293  }, {
1294  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1295  ReqRtemsEventSendReceive_Post_ReceiveStatus_Blocked,
1296  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1297  }, {
1298  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1299  ReqRtemsEventSendReceive_Post_ReceiveStatus_Blocked,
1300  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1301  }, {
1302  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1303  ReqRtemsEventSendReceive_Post_ReceiveStatus_Blocked,
1304  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1305  }, {
1306  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1307  ReqRtemsEventSendReceive_Post_ReceiveStatus_Blocked,
1308  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1309  }, {
1310  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1311  ReqRtemsEventSendReceive_Post_ReceiveStatus_Blocked,
1312  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1313  }, {
1314 #if defined(RTEMS_SMP)
1315  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1316  ReqRtemsEventSendReceive_Post_ReceiveStatus_Blocked,
1317  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1318 #else
1319  ReqRtemsEventSendReceive_Post_SendStatus_NA,
1320  ReqRtemsEventSendReceive_Post_ReceiveStatus_NA,
1321  ReqRtemsEventSendReceive_Post_SenderPreemption_NA
1322 #endif
1323  }, {
1324 #if defined(RTEMS_SMP)
1325  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1326  ReqRtemsEventSendReceive_Post_ReceiveStatus_Blocked,
1327  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1328 #else
1329  ReqRtemsEventSendReceive_Post_SendStatus_NA,
1330  ReqRtemsEventSendReceive_Post_ReceiveStatus_NA,
1331  ReqRtemsEventSendReceive_Post_SenderPreemption_NA
1332 #endif
1333  }, {
1334  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1335  ReqRtemsEventSendReceive_Post_ReceiveStatus_Blocked,
1336  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1337  }, {
1338  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1339  ReqRtemsEventSendReceive_Post_ReceiveStatus_Blocked,
1340  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1341  }, {
1342  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1343  ReqRtemsEventSendReceive_Post_ReceiveStatus_Pending,
1344  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1345  }, {
1346  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1347  ReqRtemsEventSendReceive_Post_ReceiveStatus_Pending,
1348  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1349  }, {
1350  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1351  ReqRtemsEventSendReceive_Post_ReceiveStatus_Unsatisfied,
1352  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1353  }, {
1354  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1355  ReqRtemsEventSendReceive_Post_ReceiveStatus_Unsatisfied,
1356  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1357  }, {
1358  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1359  ReqRtemsEventSendReceive_Post_ReceiveStatus_Timeout,
1360  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1361  }, {
1362  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1363  ReqRtemsEventSendReceive_Post_ReceiveStatus_Timeout,
1364  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1365  }, {
1366  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1367  ReqRtemsEventSendReceive_Post_ReceiveStatus_Blocked,
1368  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1369  }, {
1370  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1371  ReqRtemsEventSendReceive_Post_ReceiveStatus_Blocked,
1372  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1373  }, {
1374  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1375  ReqRtemsEventSendReceive_Post_ReceiveStatus_Blocked,
1376  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1377  }, {
1378  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1379  ReqRtemsEventSendReceive_Post_ReceiveStatus_Blocked,
1380  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1381  }, {
1382  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1383  ReqRtemsEventSendReceive_Post_ReceiveStatus_Blocked,
1384  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1385  }, {
1386  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1387  ReqRtemsEventSendReceive_Post_ReceiveStatus_Blocked,
1388  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1389  }, {
1390 #if defined(RTEMS_SMP)
1391  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1392  ReqRtemsEventSendReceive_Post_ReceiveStatus_Blocked,
1393  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1394 #else
1395  ReqRtemsEventSendReceive_Post_SendStatus_NA,
1396  ReqRtemsEventSendReceive_Post_ReceiveStatus_NA,
1397  ReqRtemsEventSendReceive_Post_SenderPreemption_NA
1398 #endif
1399  }, {
1400 #if defined(RTEMS_SMP)
1401  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1402  ReqRtemsEventSendReceive_Post_ReceiveStatus_Blocked,
1403  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1404 #else
1405  ReqRtemsEventSendReceive_Post_SendStatus_NA,
1406  ReqRtemsEventSendReceive_Post_ReceiveStatus_NA,
1407  ReqRtemsEventSendReceive_Post_SenderPreemption_NA
1408 #endif
1409  }, {
1410  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1411  ReqRtemsEventSendReceive_Post_ReceiveStatus_Blocked,
1412  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1413  }, {
1414  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1415  ReqRtemsEventSendReceive_Post_ReceiveStatus_Blocked,
1416  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1417  }, {
1418  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1419  ReqRtemsEventSendReceive_Post_ReceiveStatus_Pending,
1420  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1421  }, {
1422  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1423  ReqRtemsEventSendReceive_Post_ReceiveStatus_Pending,
1424  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1425  }, {
1426  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1427  ReqRtemsEventSendReceive_Post_ReceiveStatus_Unsatisfied,
1428  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1429  }, {
1430  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1431  ReqRtemsEventSendReceive_Post_ReceiveStatus_Satisfied,
1432  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1433  }, {
1434  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1435  ReqRtemsEventSendReceive_Post_ReceiveStatus_Timeout,
1436  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1437  }, {
1438  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1439  ReqRtemsEventSendReceive_Post_ReceiveStatus_Timeout,
1440  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1441  }, {
1442  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1443  ReqRtemsEventSendReceive_Post_ReceiveStatus_Blocked,
1444  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1445  }, {
1446  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1447  ReqRtemsEventSendReceive_Post_ReceiveStatus_Satisfied,
1448  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1449  }, {
1450  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1451  ReqRtemsEventSendReceive_Post_ReceiveStatus_Blocked,
1452  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1453  }, {
1454  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1455  ReqRtemsEventSendReceive_Post_ReceiveStatus_Satisfied,
1456  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1457  }, {
1458  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1459  ReqRtemsEventSendReceive_Post_ReceiveStatus_Blocked,
1460  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1461  }, {
1462  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1463  ReqRtemsEventSendReceive_Post_ReceiveStatus_Satisfied,
1464  ReqRtemsEventSendReceive_Post_SenderPreemption_Yes
1465  }, {
1466 #if defined(RTEMS_SMP)
1467  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1468  ReqRtemsEventSendReceive_Post_ReceiveStatus_Blocked,
1469  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1470 #else
1471  ReqRtemsEventSendReceive_Post_SendStatus_NA,
1472  ReqRtemsEventSendReceive_Post_ReceiveStatus_NA,
1473  ReqRtemsEventSendReceive_Post_SenderPreemption_NA
1474 #endif
1475  }, {
1476 #if defined(RTEMS_SMP)
1477  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1478  ReqRtemsEventSendReceive_Post_ReceiveStatus_Satisfied,
1479  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1480 #else
1481  ReqRtemsEventSendReceive_Post_SendStatus_NA,
1482  ReqRtemsEventSendReceive_Post_ReceiveStatus_NA,
1483  ReqRtemsEventSendReceive_Post_SenderPreemption_NA
1484 #endif
1485  }, {
1486  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1487  ReqRtemsEventSendReceive_Post_ReceiveStatus_Blocked,
1488  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1489  }, {
1490  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1491  ReqRtemsEventSendReceive_Post_ReceiveStatus_Satisfied,
1492  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1493  }, {
1494  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1495  ReqRtemsEventSendReceive_Post_ReceiveStatus_Pending,
1496  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1497  }, {
1498  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1499  ReqRtemsEventSendReceive_Post_ReceiveStatus_Pending,
1500  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1501  }, {
1502  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1503  ReqRtemsEventSendReceive_Post_ReceiveStatus_Satisfied,
1504  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1505  }, {
1506  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1507  ReqRtemsEventSendReceive_Post_ReceiveStatus_Satisfied,
1508  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1509  }, {
1510  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1511  ReqRtemsEventSendReceive_Post_ReceiveStatus_Timeout,
1512  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1513  }, {
1514  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1515  ReqRtemsEventSendReceive_Post_ReceiveStatus_Timeout,
1516  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1517  }, {
1518  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1519  ReqRtemsEventSendReceive_Post_ReceiveStatus_Satisfied,
1520  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1521  }, {
1522  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1523  ReqRtemsEventSendReceive_Post_ReceiveStatus_Satisfied,
1524  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1525  }, {
1526  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1527  ReqRtemsEventSendReceive_Post_ReceiveStatus_Satisfied,
1528  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1529  }, {
1530  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1531  ReqRtemsEventSendReceive_Post_ReceiveStatus_Satisfied,
1532  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1533  }, {
1534  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1535  ReqRtemsEventSendReceive_Post_ReceiveStatus_Satisfied,
1536  ReqRtemsEventSendReceive_Post_SenderPreemption_Yes
1537  }, {
1538  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1539  ReqRtemsEventSendReceive_Post_ReceiveStatus_Satisfied,
1540  ReqRtemsEventSendReceive_Post_SenderPreemption_Yes
1541  }, {
1542 #if defined(RTEMS_SMP)
1543  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1544  ReqRtemsEventSendReceive_Post_ReceiveStatus_Satisfied,
1545  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1546 #else
1547  ReqRtemsEventSendReceive_Post_SendStatus_NA,
1548  ReqRtemsEventSendReceive_Post_ReceiveStatus_NA,
1549  ReqRtemsEventSendReceive_Post_SenderPreemption_NA
1550 #endif
1551  }, {
1552 #if defined(RTEMS_SMP)
1553  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1554  ReqRtemsEventSendReceive_Post_ReceiveStatus_Satisfied,
1555  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1556 #else
1557  ReqRtemsEventSendReceive_Post_SendStatus_NA,
1558  ReqRtemsEventSendReceive_Post_ReceiveStatus_NA,
1559  ReqRtemsEventSendReceive_Post_SenderPreemption_NA
1560 #endif
1561  }, {
1562  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1563  ReqRtemsEventSendReceive_Post_ReceiveStatus_Satisfied,
1564  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1565  }, {
1566  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1567  ReqRtemsEventSendReceive_Post_ReceiveStatus_Satisfied,
1568  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1569  }, {
1570  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1571  ReqRtemsEventSendReceive_Post_ReceiveStatus_Pending,
1572  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1573  }, {
1574  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1575  ReqRtemsEventSendReceive_Post_ReceiveStatus_Pending,
1576  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1577  }, {
1578  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1579  ReqRtemsEventSendReceive_Post_ReceiveStatus_Unsatisfied,
1580  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1581  }, {
1582  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1583  ReqRtemsEventSendReceive_Post_ReceiveStatus_Satisfied,
1584  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1585  }, {
1586  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1587  ReqRtemsEventSendReceive_Post_ReceiveStatus_Timeout,
1588  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1589  }, {
1590  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1591  ReqRtemsEventSendReceive_Post_ReceiveStatus_Timeout,
1592  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1593  }, {
1594  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1595  ReqRtemsEventSendReceive_Post_ReceiveStatus_Blocked,
1596  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1597  }, {
1598  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1599  ReqRtemsEventSendReceive_Post_ReceiveStatus_Satisfied,
1600  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1601  }, {
1602  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1603  ReqRtemsEventSendReceive_Post_ReceiveStatus_Blocked,
1604  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1605  }, {
1606  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1607  ReqRtemsEventSendReceive_Post_ReceiveStatus_Satisfied,
1608  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1609  }, {
1610  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1611  ReqRtemsEventSendReceive_Post_ReceiveStatus_Blocked,
1612  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1613  }, {
1614  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1615  ReqRtemsEventSendReceive_Post_ReceiveStatus_Satisfied,
1616  ReqRtemsEventSendReceive_Post_SenderPreemption_Yes
1617  }, {
1618 #if defined(RTEMS_SMP)
1619  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1620  ReqRtemsEventSendReceive_Post_ReceiveStatus_Blocked,
1621  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1622 #else
1623  ReqRtemsEventSendReceive_Post_SendStatus_NA,
1624  ReqRtemsEventSendReceive_Post_ReceiveStatus_NA,
1625  ReqRtemsEventSendReceive_Post_SenderPreemption_NA
1626 #endif
1627  }, {
1628 #if defined(RTEMS_SMP)
1629  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1630  ReqRtemsEventSendReceive_Post_ReceiveStatus_Satisfied,
1631  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1632 #else
1633  ReqRtemsEventSendReceive_Post_SendStatus_NA,
1634  ReqRtemsEventSendReceive_Post_ReceiveStatus_NA,
1635  ReqRtemsEventSendReceive_Post_SenderPreemption_NA
1636 #endif
1637  }, {
1638  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1639  ReqRtemsEventSendReceive_Post_ReceiveStatus_Blocked,
1640  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1641  }, {
1642  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1643  ReqRtemsEventSendReceive_Post_ReceiveStatus_Satisfied,
1644  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1645  }, {
1646  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1647  ReqRtemsEventSendReceive_Post_ReceiveStatus_Pending,
1648  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1649  }, {
1650  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1651  ReqRtemsEventSendReceive_Post_ReceiveStatus_Pending,
1652  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1653  }, {
1654  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1655  ReqRtemsEventSendReceive_Post_ReceiveStatus_Satisfied,
1656  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1657  }, {
1658  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1659  ReqRtemsEventSendReceive_Post_ReceiveStatus_Satisfied,
1660  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1661  }, {
1662  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1663  ReqRtemsEventSendReceive_Post_ReceiveStatus_Timeout,
1664  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1665  }, {
1666  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1667  ReqRtemsEventSendReceive_Post_ReceiveStatus_Timeout,
1668  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1669  }, {
1670  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1671  ReqRtemsEventSendReceive_Post_ReceiveStatus_Satisfied,
1672  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1673  }, {
1674  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1675  ReqRtemsEventSendReceive_Post_ReceiveStatus_Satisfied,
1676  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1677  }, {
1678  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1679  ReqRtemsEventSendReceive_Post_ReceiveStatus_Satisfied,
1680  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1681  }, {
1682  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1683  ReqRtemsEventSendReceive_Post_ReceiveStatus_Satisfied,
1684  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1685  }, {
1686  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1687  ReqRtemsEventSendReceive_Post_ReceiveStatus_Satisfied,
1688  ReqRtemsEventSendReceive_Post_SenderPreemption_Yes
1689  }, {
1690  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1691  ReqRtemsEventSendReceive_Post_ReceiveStatus_Satisfied,
1692  ReqRtemsEventSendReceive_Post_SenderPreemption_Yes
1693  }, {
1694 #if defined(RTEMS_SMP)
1695  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1696  ReqRtemsEventSendReceive_Post_ReceiveStatus_Satisfied,
1697  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1698 #else
1699  ReqRtemsEventSendReceive_Post_SendStatus_NA,
1700  ReqRtemsEventSendReceive_Post_ReceiveStatus_NA,
1701  ReqRtemsEventSendReceive_Post_SenderPreemption_NA
1702 #endif
1703  }, {
1704 #if defined(RTEMS_SMP)
1705  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1706  ReqRtemsEventSendReceive_Post_ReceiveStatus_Satisfied,
1707  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1708 #else
1709  ReqRtemsEventSendReceive_Post_SendStatus_NA,
1710  ReqRtemsEventSendReceive_Post_ReceiveStatus_NA,
1711  ReqRtemsEventSendReceive_Post_SenderPreemption_NA
1712 #endif
1713  }, {
1714  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1715  ReqRtemsEventSendReceive_Post_ReceiveStatus_Satisfied,
1716  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1717  }, {
1718  ReqRtemsEventSendReceive_Post_SendStatus_Ok,
1719  ReqRtemsEventSendReceive_Post_ReceiveStatus_Satisfied,
1720  ReqRtemsEventSendReceive_Post_SenderPreemption_No
1721  }
1722 };
1723 
1724 static const struct {
1725  uint8_t Skip : 1;
1726  uint8_t Pre_Id_NA : 1;
1727  uint8_t Pre_Send_NA : 1;
1728  uint8_t Pre_ReceiverState_NA : 1;
1729  uint8_t Pre_Satisfy_NA : 1;
1730 } ReqRtemsEventSendReceive_TransitionInfo[] = {
1731  {
1732  0, 0, 1, 1, 1
1733  }, {
1734  0, 0, 1, 1, 1
1735  }, {
1736  0, 0, 1, 1, 1
1737  }, {
1738  0, 0, 1, 1, 1
1739  }, {
1740  0, 0, 1, 1, 1
1741  }, {
1742  0, 0, 1, 1, 1
1743  }, {
1744  0, 0, 1, 1, 1
1745  }, {
1746  0, 0, 1, 1, 1
1747  }, {
1748  0, 0, 1, 1, 1
1749  }, {
1750  0, 0, 1, 1, 1
1751  }, {
1752  0, 0, 1, 1, 1
1753  }, {
1754  0, 0, 1, 1, 1
1755  }, {
1756  0, 0, 1, 1, 1
1757  }, {
1758  0, 0, 1, 1, 1
1759  }, {
1760  0, 0, 1, 1, 1
1761  }, {
1762  0, 0, 1, 1, 1
1763  }, {
1764  0, 0, 1, 1, 1
1765  }, {
1766  0, 0, 1, 1, 1
1767  }, {
1768  0, 0, 1, 1, 1
1769  }, {
1770  0, 0, 1, 1, 1
1771  }, {
1772  0, 0, 1, 1, 1
1773  }, {
1774  0, 0, 1, 1, 1
1775  }, {
1776  0, 0, 1, 1, 1
1777  }, {
1778  0, 0, 1, 1, 1
1779  }, {
1780  0, 0, 1, 1, 1
1781  }, {
1782  0, 0, 1, 1, 1
1783  }, {
1784  0, 0, 1, 1, 1
1785  }, {
1786  0, 0, 1, 1, 1
1787  }, {
1788  0, 0, 1, 1, 1
1789  }, {
1790  0, 0, 1, 1, 1
1791  }, {
1792  0, 0, 1, 1, 1
1793  }, {
1794  0, 0, 1, 1, 1
1795  }, {
1796  0, 0, 1, 1, 1
1797  }, {
1798  0, 0, 1, 1, 1
1799  }, {
1800  0, 0, 1, 1, 1
1801  }, {
1802  0, 0, 1, 1, 1
1803  }, {
1804  0, 0, 1, 1, 1
1805  }, {
1806  0, 0, 1, 1, 1
1807  }, {
1808  0, 0, 1, 1, 1
1809  }, {
1810  0, 0, 1, 1, 1
1811  }, {
1812  0, 0, 1, 1, 1
1813  }, {
1814  0, 0, 1, 1, 1
1815  }, {
1816  0, 0, 1, 1, 1
1817  }, {
1818  0, 0, 1, 1, 1
1819  }, {
1820  0, 0, 1, 1, 1
1821  }, {
1822  0, 0, 1, 1, 1
1823  }, {
1824  0, 0, 1, 1, 1
1825  }, {
1826  0, 0, 1, 1, 1
1827  }, {
1828  0, 0, 1, 1, 1
1829  }, {
1830  0, 0, 1, 1, 1
1831  }, {
1832  0, 0, 1, 1, 1
1833  }, {
1834  0, 0, 1, 1, 1
1835  }, {
1836  0, 0, 1, 1, 1
1837  }, {
1838  0, 0, 1, 1, 1
1839  }, {
1840  0, 0, 1, 1, 1
1841  }, {
1842  0, 0, 1, 1, 1
1843  }, {
1844  0, 0, 1, 1, 1
1845  }, {
1846  0, 0, 1, 1, 1
1847  }, {
1848  0, 0, 1, 1, 1
1849  }, {
1850  0, 0, 1, 1, 1
1851  }, {
1852  0, 0, 1, 1, 1
1853  }, {
1854  0, 0, 1, 1, 1
1855  }, {
1856  0, 0, 1, 1, 1
1857  }, {
1858  0, 0, 1, 1, 1
1859  }, {
1860  0, 0, 1, 1, 1
1861  }, {
1862  0, 0, 1, 1, 1
1863  }, {
1864  0, 0, 1, 1, 1
1865  }, {
1866  0, 0, 1, 1, 1
1867  }, {
1868  0, 0, 1, 1, 1
1869  }, {
1870  0, 0, 1, 1, 1
1871  }, {
1872  0, 0, 1, 1, 1
1873  }, {
1874  0, 0, 1, 1, 1
1875  }, {
1876  0, 0, 1, 1, 1
1877  }, {
1878  0, 0, 1, 1, 1
1879  }, {
1880  0, 0, 1, 1, 1
1881  }, {
1882  0, 0, 1, 1, 1
1883  }, {
1884  0, 0, 1, 1, 1
1885  }, {
1886  0, 0, 1, 1, 1
1887  }, {
1888  0, 0, 1, 1, 1
1889  }, {
1890  0, 0, 1, 1, 1
1891  }, {
1892  0, 0, 1, 1, 1
1893  }, {
1894  0, 0, 1, 1, 1
1895  }, {
1896  0, 0, 1, 1, 1
1897  }, {
1898  0, 0, 1, 1, 1
1899  }, {
1900  0, 0, 1, 1, 1
1901  }, {
1902  0, 0, 1, 1, 1
1903  }, {
1904  0, 0, 1, 1, 1
1905  }, {
1906  0, 0, 1, 1, 1
1907  }, {
1908  0, 0, 1, 1, 1
1909  }, {
1910  0, 0, 1, 1, 1
1911  }, {
1912  0, 0, 1, 1, 1
1913  }, {
1914  0, 0, 1, 1, 1
1915  }, {
1916  0, 0, 1, 1, 1
1917  }, {
1918  0, 0, 1, 1, 1
1919  }, {
1920  0, 0, 1, 1, 1
1921  }, {
1922  0, 0, 1, 1, 1
1923  }, {
1924  0, 0, 0, 0, 1
1925  }, {
1926  0, 0, 0, 0, 1
1927  }, {
1928  0, 0, 0, 0, 0
1929  }, {
1930  0, 0, 0, 0, 0
1931  }, {
1932  0, 0, 0, 0, 0
1933  }, {
1934  0, 0, 0, 0, 0
1935  }, {
1936  0, 0, 0, 0, 0
1937  }, {
1938  0, 0, 0, 0, 0
1939  }, {
1940  0, 0, 0, 0, 0
1941  }, {
1942  0, 0, 0, 0, 0
1943  }, {
1944  0, 0, 0, 0, 0
1945  }, {
1946  0, 0, 0, 0, 0
1947  }, {
1948 #if defined(RTEMS_SMP)
1949  0, 0, 0, 0, 0
1950 #else
1951  1, 0, 0, 0, 0
1952 #endif
1953  }, {
1954 #if defined(RTEMS_SMP)
1955  0, 0, 0, 0, 0
1956 #else
1957  1, 0, 0, 0, 0
1958 #endif
1959  }, {
1960  0, 0, 0, 0, 0
1961  }, {
1962  0, 0, 0, 0, 0
1963  }, {
1964  0, 0, 0, 0, 1
1965  }, {
1966  0, 0, 0, 0, 1
1967  }, {
1968  0, 0, 0, 0, 0
1969  }, {
1970  0, 0, 0, 0, 0
1971  }, {
1972  0, 0, 0, 0, 0
1973  }, {
1974  0, 0, 0, 0, 0
1975  }, {
1976  0, 0, 0, 0, 0
1977  }, {
1978  0, 0, 0, 0, 0
1979  }, {
1980  0, 0, 0, 0, 0
1981  }, {
1982  0, 0, 0, 0, 0
1983  }, {
1984  0, 0, 0, 0, 0
1985  }, {
1986  0, 0, 0, 0, 0
1987  }, {
1988 #if defined(RTEMS_SMP)
1989  0, 0, 0, 0, 0
1990 #else
1991  1, 0, 0, 0, 0
1992 #endif
1993  }, {
1994 #if defined(RTEMS_SMP)
1995  0, 0, 0, 0, 0
1996 #else
1997  1, 0, 0, 0, 0
1998 #endif
1999  }, {
2000  0, 0, 0, 0, 0
2001  }, {
2002  0, 0, 0, 0, 0
2003  }, {
2004  0, 0, 0, 0, 1
2005  }, {
2006  0, 0, 0, 0, 1
2007  }, {
2008  0, 0, 0, 0, 0
2009  }, {
2010  0, 0, 0, 0, 0
2011  }, {
2012  0, 0, 0, 0, 0
2013  }, {
2014  0, 0, 0, 0, 0
2015  }, {
2016  0, 0, 0, 0, 0
2017  }, {
2018  0, 0, 0, 0, 0
2019  }, {
2020  0, 0, 0, 0, 0
2021  }, {
2022  0, 0, 0, 0, 0
2023  }, {
2024  0, 0, 0, 0, 0
2025  }, {
2026  0, 0, 0, 0, 0
2027  }, {
2028 #if defined(RTEMS_SMP)
2029  0, 0, 0, 0, 0
2030 #else
2031  1, 0, 0, 0, 0
2032 #endif
2033  }, {
2034 #if defined(RTEMS_SMP)
2035  0, 0, 0, 0, 0
2036 #else
2037  1, 0, 0, 0, 0
2038 #endif
2039  }, {
2040  0, 0, 0, 0, 0
2041  }, {
2042  0, 0, 0, 0, 0
2043  }, {
2044  0, 0, 0, 0, 1
2045  }, {
2046  0, 0, 0, 0, 1
2047  }, {
2048  0, 0, 0, 0, 0
2049  }, {
2050  0, 0, 0, 0, 0
2051  }, {
2052  0, 0, 0, 0, 0
2053  }, {
2054  0, 0, 0, 0, 0
2055  }, {
2056  0, 0, 0, 0, 0
2057  }, {
2058  0, 0, 0, 0, 0
2059  }, {
2060  0, 0, 0, 0, 0
2061  }, {
2062  0, 0, 0, 0, 0
2063  }, {
2064  0, 0, 0, 0, 0
2065  }, {
2066  0, 0, 0, 0, 0
2067  }, {
2068 #if defined(RTEMS_SMP)
2069  0, 0, 0, 0, 0
2070 #else
2071  1, 0, 0, 0, 0
2072 #endif
2073  }, {
2074 #if defined(RTEMS_SMP)
2075  0, 0, 0, 0, 0
2076 #else
2077  1, 0, 0, 0, 0
2078 #endif
2079  }, {
2080  0, 0, 0, 0, 0
2081  }, {
2082  0, 0, 0, 0, 0
2083  }, {
2084  0, 0, 0, 0, 1
2085  }, {
2086  0, 0, 0, 0, 1
2087  }, {
2088  0, 0, 0, 0, 0
2089  }, {
2090  0, 0, 0, 0, 0
2091  }, {
2092  0, 0, 0, 0, 0
2093  }, {
2094  0, 0, 0, 0, 0
2095  }, {
2096  0, 0, 0, 0, 0
2097  }, {
2098  0, 0, 0, 0, 0
2099  }, {
2100  0, 0, 0, 0, 0
2101  }, {
2102  0, 0, 0, 0, 0
2103  }, {
2104  0, 0, 0, 0, 0
2105  }, {
2106  0, 0, 0, 0, 0
2107  }, {
2108 #if defined(RTEMS_SMP)
2109  0, 0, 0, 0, 0
2110 #else
2111  1, 0, 0, 0, 0
2112 #endif
2113  }, {
2114 #if defined(RTEMS_SMP)
2115  0, 0, 0, 0, 0
2116 #else
2117  1, 0, 0, 0, 0
2118 #endif
2119  }, {
2120  0, 0, 0, 0, 0
2121  }, {
2122  0, 0, 0, 0, 0
2123  }, {
2124  0, 0, 0, 0, 1
2125  }, {
2126  0, 0, 0, 0, 1
2127  }, {
2128  0, 0, 0, 0, 0
2129  }, {
2130  0, 0, 0, 0, 0
2131  }, {
2132  0, 0, 0, 0, 0
2133  }, {
2134  0, 0, 0, 0, 0
2135  }, {
2136  0, 0, 0, 0, 0
2137  }, {
2138  0, 0, 0, 0, 0
2139  }, {
2140  0, 0, 0, 0, 0
2141  }, {
2142  0, 0, 0, 0, 0
2143  }, {
2144  0, 0, 0, 0, 0
2145  }, {
2146  0, 0, 0, 0, 0
2147  }, {
2148 #if defined(RTEMS_SMP)
2149  0, 0, 0, 0, 0
2150 #else
2151  1, 0, 0, 0, 0
2152 #endif
2153  }, {
2154 #if defined(RTEMS_SMP)
2155  0, 0, 0, 0, 0
2156 #else
2157  1, 0, 0, 0, 0
2158 #endif
2159  }, {
2160  0, 0, 0, 0, 0
2161  }, {
2162  0, 0, 0, 0, 0
2163  }
2164 };
2165 
2166 static void ReqRtemsEventSendReceive_Prepare(
2168 )
2169 {
2170  ctx->events_to_send = 0;
2172  ctx->received_events = 0xffffffff;
2173  ctx->receive_option_set = 0;
2175  ctx->sender_type = SENDER_NONE;
2176  ctx->sender_prio = PRIO_NORMAL;
2177  ctx->receive_type = RECEIVE_SKIP;
2178  ctx->receive_condition_state = RECEIVE_COND_UNKNOWN;
2179  ctx->unsatisfied_pending = 0xffffffff;
2180  memset( &ctx->thread_switch_log, 0, sizeof( ctx->thread_switch_log ) );
2181  T_eq_u32( GetPendingEvents( ctx ), 0 );
2183 }
2184 
2185 static void ReqRtemsEventSendReceive_Action(
2187 )
2188 {
2189  if ( ctx->sender_type == SENDER_SELF ) {
2190  SendAction( ctx );
2191  } else if ( ctx->sender_type == SENDER_WORKER ) {
2192  Wakeup( ctx->worker_wakeup );
2193  }
2194 
2195  if ( ctx->receive_type == RECEIVE_NORMAL ) {
2196  ctx->receive_status = ( *ctx->receive )(
2197  INPUT_EVENTS,
2198  ctx->receive_option_set,
2199  ctx->receive_timeout,
2200  &ctx->received_events
2201  );
2202  } else if ( ctx->receive_type == RECEIVE_INTERRUPT ) {
2203  T_interrupt_test_state state;
2204 
2205  state = T_interrupt_test( &InterruptConfig, ctx );
2206  T_eq_int( state, T_INTERRUPT_TEST_DONE );
2207  }
2208 
2209  if ( ctx->sender_type == SENDER_SELF_2 ) {
2210  SendAction( ctx );
2211  } else if ( ctx->sender_type == SENDER_WORKER ) {
2212  rtems_status_code sc;
2213  rtems_task_priority prio;
2214 
2215  Wait( ctx->runner_wakeup );
2216 
2217  prio = 0;
2218  sc = rtems_task_set_priority( ctx->worker_id, PRIO_LOW, &prio );
2219  T_rsc_success( sc );
2220  T_eq_u32( prio, PRIO_HIGH );
2221  }
2222 }
2223 
2224 static void ReqRtemsEventSendReceive_Cleanup(
2226 )
2227 {
2228  rtems_status_code sc;
2229  rtems_event_set events;
2230 
2231  events = 0;
2232  sc = ( *ctx->receive )(
2235  0,
2236  &events
2237  );
2238  if ( sc == RTEMS_SUCCESSFUL ) {
2239  T_quiet_ne_u32( events, 0 );
2240  } else {
2241  T_quiet_rsc( sc, RTEMS_UNSATISFIED );
2242  T_quiet_eq_u32( events, 0 );
2243  }
2244 }
2245 
2246 static T_fixture_node ReqRtemsEventSendReceive_Node;
2247 
2251  rtems_event_set ( *get_pending_events )( Thread_Control * )
2252 )
2253 {
2255  size_t index;
2256 
2257  ctx = T_push_fixture(
2258  &ReqRtemsEventSendReceive_Node,
2259  &ReqRtemsEventSendReceive_Fixture
2260  );
2261 
2262  ctx->send = send;
2263  ctx->receive = receive;
2264  ctx->get_pending_events = get_pending_events;
2265  ctx->in_action_loop = true;
2266  index = 0;
2267 
2268  for (
2269  ctx->pcs[ 0 ] = ReqRtemsEventSendReceive_Pre_Id_InvId;
2270  ctx->pcs[ 0 ] < ReqRtemsEventSendReceive_Pre_Id_NA;
2271  ++ctx->pcs[ 0 ]
2272  ) {
2273  if ( ReqRtemsEventSendReceive_TransitionInfo[ index ].Pre_Id_NA ) {
2274  ctx->pcs[ 0 ] = ReqRtemsEventSendReceive_Pre_Id_NA;
2275  index += ( ReqRtemsEventSendReceive_Pre_Id_NA - 1 )
2276  * ReqRtemsEventSendReceive_Pre_Send_NA
2277  * ReqRtemsEventSendReceive_Pre_ReceiverState_NA
2278  * ReqRtemsEventSendReceive_Pre_Satisfy_NA;
2279  }
2280 
2281  for (
2282  ctx->pcs[ 1 ] = ReqRtemsEventSendReceive_Pre_Send_Zero;
2283  ctx->pcs[ 1 ] < ReqRtemsEventSendReceive_Pre_Send_NA;
2284  ++ctx->pcs[ 1 ]
2285  ) {
2286  if ( ReqRtemsEventSendReceive_TransitionInfo[ index ].Pre_Send_NA ) {
2287  ctx->pcs[ 1 ] = ReqRtemsEventSendReceive_Pre_Send_NA;
2288  index += ( ReqRtemsEventSendReceive_Pre_Send_NA - 1 )
2289  * ReqRtemsEventSendReceive_Pre_ReceiverState_NA
2290  * ReqRtemsEventSendReceive_Pre_Satisfy_NA;
2291  }
2292 
2293  for (
2294  ctx->pcs[ 2 ] = ReqRtemsEventSendReceive_Pre_ReceiverState_NotWaiting;
2295  ctx->pcs[ 2 ] < ReqRtemsEventSendReceive_Pre_ReceiverState_NA;
2296  ++ctx->pcs[ 2 ]
2297  ) {
2298  if ( ReqRtemsEventSendReceive_TransitionInfo[ index ].Pre_ReceiverState_NA ) {
2299  ctx->pcs[ 2 ] = ReqRtemsEventSendReceive_Pre_ReceiverState_NA;
2300  index += ( ReqRtemsEventSendReceive_Pre_ReceiverState_NA - 1 )
2301  * ReqRtemsEventSendReceive_Pre_Satisfy_NA;
2302  }
2303 
2304  for (
2305  ctx->pcs[ 3 ] = ReqRtemsEventSendReceive_Pre_Satisfy_All;
2306  ctx->pcs[ 3 ] < ReqRtemsEventSendReceive_Pre_Satisfy_NA;
2307  ++ctx->pcs[ 3 ]
2308  ) {
2309  if ( ReqRtemsEventSendReceive_TransitionInfo[ index ].Pre_Satisfy_NA ) {
2310  ctx->pcs[ 3 ] = ReqRtemsEventSendReceive_Pre_Satisfy_NA;
2311  index += ( ReqRtemsEventSendReceive_Pre_Satisfy_NA - 1 );
2312  }
2313 
2314  if ( ReqRtemsEventSendReceive_TransitionInfo[ index ].Skip ) {
2315  ++index;
2316  continue;
2317  }
2318 
2319  ReqRtemsEventSendReceive_Prepare( ctx );
2320  ReqRtemsEventSendReceive_Pre_Id_Prepare( ctx, ctx->pcs[ 0 ] );
2321  ReqRtemsEventSendReceive_Pre_Send_Prepare( ctx, ctx->pcs[ 1 ] );
2322  ReqRtemsEventSendReceive_Pre_ReceiverState_Prepare( ctx, ctx->pcs[ 2 ] );
2323  ReqRtemsEventSendReceive_Pre_Satisfy_Prepare( ctx, ctx->pcs[ 3 ] );
2324  ReqRtemsEventSendReceive_Action( ctx );
2325  ReqRtemsEventSendReceive_Post_SendStatus_Check(
2326  ctx,
2327  ReqRtemsEventSendReceive_TransitionMap[ index ][ 0 ]
2328  );
2329  ReqRtemsEventSendReceive_Post_ReceiveStatus_Check(
2330  ctx,
2331  ReqRtemsEventSendReceive_TransitionMap[ index ][ 1 ]
2332  );
2333  ReqRtemsEventSendReceive_Post_SenderPreemption_Check(
2334  ctx,
2335  ReqRtemsEventSendReceive_TransitionMap[ index ][ 2 ]
2336  );
2337  ReqRtemsEventSendReceive_Cleanup( ctx );
2338  ++index;
2339  }
2340  }
2341  }
2342  }
2343 
2344  T_pop_fixture();
2345 }
2346 
rtems_id receiver_id
This member defines the receiver ID used for the event send action.
Definition: tr-event-send.c:98
rtems_id worker_wakeup
This member contains the ID of the semaphore used to wake up the worker task.
rtems_id runner_id
This member contains the ID of the runner task.
rtems_id worker_id
This member contains the task ID of the worker task.
#define RTEMS_NO_WAIT
This option constant indicates that the task does not want to wait on the resource.
Definition: options.h:112
#define RTEMS_DEFAULT_OPTIONS
This option constant is the default option set.
Definition: options.h:79
rtems_id runner_wakeup
This member contains the ID of the semaphore used to wake up the runner task.
#define RTEMS_EVENT_7
This constant defines the bit in the event set associated with event 7.
Definition: event.h:447
rtems_status_code receive_status
This member contains the status of the event receive action.
uint32_t rtems_option
This type is used to represent an option set.
Definition: options.h:121
rtems_status_code send_status
This member contains the status of the event send action.
#define RTEMS_EVENT_5
This constant defines the bit in the event set associated with event 5.
Definition: event.h:427
rtems_option receive_option_set
This member defines the option set used for the event receive action.
rtems_event_set(* get_pending_events)(Thread_Control *)
This member contains a copy of the corresponding ReqRtemsEventSendReceive_Run() parameter.
rtems_id worker_wakeup
This member contains the ID of the semaphore used to wake up the worker task.
rtems_status_code(* send)(rtems_id, rtems_event_set)
This member contains a copy of the corresponding RtemsEventReqSendReceive_Run() parameter.
This status code indicates that the request was not satisfied.
Definition: status.h:154
rtems_name name
This member defines the name of the task.
Definition: tasks.h:138
SenderTypes sender_type
This member defines the sender type to perform the event send action.
Definition: tr-event-send.c:88
#define RTEMS_DEFAULT_ATTRIBUTES
This is the default value for an attribute set.
Definition: attr.h:140
#define rtems_build_name(_C1, _C2, _C3, _C4)
%
Definition: object.h:179
rtems_status_code rtems_task_delete(rtems_id id)
%
Definition: taskdelete.c:24
#define RTEMS_ALL_EVENTS
This constant contains all events in an event set.
Definition: event.h:207
#define RTEMS_EVENT_23
This constant defines the bit in the event set associated with event 23.
Definition: event.h:377
rtems_interval receive_timeout
This member defines the timeout used for the event receive action.
rtems_status_code rtems_scheduler_ident_by_processor(uint32_t cpu_index, rtems_id *id)
Identifies a scheduler instance by a processor index.
static __inline__ Thread_Wait_flags _Thread_Wait_flags_get(const Thread_Control *the_thread)
Gets the thread&#39;s wait flags according to the ATOMIC_ORDER_RELAXED.
Definition: threadimpl.h:2215
rtems_status_code rtems_semaphore_release(rtems_id id)
%
Definition: semrelease.c:28
This structure defines the configuration of a task constructed by rtems_task_construct().
Definition: tasks.h:134
#define RTEMS_NO_TIMEOUT
This clock tick interval constant indicates that the calling task is willing to wait potentially fore...
Definition: types.h:237
rtems_option receive_option_set
This member defines the option set used for the event receive action.
bool in_action_loop
This member indicates if the test action loop is currently executed.
Thread_Control * runner_thread
This member contains the TCB of the runner task.
rtems_status_code rtems_task_start(rtems_id id, rtems_task_entry entry_point, rtems_task_argument argument)
%
Definition: taskstart.c:25
rtems_status_code receive_status
This member contains the status of the event receive action.
static __inline__ struct _Thread_Control * _Thread_Get_executing(void)
Returns the thread control block of the executing thread.
Definition: percpu.h:878
Test context for spec:/req/rtems/event/send-receive test case.
Definition: tr-event-send.c:83
CPU_Uint32ptr rtems_task_argument
This type is used to represent task argument values.
Definition: tasks.h:115
rtems_event_set received_events
This member contains the events received by the event receive action.
uint32_t rtems_task_priority
%
Definition: tasks.h:94
rtems_status_code rtems_semaphore_create(rtems_name name, uint32_t count, rtems_attribute attribute_set, rtems_task_priority priority_ceiling, rtems_id *id)
Creates a semaphore with the specified properties and returns its identifier.
Definition: semcreate.c:34
This status code indicates successful completion.
Definition: status.h:86
rtems_id runner_sched
This member contains the scheduler ID of scheduler used by the runner task.
rtems_id other_sched
This member contains the scheduler ID of another scheduler which is not used by the runner task...
#define RTEMS_SIMPLE_BINARY_SEMAPHORE
This attribute constant indicates that the Classic API Semaphore object shall be a simple binary sema...
Definition: attr.h:292
#define RTEMS_SELF
%
Definition: tasks.h:1046
#define THREAD_WAIT_STATE_READY_AGAIN
Indicates that a condition to end the thread wait occurred.
Definition: threadimpl.h:2163
static __inline__ void _Thread_Wait_flags_set(Thread_Control *the_thread, Thread_Wait_flags flags)
Sets the thread&#39;s wait flags.
Definition: threadimpl.h:2196
rtems_event_set unsatisfied_pending
This member contains the pending events after an event send action which did not satsify the event co...
#define RTEMS_PENDING_EVENTS
This constant used to get the set of pending events in rtems_event_receive().
Definition: event.h:477
rtems_status_code
This enumeration provides status codes for directives of the Classic API.
Definition: status.h:82
unsigned int Thread_Wait_flags
This type is able to contain several flags used to control the wait class and state of a thread...
Definition: thread.h:383
rtems_status_code(* receive)(rtems_event_set, rtems_option, rtems_interval, rtems_event_set *)
This member contains a copy of the corresponding ReqRtemsEventSendReceive_Run() parameter.
rtems_status_code rtems_semaphore_obtain(rtems_id id, rtems_option option_set, rtems_interval timeout)
%
Definition: semobtain.c:51
This status code indicates that an object was in wrong state for the requested operation.
Definition: status.h:160
rtems_id other_sched
This member contains the scheduler ID of another scheduler which is not used by the runner task...
Objects_Control Object
Definition: thread.h:727
#define RTEMS_MINIMUM_STACK_SIZE
%
Definition: tasks.h:973
States_Control current_state
Definition: thread.h:749
rtems_status_code rtems_task_set_priority(rtems_id id, rtems_task_priority new_priority, rtems_task_priority *old_priority)
%
#define THREAD_WAIT_STATE_BLOCKED
Indicates that the thread completed the blocking operation.
Definition: threadimpl.h:2156
ReceiveConditionStates receive_condition_state
This member contains the event conditon state of the receiver task after the event send action...
void ReqRtemsEventSendReceive_Run(rtems_status_code(*send)(rtems_id, rtems_event_set), rtems_status_code(*receive)(rtems_event_set, rtems_option, rtems_interval, rtems_event_set *), rtems_event_set(*get_pending_events)(Thread_Control *))
Runs the parameterized test case.
ReceiveTypes receive_type
This member contains the scheduler ID of the runner task.
Priorities sender_prio
This member defines the sender task priority.
T_thread_switch_log_4 thread_switch_log
This member contains the thread switch log.
rtems_event_set events_to_send
This member defines the events to send for the event send action.
rtems_status_code(* receive)(rtems_event_set, rtems_option, rtems_interval, rtems_event_set *)
This member contains a copy of the corresponding RtemsEventReqSendReceive_Run() parameter.
#define RTEMS_EVENT_ANY
This option constant indicates that the task wishes to wait until at least one of the events of inter...
Definition: options.h:99
Inlined Routines Associated with Thread State Information.
Definition: test.h:61
Thread_Control * runner_thread
This member contains the TCB of the runner task.
T_thread_switch_log_4 thread_switch_log
This member contains the thread switch log.
rtems_event_set(* get_pending_events)(Thread_Control *)
This member contains a copy of the corresponding RtemsEventReqSendReceive_Run() parameter.
rtems_status_code rtems_task_get_scheduler(rtems_id task_id, rtems_id *scheduler_id)
%
Watchdog_Interval rtems_interval
This type is used to represent clock tick intervals.
Definition: types.h:90
Priorities sender_prio
This member defines the sender task priority.
Definition: tr-event-send.c:93
This status code indicates that an object identifier was invalid.
Definition: status.h:106
Objects_Id rtems_id
Values of this type identify an RTEMS object.
Definition: types.h:99
Test context for spec:/rtems/event/req/send-receive test case.
rtems_event_set events_to_send
This member defines the events to send for the event send action.
#define RTEMS_DEFAULT_MODES
This task mode constant represents the default mode set.
Definition: modes.h:137
rtems_id runner_sched
This member contains the scheduler ID of scheduler used by the runner task.
This status code indicates that a blocking directive timed out.
Definition: status.h:117
rtems_event_set received_events
This member contains the events received by the event receive action.
Inlined Routines from the Thread Handler.
#define THREAD_WAIT_FLAGS_INITIAL
The initial thread wait flags value set by _Thread_Initialize().
Definition: threadimpl.h:2137
rtems_id runner_id
This member contains the ID of the runner task.
#define STATES_WAITING_FOR_EVENT
Definition: statesimpl.h:54
rtems_status_code send_status
This member contains the status of the event send action.
rtems_status_code rtems_task_set_scheduler(rtems_id task_id, rtems_id scheduler_id, rtems_task_priority priority)
%
rtems_id runner_wakeup
This member contains the ID of the semaphore used to wake up the runner task.
uint32_t rtems_event_set
This integer type can hold an event set of up to 32 events represented as a bit field.
Definition: event.h:94
rtems_id receiver_id
This member defines the receiver ID used for the event send action.
rtems_status_code(* send)(rtems_id, rtems_event_set)
This member contains a copy of the corresponding ReqRtemsEventSendReceive_Run() parameter.
rtems_interval receive_timeout
This member defines the timeout used for the event receive action.
rtems_status_code rtems_semaphore_delete(rtems_id id)
%
Definition: semdelete.c:24
#define THREAD_WAIT_CLASS_EVENT
Indicates that the thread waits for an event.
Definition: threadimpl.h:2173
#define THREAD_WAIT_STATE_INTEND_TO_BLOCK
Indicates that the thread begins with the blocking operation.
Definition: threadimpl.h:2151
rtems_event_set unsatisfied_pending
This member contains the pending events after an event send action which did not satsify the event co...
size_t pcs[4]
This member defines the pre-condition states for the next action.
#define RTEMS_WAIT
This option constant indicates that the task wants to wait on the resource.
Definition: options.h:134
ReceiveConditionStates receive_condition_state
This member contains the event conditon state of the receiver task after the event send action...
#define RTEMS_EVENT_ALL
This option constant indicates that the task wishes to wait until all events of interest are availabl...
Definition: options.h:89
Objects_Id id
Definition: objectdata.h:43