Ejemplo n.º 1
0
static void event(void)
{
#if MQX_USE_EVENTS
   IF_TINIEST(pointer  handle=0);
   IF_TINIEST(_mqx_uint value=0);

   IF_SMALL(_event_create_component(1, 1, 1));
   IF_SMALL(_event_create_fast(1));
   IF_SMALL(_event_create_fast_auto_clear(1));
   IF_SMALL(_event_open("e", &handle));
   IF_SMALL(_event_set(handle, 0));
   IF_SMALL(_event_clear(handle, 0));
   IF_SMALL(_event_wait_all(handle, 0, 0));

   IF_TYPICAL(_event_close(handle));
   IF_TYPICAL(_event_create("e"));
   IF_MAX(_event_create_auto_clear("e"));
   IF_TYPICAL(_event_destroy("e"));
   IF_MAX(_event_destroy_fast(1));
   IF_MAX(_event_get_value(handle, &value));
   IF_MAX(_event_get_wait_count(handle));
   IF_MAX(_event_open_fast(1, &handle));
   IF_MAX(_event_test(&handle));
   IF_MAX(_event_wait_all_for(handle, 0, NULL));
   IF_TYPICAL(_event_wait_all_ticks(handle, 0, 0));
   IF_MAX(_event_wait_all_until(handle, 0, NULL));
   IF_MAX(_event_wait_any(handle, 0, 0));
   IF_MAX(_event_wait_any_for(handle, 0, NULL));
   IF_TYPICAL(_event_wait_any_ticks(handle, 0, 0));
   IF_MAX(_event_wait_any_until(handle, 0, NULL));
#endif

}
Ejemplo n.º 2
0
int _automaton_get_value (ft_thread_t self,
			  ft_event_t event,
			  int index,
			  void **result)
{
   ft_scheduler_t sched;

   _VERIFY_EVENT_INST (event);
   
   sched = _get_thread_scheduler (self);
   if (_get_thread_deadline (self) == 1) {
      _set_thread_deadline (self,-1);
      result = NULL;
      return ENEXT;      
   }
   if (_event_get_value (event,index,result)) {
      _set_thread_deadline (self,-1);
      return OK;
   }
   if (_get_scheduler_eoi (sched) == 1) {
      _set_thread_deadline (self,1);
      _set_thread_status (self,_COOP);
      return _STAY;
   }
   _set_thread_status (self,_CONT);
   return _STAY;
}