- 30 Apr, 2020 1 commit
-
-
Philippe Gerum authored
Since ABI 23, the core provides the new observable element, which enables the observer design pattern. Any EVL thread is in and of itself an observable which can be monitored for events too. As a by-product, the poll interface can now be given a user-defined opaque data when subscribing file descriptors to poll elements, which the core passes back on return to evl_poll(). Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
- 18 Apr, 2020 1 commit
-
-
Philippe Gerum authored
Since core ABI 21, users can decide whether a new element should be made public or private depending on the value of clone flags added to the new long form of all element creation calls, i.e. evl_create_*(). All evl_new_*() calls become a shorthand for their respective long form with reasonable default arguments, including private visibility. As a shorthand, libevl also interprets a slash character leading the name argument passed to these services as an implicit request for creating a public element. In other words, this is the same as passing EVL_CLONE_PUBLIC in the clone flags. A public element appears as a cdev in the /dev/evl hierarchy, which means that it is visible to other processes, which may share it. On the contrary, a private element is only known from the process creating it, although it does appear in the /sysfs hierarchy regardless. e.g.: efd = evl_attach_self("/visible-thread"); total 0 crw-rw---- 1 root root 248, 1 Apr 17 11:59 clone crw-rw---- 1 root root 246, 0 Apr 17 11:59 visible-thread or, efd = evl_attach_self("private-thread"); total 0 crw-rw---- 1 root root 248, 1 Apr 17 11:59 clone Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
- 28 Mar, 2020 1 commit
-
-
Philippe Gerum authored
These changes fix up the argument passed to the core system calls in order to abide by the new ABI allowing 32bit applications to issue requests to 64bit kernels. Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
- 26 Mar, 2020 1 commit
-
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
- 19 Mar, 2020 1 commit
-
-
Philippe Gerum authored
This set of changes makes libevl y2038-safe by switching to the ABI revision 19 of the EVL core, which generalizes the use of a 64bit timespec type. These changes also go a long way preparing for the upcoming mixed 32/64 ABI support (aka compat mode). The changes only affect the internal interface between libevl and the kernel, not the API. Nevertheless, the API was bumped to revision 10 with the removal of the evl_adjust_clock() service, which neither had proper specification nor defined use case currently, but would stand in the way of the sanitization work for y2038. At any rate, any future service implementing some sort of EVL clock adjustment should definitely not depend on the legacy struct timex which is y2038-unsafe. Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
- 07 Nov, 2019 1 commit
-
-
Philippe Gerum authored
-
- 19 Aug, 2019 1 commit
-
-
Philippe Gerum authored
Zero-initialized semaphores timed on the monotonic clock is the most common form used by applications. Allow people to write more compact code by providing creation calls and static initializers aimed at building these directly: - evl_new_sem(), EVL_SEM_INITIALIZER() for zero-init semaphores timed on the monotonic clock. - evl_new_sem_any() and EVL_SEM_ANY_INITIALIZER() usable for any initialization form, specifying the clock and init value.
-
- 21 Jul, 2019 1 commit
-
-
Philippe Gerum authored
-EINVAL and a negative (depleted) semaphore count value might be conflicting. Retrieve the count value by address instead.
-
- 24 Jun, 2019 1 commit
-
-
Philippe Gerum authored
-
- 19 Jun, 2019 1 commit
-
-
Philippe Gerum authored
-
- 16 Jun, 2019 1 commit
-
-
Philippe Gerum authored
Some creation calls have to return the file descriptor of the new element because there is no in-memory descriptor associated with the latter where we could stick the former. So for consistency, just have all evl_new_*() calls return the file descriptor referring to the new element. Likewise, all evl_open_*() calls now do the same.
-
- 14 Jun, 2019 1 commit
-
-
Philippe Gerum authored
oob_ioctl() already switches the caller to async cancelability, there is no need for the caller to do this.
-
- 13 Jun, 2019 1 commit
-
-
Philippe Gerum authored
Improve consistency in naming and disambiguate some calls.
-
- 12 Jun, 2019 1 commit
-
-
Philippe Gerum authored
Event flags are boolean conditions represented by a single bit, grouped in 32bit words. All bits from a group are initially set to zero. An event flag group is a lightweight notification mechanism. The application can send bitmasks to raise individual bits from the group (i.e. group_value |= bits), or wait for the group to have at least one bit set for satisfying the request. In the latter case, the group value is read then cleared atomically, and the collected bits are returned to the thread heading the wait queue.
-
- 11 Jun, 2019 1 commit
-
-
Philippe Gerum authored
-
- 28 Mar, 2019 1 commit
-
-
Jorge Ramirez-Ortiz authored
-
- 14 Mar, 2019 1 commit
-
-
Philippe Gerum authored
-
- 10 Mar, 2019 1 commit
-
-
Philippe Gerum authored
-
- 08 Mar, 2019 1 commit
-
-
Philippe Gerum authored
-
- 04 Mar, 2019 10 commits
-
-
Philippe Gerum authored
-
Philippe Gerum authored
At this chance, the API is simplified in the following ways: - we don't provide pulse-mode semaphores anymore. Those should be provided by a higher level API as flags for instance (ungated monitors would support that easily by using the signedness bit of an event monitor value as such flag). - threads now always wait by priority order. The rarely used FIFO wait mode was dropped. Those changes make the @flags parameter to evl_new_sem() useless, which allows to remove it from the signature.
-
Philippe Gerum authored
-
Philippe Gerum authored
-
Philippe Gerum authored
-
Philippe Gerum authored
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-