libevl function index

Thread services

Function name EVL Switch1 non-EVL2
evl_attach_thread() N/A
evl_attach_self() N/A
evl_detach_thread()
evl_detach_self()
evl_demote_thread()
evl_get_self()
evl_get_state()
evl_get_thread_mode()
evl_is_inband()
evl_set_thread_mode()
evl_subscribe()
evl_switch_inband()
evl_switch_oob()
evl_unblock_thread()
evl_unsubscribe()

Scheduler services

Function name EVL Switch1 non-EVL2
evl_get_schedattr()
evl_set_schedattr()
evl_control_sched()
evl_get_cpustate()
evl_yield()

Clock services

Function name EVL Switch1 non-EVL2
evl_new_clock()
evl_read_clock()
evl_set_clock()
evl_get_clock_resolution()
evl_sleep_until()
evl_udelay()

Timer services

Function name EVL Switch1 non-EVL2
evl_new_timer()
evl_set_timer()
evl_get_timer()

Mutex services

Function name EVL Switch1 non-EVL2
evl_create_mutex()
evl_new_mutex()
evl_open_mutex()
evl_lock_mutex() 4
evl_trylock_mutex() 4
evl_timedlock_mutex() 4
evl_unlock_mutex() 3
evl_get_mutex_ceiling()
evl_set_mutex_ceiling()
evl_close_mutex()

Event services

Function name EVL Switch1 non-EVL2
evl_create_event()
evl_new_event()
evl_open_event()
evl_wait_event() 4
evl_timedwait_event() 4
evl_signal_event() 4
evl_signal_thread() 4
evl_broadcast_event() 4
evl_close_event()

Flags services

Function name EVL Switch1 non-EVL2
evl_create_flags()
evl_new_flags()
evl_open_flags()
evl_wait_flags() 4
evl_timedwait_flags() 4
evl_trywait_flags() 4
evl_peek_flags()
evl_post_flags() 4
evl_close_flags()

Semaphore services

Function name EVL Switch1 non-EVL2
evl_create_sem()
evl_new_sem()
evl_open_sem()
evl_get_sem() 4
evl_timedget_sem() 4
evl_tryget_sem() 4
evl_peek_sem()
evl_put_sem() 4
evl_close_sem()

Observable services

Function name EVL Switch1 non-EVL2
evl_create_observable()
evl_new_observable()
evl_read_observable() 5
evl_update_observable() 5

Polling services

Function name EVL Switch1 non-EVL2
evl_new_poll()
evl_add_pollfd()
evl_mod_pollfd()
evl_del_pollfd()
evl_poll_sem()
evl_timedpoll_sem()

Memory heap services

Function name EVL Switch1 non-EVL2
evl_init_heap()
evl_extend_heap()
evl_alloc_block() 3
evl_free_block() 3
evl_check_block() 3
evl_destroy_heap()
evl_heap_raw_size()
evl_heap_size()
evl_heap_used()

Proxy services

Function name EVL Switch1 non-EVL2
evl_create_proxy()
evl_new_proxy()
evl_send_proxy()
evl_vprint_proxy()
evl_print_proxy()
evl_printf()

Cross-buffer services

Function name EVL Switch1 non-EVL2
evl_create_xbuf()
evl_new_xbuf()

I/O services

Function name EVL Switch1 non-EVL2
oob_read()
oob_write()
oob_ioctl()

Tube services

Function name EVL Switch1 non-EVL2
evl_init_tube()
evl_send_tube()
evl_receive_tube()
evl_get_tube_size()
evl_init_tube_rel()
evl_send_tube_rel()
evl_receive_tube_rel()
evl_get_tube_size_rel()

Misc routines

Function name EVL Switch1 non-EVL2
evl_init() N/A
evl_get_version()
evl_sigdebug_handler() N/A

1 Defines the stage switching behavior for EVL threads:

  • △ the core may promote the caller to the out-of-band execution stage if running in-band at the time of the call.

  • ▽ the core may demote the caller to the in-band execution stage if running out-of-band at the time of the call.

  • ⚊ the call does not entail any stage switch.

2 Whether this call is also available to non-EVL threads, i.e. threads not attached to the EVL core.

3 Except if the caller undergoes the SCHED_WEAK policy, in which case it is switched back to in-band mode if it has released the last EVL mutex it holds by the end of the call.

4 As an exception, if this synchronization object was statically initialized (EVL_*_INITIALIZER()), this routine may switch the caller to the in-band stage in order to finalize the construction before carrying out the requested operation. This is required only once in the object’s lifetime.

5 If the caller undergoes the SCHED_WEAK policy, or is not attached to the core, this system call is directly handled from the in-band stage. In all other cases, the caller may be switched to the out-of-band execution stage.


Last modified: Thu, 30 Apr 2020 15:53:14 CEST