49 lines
1.3 KiB
Markdown
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.
|