From: Jan Kiszka <jan.kiszka@domain.hid>
To: xenomai-core <xenomai@xenomai.org>
Subject: Re: [Xenomai-core] [PATCH] fix smp build error of native skin
Date: Thu, 26 Apr 2007 16:17:16 +0200 [thread overview]
Message-ID: <4630B46C.9050809@domain.hid> (raw)
In-Reply-To: <4630655A.50204@domain.hid>
[-- Attachment #1.1: Type: text/plain, Size: 405 bytes --]
Jan Kiszka wrote:
> We need nucleus/pod.h because xeno_flush_rq() refers to nklock.
>
That was too simple, utterly breaking elsewhere.
The problem was actually that a bit too much stuff (here: native/ppd.h)
got included in userspace. Here comes a fix + more cleanups of the
native headers. Hope I'm not causing regressions (only in projects that
where sloppy about inclusions before).
Jan
[-- Attachment #1.2: native-include-cleanup.patch --]
[-- Type: text/plain, Size: 8990 bytes --]
---
include/native/alarm.h | 7 ++++---
include/native/cond.h | 5 +++--
include/native/event.h | 3 ++-
include/native/heap.h | 3 ++-
include/native/intr.h | 5 +++--
include/native/mutex.h | 5 +++--
include/native/pipe.h | 3 ++-
include/native/ppd.h | 1 +
include/native/queue.h | 3 ++-
include/native/sem.h | 3 ++-
include/native/task.h | 5 +++--
include/native/timer.h | 5 ++++-
ksrc/skins/native/task.c | 1 +
src/skins/native/timer.c | 2 +-
src/utils/can/rtcansend.c | 1 +
15 files changed, 34 insertions(+), 18 deletions(-)
Index: xenomai/include/native/alarm.h
===================================================================
--- xenomai.orig/include/native/alarm.h
+++ xenomai/include/native/alarm.h
@@ -22,10 +22,7 @@
#ifndef _XENO_ALARM_H
#define _XENO_ALARM_H
-#include <nucleus/timer.h>
-#include <nucleus/synch.h>
#include <native/types.h>
-#include <native/ppd.h>
typedef struct rt_alarm_info {
@@ -43,6 +40,10 @@ typedef struct rt_alarm_placeholder {
#if defined(__KERNEL__) || defined(__XENO_SIM__)
+#include <nucleus/timer.h>
+#include <nucleus/synch.h>
+#include <native/ppd.h>
+
#define XENO_ALARM_MAGIC 0x55550909
typedef struct rt_alarm {
Index: xenomai/include/native/pipe.h
===================================================================
--- xenomai.orig/include/native/pipe.h
+++ xenomai/include/native/pipe.h
@@ -25,7 +25,6 @@
#include <nucleus/pipe.h>
#include <nucleus/heap.h>
#include <native/types.h>
-#include <native/ppd.h>
/* Operation flags. */
#define P_NORMAL XNPIPE_NORMAL
@@ -39,6 +38,8 @@ typedef struct rt_pipe_placeholder {
#ifdef __KERNEL__
+#include <native/ppd.h>
+
#define XENO_PIPE_MAGIC 0x55550202
#define P_SYNCWAIT 0
Index: xenomai/include/native/task.h
===================================================================
--- xenomai.orig/include/native/task.h
+++ xenomai/include/native/task.h
@@ -24,8 +24,7 @@
#include <nucleus/core.h>
#include <nucleus/thread.h>
-#include <nucleus/synch.h>
-#include <native/timer.h>
+#include <native/types.h>
/* Creation flags. */
#define T_FPU XNFPU
@@ -112,6 +111,8 @@ typedef struct rt_task_mcb {
#if (defined(__KERNEL__) || defined(__XENO_SIM__)) && !defined(DOXYGEN_CPP)
+#include <nucleus/synch.h>
+
#define XENO_TASK_MAGIC 0x55550101
typedef struct rt_task {
Index: xenomai/include/native/mutex.h
===================================================================
--- xenomai.orig/include/native/mutex.h
+++ xenomai/include/native/mutex.h
@@ -22,9 +22,7 @@
#ifndef _XENO_MUTEX_H
#define _XENO_MUTEX_H
-#include <nucleus/synch.h>
#include <native/types.h>
-#include <native/ppd.h>
struct rt_task;
@@ -44,6 +42,9 @@ typedef struct rt_mutex_placeholder {
#if (defined(__KERNEL__) || defined(__XENO_SIM__)) && !defined(DOXYGEN_CPP)
+#include <nucleus/synch.h>
+#include <native/ppd.h>
+
#define XENO_MUTEX_MAGIC 0x55550505
typedef struct __rt_mutex {
Index: xenomai/include/native/intr.h
===================================================================
--- xenomai.orig/include/native/intr.h
+++ xenomai/include/native/intr.h
@@ -22,10 +22,8 @@
#ifndef _XENO_INTR_H
#define _XENO_INTR_H
-#include <nucleus/synch.h>
#include <nucleus/intr.h>
#include <native/types.h>
-#include <native/ppd.h>
/* Creation flag. */
#define I_NOAUTOENA XN_ISR_NOENABLE /* Do not auto-enable interrupt channel
@@ -50,6 +48,9 @@ typedef struct rt_intr_placeholder {
#if (defined(__KERNEL__) || defined(__XENO_SIM__)) && !defined(DOXYGEN_CPP)
+#include <nucleus/synch.h>
+#include <native/ppd.h>
+
#define XENO_INTR_MAGIC 0x55550a0a
/* Creation flags. */
Index: xenomai/include/native/heap.h
===================================================================
--- xenomai.orig/include/native/heap.h
+++ xenomai/include/native/heap.h
@@ -25,7 +25,6 @@
#include <nucleus/synch.h>
#include <nucleus/heap.h>
#include <native/types.h>
-#include <native/ppd.h>
/* Creation flags. */
#define H_PRIO XNSYNCH_PRIO /* Pend by task priority order. */
@@ -61,6 +60,8 @@ typedef struct rt_heap_placeholder {
#if defined(__KERNEL__) || defined(__XENO_SIM__)
+#include <native/ppd.h>
+
#define XENO_HEAP_MAGIC 0x55550808
typedef struct rt_heap {
Index: xenomai/include/native/timer.h
===================================================================
--- xenomai.orig/include/native/timer.h
+++ xenomai/include/native/timer.h
@@ -22,7 +22,6 @@
#ifndef _XENO_TIMER_H
#define _XENO_TIMER_H
-#include <nucleus/timer.h>
#include <native/types.h>
#define TM_ONESHOT XN_APERIODIC_TICK
@@ -36,7 +35,11 @@ typedef struct rt_timer_info {
} RT_TIMER_INFO;
#if defined(__KERNEL__) || defined(__XENO_SIM__)
+
+#include <nucleus/timer.h>
+
extern xntbase_t *__native_tbase;
+
#endif /* __KERNEL__ || __XENO_SIM__ */
#ifdef __cplusplus
Index: xenomai/include/native/event.h
===================================================================
--- xenomai.orig/include/native/event.h
+++ xenomai/include/native/event.h
@@ -24,7 +24,6 @@
#include <nucleus/synch.h>
#include <native/types.h>
-#include <native/ppd.h>
/* Creation flags. */
#define EV_PRIO XNSYNCH_PRIO /* Pend by task priority order. */
@@ -50,6 +49,8 @@ typedef struct rt_event_placeholder {
#if (defined(__KERNEL__) || defined(__XENO_SIM__)) && !defined(DOXYGEN_CPP)
+#include <native/ppd.h>
+
#define XENO_EVENT_MAGIC 0x55550404
typedef struct rt_event {
Index: xenomai/include/native/cond.h
===================================================================
--- xenomai.orig/include/native/cond.h
+++ xenomai/include/native/cond.h
@@ -22,9 +22,7 @@
#ifndef _XENO_COND_H
#define _XENO_COND_H
-#include <nucleus/synch.h>
#include <native/mutex.h>
-#include <native/ppd.h>
typedef struct rt_cond_info {
@@ -42,6 +40,9 @@ typedef struct rt_cond_placeholder {
#if (defined(__KERNEL__) || defined(__XENO_SIM__)) && !defined(DOXYGEN_CPP)
+#include <nucleus/synch.h>
+#include <native/ppd.h>
+
#define XENO_COND_MAGIC 0x55550606
typedef struct rt_cond {
Index: xenomai/include/native/ppd.h
===================================================================
--- xenomai.orig/include/native/ppd.h
+++ xenomai/include/native/ppd.h
@@ -22,6 +22,7 @@
#ifndef _XENO_PPD_H
#define _XENO_PPD_H
+#include <nucleus/pod.h>
#include <nucleus/ppd.h>
#include <nucleus/heap.h>
Index: xenomai/include/native/sem.h
===================================================================
--- xenomai.orig/include/native/sem.h
+++ xenomai/include/native/sem.h
@@ -24,7 +24,6 @@
#include <nucleus/synch.h>
#include <native/types.h>
-#include <native/ppd.h>
/* Creation flags. */
#define S_PRIO XNSYNCH_PRIO /* Pend by task priority order. */
@@ -47,6 +46,8 @@ typedef struct rt_sem_placeholder {
#if (defined(__KERNEL__) || defined(__XENO_SIM__)) && !defined(DOXYGEN_CPP)
+#include <native/ppd.h>
+
#define XENO_SEM_MAGIC 0x55550303
typedef struct rt_sem {
Index: xenomai/include/native/queue.h
===================================================================
--- xenomai.orig/include/native/queue.h
+++ xenomai/include/native/queue.h
@@ -25,7 +25,6 @@
#include <nucleus/synch.h>
#include <nucleus/heap.h>
#include <native/types.h>
-#include <native/ppd.h>
/* Creation flags. */
#define Q_PRIO XNSYNCH_PRIO /* Pend by task priority order. */
@@ -72,6 +71,8 @@ typedef struct rt_queue_placeholder {
#if defined(__KERNEL__) || defined(__XENO_SIM__)
+#include <native/ppd.h>
+
#define XENO_QUEUE_MAGIC 0x55550707
typedef struct rt_queue {
Index: xenomai/src/utils/can/rtcansend.c
===================================================================
--- xenomai.orig/src/utils/can/rtcansend.c
+++ xenomai/src/utils/can/rtcansend.c
@@ -8,6 +8,7 @@
#include <sys/mman.h>
#include <native/task.h>
+#include <native/timer.h>
#include <native/pipe.h>
#include <rtdm/rtcan.h>
Index: xenomai/src/skins/native/timer.c
===================================================================
--- xenomai.orig/src/skins/native/timer.c
+++ xenomai/src/skins/native/timer.c
@@ -17,7 +17,7 @@
*/
#include <native/syscall.h>
-#include <native/task.h>
+#include <native/timer.h>
extern int __native_muxid;
Index: xenomai/ksrc/skins/native/task.c
===================================================================
--- xenomai.orig/ksrc/skins/native/task.c
+++ xenomai/ksrc/skins/native/task.c
@@ -48,6 +48,7 @@
#include <nucleus/heap.h>
#include <nucleus/registry.h>
#include <native/task.h>
+#include <native/timer.h>
static DECLARE_XNQUEUE(__xeno_task_q);
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 250 bytes --]
next prev parent reply other threads:[~2007-04-26 14:17 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-04-26 8:39 [Xenomai-core] [PATCH] fix smp build error of native skin Jan Kiszka
2007-04-26 14:17 ` Jan Kiszka [this message]
2007-04-26 15:45 ` Philippe Gerum
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4630B46C.9050809@domain.hid \
--to=jan.kiszka@domain.hid \
--cc=xenomai@xenomai.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.