libevl/eshi
Philippe Gerum d04d98df91 lib/proxy: fix error code propagation 2019-11-13 12:02:32 +01:00
..
Makefile lib, eshi: move version string to evl_version 2019-11-13 10:00:39 +01:00
README.md eshi: EVL shim library 2019-08-09 19:07:39 +02:00
clock.c lib/clock: rename evl_sleep() to evl_sleep_until() 2019-10-19 20:41:11 +02:00
event.c lib/event: introduce compact creation calls 2019-08-19 12:25:18 +02:00
flags.c lib/flags: introduce compact creation calls 2019-08-19 10:22:49 +02:00
heap.c eshi: EVL shim library 2019-08-09 19:07:39 +02:00
init.c lib, eshi: move version string to evl_version 2019-11-13 10:00:39 +01:00
internal.h eshi: EVL shim library 2019-08-09 19:07:39 +02:00
mutex.c eshi/mutex: return zero on get_ceiling() in non-PP case 2019-08-24 15:47:58 +02:00
poll.c eshi: EVL shim library 2019-08-09 19:07:39 +02:00
proxy.c lib/proxy: fix error code propagation 2019-11-13 12:02:32 +01:00
sched.c eshi: EVL shim library 2019-08-09 19:07:39 +02:00
sem.c lib/sem: introduce compact creation calls 2019-08-19 10:22:49 +02:00
thread.c eshi: EVL shim library 2019-08-09 19:07:39 +02:00
timer.c eshi: EVL shim library 2019-08-09 19:07:39 +02:00
version.c lib, eshi: move version string to evl_version 2019-11-13 10:00:39 +01:00

README.md

== PURPOSE of libeshi

The EVL shim library mimics the behavior of the original EVL API based on plain POSIX calls from the native *libc, which does not require the EVL core to be enabled in the host kernel. It is useful when the real-time guarantees delivered by the EVL core are not required for quick prototyping or debugging application code.

== USAGE

To build against the EVL shim library, you need to update a couple of settings from the Makefile building your application as follows (*):

CPPFLAGS/CFLAGS:

  • Replace -I$(prefix)/include by -I$(prefix)/include/eshi

LDFLAGS:

  • Replace -levl by -leshi

For instance:

(CC) -o app app.c -I(prefix)/include/eshi -L$(prefix)/lib -leshi -lpthread -lrt

(*) $(prefix) is the installation root of libevl (e.g. /usr/evl).

== LIMITATIONS

This API supports process-local services only. The resources/objects it creates cannot be shared between processes.

The following calls are not supported:

evl_peek_flags evl_peek_sem evl_new_xbuf evl_open_mutex evl_open_event evl_open_flags evl_open_sem

== VARIATION(S)

evl_poll: POLLOUT is always set for evl_flags. Unlike with the native libevl API, this condition cannot be monitored for detecting event consumption by the receiver side, i.e. waiting for the value to be cleared upon a successful call to evl_wait*_flags.