- 05 Jun, 2021 22 commits
-
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Requires a couple of ABI changes. Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Callers of the out-of-band polling interface are subject to spurious wakeups by design, which means that they have to handle the case where a signaled condition goes stale before execution resumes. On the other hand, we certainly don't want to miss a wake up event in case the condition is met again in the meantime (i.e. transient true->false->true event), therefore making provisions for clearing such event is asking for trouble. Since the caller has to check for spurious wake ups, we should wake it up as soon as a false->true transition is observed. Therefore, evl_clear_poll_events() is deemed useless and even error-prone: drop it. Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Sending pollable signals is most likely done from a context which cannot immediately reschedule, but will certainly do so later on (e.g. IRQ handler). There is no point in triggering a reschedule in this overwhelmingly frequent case. Rare callers which might want to reschedule immediately after the events are posted must do so by calling evl_schedule() explicitly (none in tree yet). Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Elements: -------- Basic features that cant be implemented from userland sharable between processes. Threads, monitors, xbufs and clocks -> every instance is backed by a device in /dev/evl which allows sharing. Utilities --------- poll is a private-process construct; all poll groups are obtained from a single multiplex device: /dev/evl/poll. They cannot be shared. timers are in essence timerfd directly obtained from clocks, they don't exist on their own, and are process-local too. proxies are backed by a device in /dev/evl to allow for sharing, but this is not something essential. Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
There is no upside in sharing pollers between application processes, since file descriptors are process-local handles in essence. Therefore pollers are process-local utilities, so we don't need them to be visible from the file system. Downgrade the poller element to a plain single device from the factory. Each open instance of such device is a polling channel. At this chance, do a general rename from poller to poll, to match commonly accepted naming. Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
No upside in measuring timeout delays differently than referring to EVL_CLOCK_MONOTONIC. Let's converge to epoll_wait() in this respect. Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Pollers may watch pollers, make sure we don't get a cyclic dependency graph. Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
For consistency with the base type being referred to (struct evl_file). Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-