libevl/eshi/README.md

49 lines
1.3 KiB
Markdown

== 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
The observable API.
== 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.