- 03 May, 2021 40 commits
-
-
Philippe Gerum authored
tp_control() did not receive the proper input on tp_install requests, neither did it return the proper information on tp_get. Great, fix the mess. 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>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Upon requests involving SCHED_TP, SCHED_QUOTA policies which have been compiled out, we should send -EOPNOTSUPP instead of -EINVAL to the caller, so that we can distinguish between lack of kernel support from mere invalid argument issue. Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
This code illustrates the usage of the out-of-band SPI transfer API in kernel space, interfacing with the EVL core for synchronizing on transfer completion events. It extends the SPIDEV ioctl() interface with a few control requests for running out-of-band SPI transfers, exporting the I/O buffer to applications via mmap() support. 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
Adapt commit #133e996 from https://git.xenomai.org/xenomai fixing how we recalculate the time budget of the running thread for the updated group, for such thread only. Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Compat mode (CONFIG_COMPAT) allows application binaries built for a 32bit architecture to issue system calls to a 64bit kernel which implements such compatibility support. This work builds on the y2038 sanitization which eliminated the remaining assumptions about the size of native long integers in the same move. Although these changes enable armv7 binaries to call an armv8 kernel, most of them are architecture-independent, and follow this pattern: - .compat_ioctl and .compat_oob_ioctl handlers are added to all file operations structs, pointing at compat_ptr_ioctl() compat_ptr_oob_ioctl() respectively. - all pointers passed by applications within ioctl() argument structs are conveyed as generic 64bit values. These changes mandate upgrading the ABI revision to #20. Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
EVL uapi headers are pulled unmodified into user code, make sure we can use them in C++ applications. NOTE: those changes do NOT affect the ABI. Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
We want the pending output to be drained upon disposal, so that write operations we have already accepted do complete properly. 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
All timespec passed from/to user-space are now y2038-compliant (i.e. tv_sec is 64bit wide), using the __evl_timespec and __evl_itimerspec type definitions at kernel boundary. Conversions happen back and forth between these types and the timespec64 and itimerspec64 types used internally. Invariant: __evl_timespec and __evl_itimerspec are compatible bitwise with __kernel_timespec and __kernel_itimerspec respectively. libevl does assume so. Also: - The sanitization fixes the ABI so that timespec and itimerspec structs are always passed by address, ensuring -EFAULT on invalid pointer received from the user, instead of putting the latter at risk of SIGSEGV by forcing it to copy/dereference these arguments. - what EVL_CLKIOC_ADJ_TIME should do was never specified in the context of an EVL clock, and no defined use case ever existed. However, this service caused a y2038 problem due to the legacy timex struct argument. This service was removed from the ABI. Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Plan for future support of backward compatibily features, which would allow the core to honor multiple ABI revisions. To this end, the core identification structure now advertises a range of supported ABI revisions to user-space, i.e. [EVL_ABI_BASE..EVL_ABI_LEVEL] inclusive. 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
We have to make sure that an oob thread attempting to lock a busy stax receives the STAGE_LOCKED notification asap, once it has obtained the lock. Forcibly kick such thread out of the oob stage if a WOSX notification is due, so that it will receive SIGDEBUG asap. Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Conforming to upstream changes, struct __kernel_timex should be used instead. struct timex remains defined on the user-space side of the ABI exclusively. Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Send an INBAND_TASK_RETUSER event to force a user thread to call back so that we can switch it to out-of-band context. Drop SIGEVL_ACTION_HOME which is now useless. Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
A thread undergoing the SCHED_WEAK policy should resume back in-band upon return from the RETUSER event unless the inband_disable count bars it, once it has transitioned through the out-of-band context. Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Not a bug fix so far but a clarification of the interface. Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Synchronous breakpoints make sure to keep a ptrace-stepped thread synchronized with its siblings from the same process running in the background, as follows: - as soon as a ptracer (e.g. gdb) regains control over a thread which just hit a breakpoint or received SIGINT, sibling threads from the same process which run out-of-band are immediately frozen. - all sibling threads which have been frozen are set to wait on a common barrier before they can be released. Such release happens once all of them have joined the barrier in out-of-band context, after the (single-)stepped thread resumed. Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
In essence, clone devices are no actual elements but virtual objects to create them, although both kinds belong to the same device class. As a result, clone devices have no data associated to their attributes visible from /sysfs. Deny show/store requests on these attributes, returning -EIO on error. Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Sending a pulse to a flag means flushing it with a broadcast signal, so that all waiters unblock regardless of the actual value of that flag. Make this obvious from the implementation. 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>
-