On 08.01.21 10:49, Philippe Gerum wrote: > > Jan Kiszka <[email protected]> writes: > >> On 08.01.21 08:08, Jan Kiszka via Xenomai wrote: >>> On 07.01.21 19:27, Jan Kiszka via Xenomai wrote: >>>> On 07.01.21 18:56, Jan Kiszka via Xenomai wrote: >>>>> On 17.12.20 19:02, Philippe Gerum wrote: >>>>>> From: Philippe Gerum <[email protected]> >>>>>> >>>>>> Although there are significant commonalities between the I-pipe and >>>>>> Dovetail when it comes to dealing with synchronous kernel events, >>>>>> there is no strict 1:1 mapping between the two kernel interfaces. >>>>>> >>>>>> As an initial step, move all the code handling the kernel events to >>>>>> the I-pipe section. We may exploit commonalities between the I-pipe >>>>>> and Dovetail in this area as we gradually merge support for the >>>>>> latter. >>>>>> >>>>>> No functional change is introduced. >>>>>> >>>>>> Signed-off-by: Philippe Gerum <[email protected]> >>>>>> --- >>>>>> .../cobalt/kernel/ipipe/pipeline/kevents.h | 31 + >>>>>> kernel/cobalt/ipipe/Makefile | 4 +- >>>>>> kernel/cobalt/ipipe/kevents.c | 860 ++++++++++++++++++ >>>>>> kernel/cobalt/posix/process.c | 846 +---------------- >>>>>> kernel/cobalt/posix/process.h | 4 + >>>>>> kernel/cobalt/posix/signal.c | 5 + >>>>>> kernel/cobalt/posix/signal.h | 2 + >>>>>> kernel/cobalt/thread.c | 4 +- >>>>>> kernel/cobalt/trace/cobalt-core.h | 12 +- >>>>>> 9 files changed, 930 insertions(+), 838 deletions(-) >>>>>> create mode 100644 include/cobalt/kernel/ipipe/pipeline/kevents.h >>>>>> create mode 100644 kernel/cobalt/ipipe/kevents.c >>>>>> >>>>>> diff --git a/include/cobalt/kernel/ipipe/pipeline/kevents.h >>>>>> b/include/cobalt/kernel/ipipe/pipeline/kevents.h >>>>>> new file mode 100644 >>>>>> index 000000000..30425a96b >>>>>> --- /dev/null >>>>>> +++ b/include/cobalt/kernel/ipipe/pipeline/kevents.h >>>>>> @@ -0,0 +1,31 @@ >>>>>> +/* >>>>>> + * SPDX-License-Identifier: GPL-2.0 >>>>>> + * >>>>>> + * Copyright (C) 2019 Philippe Gerum <[email protected]> >>>>>> + */ >>>>>> + >>>>>> +#ifndef _COBALT_KERNEL_IPIPE_KEVENTS_H >>>>>> +#define _COBALT_KERNEL_IPIPE_KEVENTS_H >>>>>> + >>>>>> +struct cobalt_process; >>>>>> +struct cobalt_thread; >>>>>> + >>>>>> +static inline >>>>>> +int pipeline_attach_process(struct cobalt_process *process) >>>>>> +{ >>>>>> + return 0; >>>>>> +} >>>>>> + >>>>>> +static inline >>>>>> +void pipeline_detach_process(struct cobalt_process *process) >>>>>> +{ } >>>>>> + >>>>>> +int pipeline_prepare_current(void); >>>>>> + >>>>>> +void pipeline_attach_current(struct xnthread *thread); >>>>>> + >>>>>> +int pipeline_trap_kevents(void); >>>>>> + >>>>>> +void pipeline_enable_kevents(void); >>>>>> + >>>>>> +#endif /* !_COBALT_KERNEL_IPIPE_KEVENTS_H */ >>>>>> diff --git a/kernel/cobalt/ipipe/Makefile b/kernel/cobalt/ipipe/Makefile >>>>>> index 6021008fb..5170bb32b 100644 >>>>>> --- a/kernel/cobalt/ipipe/Makefile >>>>>> +++ b/kernel/cobalt/ipipe/Makefile >>>>>> @@ -1,3 +1,5 @@ >>>>>> +ccflags-y += -Ikernel >> >> "... -I$(srctree)/kernel" - or 5.4 and newer does not build. Also fixed >> up now. >> > > Please wait. You see way too many issues on merging this patch. Although > I'm not building on 4.14 (only covering the two latest LTS, i.e. 5.10 > and 4.19), 4.19 does build here. So this may be an issue with options, > and there might be several other annoying bugs ahead. It would be better > for me to include 4.14 in my test list, using your .config(s), and > re-submit from this patch and on.
Just have a look at our CI/CT. That last issue here was just not caught by the build test of the Xenomai repo, only by xenomai-image, because the former does in-tree builds. Jan -- Siemens AG, T RDA IOT Corporate Competence Center Embedded Linux
