From: Philippe Gerum <[email protected]> ipipe_root_p, !ipipe_root_p belong to the I-pipe jargon. Dovetail uses running_inband(), running_oob() for the same purpose instead.
Replace all occurrences of ipipe_root_p found in generic code with is_primary_domain(), is_secondary_domain(), which in turn map to the proper predicates depending on the underlying pipeline flavour. No functional change is introduced. Signed-off-by: Philippe Gerum <[email protected]> --- include/cobalt/kernel/assert.h | 5 +++-- include/cobalt/kernel/clock.h | 2 +- include/cobalt/kernel/rtdm/driver.h | 2 +- kernel/cobalt/posix/corectl.c | 3 +-- kernel/cobalt/posix/syscall.c | 6 +++--- kernel/cobalt/registry.c | 2 +- kernel/cobalt/rtdm/drvlib.c | 2 +- kernel/cobalt/rtdm/fd.c | 14 +++++++------- kernel/cobalt/sched.c | 5 +++-- kernel/cobalt/thread.c | 2 +- 10 files changed, 22 insertions(+), 21 deletions(-) diff --git a/include/cobalt/kernel/assert.h b/include/cobalt/kernel/assert.h index 7c93b7e5c..7d9433abc 100644 --- a/include/cobalt/kernel/assert.h +++ b/include/cobalt/kernel/assert.h @@ -20,6 +20,7 @@ #define _COBALT_KERNEL_ASSERT_H #include <linux/kconfig.h> +#include <pipeline/pipeline.h> #include <cobalt/kernel/trace.h> #include <cobalt/kernel/ancillaries.h> @@ -57,8 +58,8 @@ do { } while (0) #endif -#define primary_mode_only() XENO_BUG_ON(CONTEXT, ipipe_root_p) -#define secondary_mode_only() XENO_BUG_ON(CONTEXT, !ipipe_root_p) +#define primary_mode_only() XENO_BUG_ON(CONTEXT, is_secondary_domain()) +#define secondary_mode_only() XENO_BUG_ON(CONTEXT, !is_secondary_domain()) #define interrupt_only() XENO_BUG_ON(CONTEXT, !xnsched_interrupt_p()) #define realtime_cpu_only() XENO_BUG_ON(CONTEXT, !xnsched_supported_cpu(raw_smp_processor_id())) #define thread_only() XENO_BUG_ON(CONTEXT, xnsched_interrupt_p()) diff --git a/include/cobalt/kernel/clock.h b/include/cobalt/kernel/clock.h index 94dfd2f99..d4a9d2686 100644 --- a/include/cobalt/kernel/clock.h +++ b/include/cobalt/kernel/clock.h @@ -19,7 +19,7 @@ #ifndef _COBALT_KERNEL_CLOCK_H #define _COBALT_KERNEL_CLOCK_H -#include <linux/ipipe.h> +#include <pipeline/pipeline.h> #include <cobalt/kernel/list.h> #include <cobalt/kernel/vfile.h> #include <cobalt/uapi/kernel/types.h> diff --git a/include/cobalt/kernel/rtdm/driver.h b/include/cobalt/kernel/rtdm/driver.h index 84309d0b1..581e7a5c0 100644 --- a/include/cobalt/kernel/rtdm/driver.h +++ b/include/cobalt/kernel/rtdm/driver.h @@ -1316,7 +1316,7 @@ static inline int rtdm_rt_capable(struct rtdm_fd *fd) static inline int rtdm_in_rt_context(void) { - return (ipipe_current_domain != ipipe_root_domain); + return is_primary_domain(); } #define RTDM_IOV_FASTMAX 16 diff --git a/kernel/cobalt/posix/corectl.c b/kernel/cobalt/posix/corectl.c index f7129ca64..998fe572d 100644 --- a/kernel/cobalt/posix/corectl.c +++ b/kernel/cobalt/posix/corectl.c @@ -17,7 +17,6 @@ */ #include <linux/types.h> #include <linux/errno.h> -#include <linux/ipipe.h> #include <linux/kconfig.h> #include <linux/atomic.h> #include <linux/printk.h> @@ -89,7 +88,7 @@ static int do_conf_option(int option, void __user *u_buf, size_t u_bufsz) val = realtime_core_state(); break; default: - if (!ipipe_root_p) + if (is_primary_domain()) /* Switch to secondary mode first. */ return -ENOSYS; vec.u_buf = u_buf; diff --git a/kernel/cobalt/posix/syscall.c b/kernel/cobalt/posix/syscall.c index 0a09322be..4d2331ddc 100644 --- a/kernel/cobalt/posix/syscall.c +++ b/kernel/cobalt/posix/syscall.c @@ -112,7 +112,7 @@ static COBALT_SYSCALL(migrate, current, (int domain)) { struct xnthread *thread = xnthread_current(); - if (ipipe_root_p) { + if (is_secondary_domain()) { if (domain == COBALT_PRIMARY) { if (thread == NULL) return -EPERM; @@ -129,7 +129,7 @@ static COBALT_SYSCALL(migrate, current, (int domain)) return 0; } - /* ipipe_current_domain != ipipe_root_domain */ + /* We are running on the head stage, apply relax request. */ if (domain == COBALT_SECONDARY) { xnthread_relax(0, 0); return 1; @@ -779,7 +779,7 @@ ret_handled: int ipipe_syscall_hook(struct ipipe_domain *ipd, struct pt_regs *regs) { - if (unlikely(ipipe_root_p)) + if (unlikely(is_secondary_domain())) return handle_root_syscall(ipd, regs); return handle_head_syscall(ipd, regs); diff --git a/kernel/cobalt/registry.c b/kernel/cobalt/registry.c index 4b01abd63..dc1edd01a 100644 --- a/kernel/cobalt/registry.c +++ b/kernel/cobalt/registry.c @@ -852,7 +852,7 @@ int xnregistry_remove(xnhandle_t handle) */ if (object->pnode) { xnlock_put_irqrestore(&nklock, s); - if (ipipe_root_p) + if (is_secondary_domain()) flush_work(®istry_proc_work); return 0; } diff --git a/kernel/cobalt/rtdm/drvlib.c b/kernel/cobalt/rtdm/drvlib.c index 5778ad559..40d2e401b 100644 --- a/kernel/cobalt/rtdm/drvlib.c +++ b/kernel/cobalt/rtdm/drvlib.c @@ -1630,7 +1630,7 @@ void rtdm_schedule_nrt_work(struct work_struct *lostage_work) .lostage_work = lostage_work, }; - if (ipipe_root_p) + if (is_secondary_domain()) schedule_work(lostage_work); else ipipe_post_work_root(&ipipe_work, work); diff --git a/kernel/cobalt/rtdm/fd.c b/kernel/cobalt/rtdm/fd.c index eb80aa7bf..afb9ca5c5 100644 --- a/kernel/cobalt/rtdm/fd.c +++ b/kernel/cobalt/rtdm/fd.c @@ -306,7 +306,7 @@ static void __put_fd(struct rtdm_fd *fd, spl_t s) if (!destroy) return; - if (ipipe_root_p) + if (is_secondary_domain()) fd->ops->close(fd); else { struct lostage_trigger_close closework = { @@ -470,7 +470,7 @@ static struct rtdm_fd *get_fd_fixup_mode(int ufd) * the syscall from secondary mode. */ thread = xnthread_current(); - if (unlikely(ipipe_root_p)) { + if (unlikely(is_secondary_domain())) { if (thread == NULL || xnthread_test_localinfo(thread, XNDESCENT)) return fd; @@ -508,7 +508,7 @@ int rtdm_fd_ioctl(int ufd, unsigned int request, ...) trace_cobalt_fd_ioctl(current, fd, ufd, request); - if (ipipe_root_p) + if (is_secondary_domain()) err = fd->ops->ioctl_nrt(fd, request, arg); else err = fd->ops->ioctl_rt(fd, request, arg); @@ -547,7 +547,7 @@ rtdm_fd_read(int ufd, void __user *buf, size_t size) trace_cobalt_fd_read(current, fd, ufd, size); - if (ipipe_root_p) + if (is_secondary_domain()) ret = fd->ops->read_nrt(fd, buf, size); else ret = fd->ops->read_rt(fd, buf, size); @@ -580,7 +580,7 @@ ssize_t rtdm_fd_write(int ufd, const void __user *buf, size_t size) trace_cobalt_fd_write(current, fd, ufd, size); - if (ipipe_root_p) + if (is_secondary_domain()) ret = fd->ops->write_nrt(fd, buf, size); else ret = fd->ops->write_rt(fd, buf, size); @@ -616,7 +616,7 @@ ssize_t rtdm_fd_recvmsg(int ufd, struct user_msghdr *msg, int flags) if (fd->oflags & O_NONBLOCK) flags |= MSG_DONTWAIT; - if (ipipe_root_p) + if (is_secondary_domain()) ret = fd->ops->recvmsg_nrt(fd, msg, flags); else ret = fd->ops->recvmsg_rt(fd, msg, flags); @@ -761,7 +761,7 @@ ssize_t rtdm_fd_sendmsg(int ufd, const struct user_msghdr *msg, int flags) if (fd->oflags & O_NONBLOCK) flags |= MSG_DONTWAIT; - if (ipipe_root_p) + if (is_secondary_domain()) ret = fd->ops->sendmsg_nrt(fd, msg, flags); else ret = fd->ops->sendmsg_rt(fd, msg, flags); diff --git a/kernel/cobalt/sched.c b/kernel/cobalt/sched.c index 7ff8a6c82..b16903bd8 100644 --- a/kernel/cobalt/sched.c +++ b/kernel/cobalt/sched.c @@ -912,7 +912,8 @@ int ___xnsched_run(struct xnsched *sched) int switched, shadow; spl_t s; - XENO_WARN_ON_ONCE(COBALT, !hard_irqs_disabled() && ipipe_root_p); + XENO_WARN_ON_ONCE(COBALT, + !hard_irqs_disabled() && is_secondary_domain()); if (xnarch_escalate()) return 0; @@ -983,7 +984,7 @@ int ___xnsched_run(struct xnsched *sched) * In such a case, we are running over the regular schedule() * tail code, so we have to skip our tail code. */ - if (shadow && ipipe_root_p) + if (shadow && is_secondary_domain()) goto shadow_epilogue; switched = 1; diff --git a/kernel/cobalt/thread.c b/kernel/cobalt/thread.c index b871e6069..88a4ff621 100644 --- a/kernel/cobalt/thread.c +++ b/kernel/cobalt/thread.c @@ -2107,7 +2107,7 @@ void xnthread_relax(int notify, int reason) * Basic sanity check after an expected transition to secondary * mode. */ - XENO_WARN(COBALT, !ipipe_root_p, + XENO_WARN(COBALT, is_primary_domain(), "xnthread_relax() failed for thread %s[%d]", thread->name, xnthread_host_pid(thread)); -- 2.26.2
