[Xenomai-git] Philippe Gerum : cobalt/nucleus: introduce dedicated ppd handlers

2013-06-12 Thread git repository hosting
Module: xenomai-forge
Branch: next
Commit: bdf1e6d7ae98734a27c4f75b51d25346403cace8
URL:
http://git.xenomai.org/?p=xenomai-forge.git;a=commit;h=bdf1e6d7ae98734a27c4f75b51d25346403cace8

Author: Philippe Gerum 
Date:   Fri Jun  7 10:31:46 2013 +0200

cobalt/nucleus: introduce dedicated ppd handlers

---

 include/asm-generic/syscall.h|2 -
 include/cobalt/nucleus/ppd.h |   18 ++--
 include/cobalt/nucleus/shadow.h  |   14 ++-
 include/cobalt/nucleus/sys_ppd.h |9 +-
 kernel/cobalt/cond.c |4 +-
 kernel/cobalt/cond.h |4 +-
 kernel/cobalt/internal.h |   55 +--
 kernel/cobalt/mq.c   |   78 
 kernel/cobalt/mq.h   |2 +-
 kernel/cobalt/mutex.c|6 +-
 kernel/cobalt/mutex.h|4 +-
 kernel/cobalt/nucleus/shadow.c   |  194 +++---
 kernel/cobalt/registry.c |2 +-
 kernel/cobalt/rtdm/core.c|2 +-
 kernel/cobalt/rtdm/internal.h|2 +-
 kernel/cobalt/rtdm/module.c  |2 +-
 kernel/cobalt/rtdm/syscall.c |   38 
 kernel/cobalt/sem.c  |   36 
 kernel/cobalt/sem.h  |6 +-
 kernel/cobalt/syscall.c  |  107 ++---
 kernel/cobalt/timer.c|6 +-
 kernel/cobalt/timer.h|2 +-
 22 files changed, 289 insertions(+), 304 deletions(-)

diff --git a/include/asm-generic/syscall.h b/include/asm-generic/syscall.h
index ff53380..d3e23f0 100644
--- a/include/asm-generic/syscall.h
+++ b/include/asm-generic/syscall.h
@@ -82,8 +82,6 @@ struct xnsysinfo {
 struct task_struct;
 struct pt_regs;
 
-#define XENOMAI_MAX_SYSENT 255
-
 struct xnsysent {
 
/*
diff --git a/include/cobalt/nucleus/ppd.h b/include/cobalt/nucleus/ppd.h
index 6680cb3..296dbfe 100644
--- a/include/cobalt/nucleus/ppd.h
+++ b/include/cobalt/nucleus/ppd.h
@@ -6,22 +6,20 @@
 
 struct mm_struct;
 
-typedef struct xnshadow_ppd_key {
+struct xnshadow_ppd_key {
unsigned long muxid;
struct mm_struct *mm;
-} xnshadow_ppd_key_t;
+};
 
-typedef struct xnshadow_ppd_t {
-   xnshadow_ppd_key_t key;
-   xnholder_t link;
-#define link2ppd(ln)   container_of(ln, xnshadow_ppd_t, link)
-} xnshadow_ppd_t;
+struct xnshadow_ppd {
+   struct xnshadow_ppd_key key;
+   struct xnholder link;
+};
 
 #define xnshadow_ppd_muxid(ppd) ((ppd)->key.muxid)
-
 #define xnshadow_ppd_mm(ppd)((ppd)->key.mm)
 
-/* Call with nklock locked irqs off. */
-xnshadow_ppd_t *xnshadow_ppd_get(unsigned int muxid);
+/* Called with nklock locked irqs off. */
+struct xnshadow_ppd *xnshadow_ppd_get(unsigned int muxid);
 
 #endif /* _XENO_NUCLEUS_PPD_H */
diff --git a/include/cobalt/nucleus/shadow.h b/include/cobalt/nucleus/shadow.h
index 52df983..917ba44 100644
--- a/include/cobalt/nucleus/shadow.h
+++ b/include/cobalt/nucleus/shadow.h
@@ -25,10 +25,6 @@
 
 #define XENOMAI_SKINS_NR  4
 
-/* Events sent to the interface callback */
-#define XNSHADOW_CLIENT_ATTACH  0
-#define XNSHADOW_CLIENT_DETACH  1
-
 struct xnthread;
 struct xnthread_user_window;
 struct xnmutex;
@@ -36,13 +32,19 @@ struct pt_regs;
 struct timespec;
 struct timeval;
 struct completion;
+struct xnshadow_ppd;
+
+struct xnskin_client_ops {
+   struct xnshadow_ppd *(*attach)(void);
+   void (*detach)(struct xnshadow_ppd *ppd);
+};
 
 struct xnskin_props {
const char *name;
-   unsigned magic;
+   unsigned int magic;
int nrcalls;
-   void *(*eventcb)(int, void *);
struct xnsysent *systab;
+   struct xnskin_client_ops ops;
 };
 
 static inline struct xnthread *xnshadow_current(void)
diff --git a/include/cobalt/nucleus/sys_ppd.h b/include/cobalt/nucleus/sys_ppd.h
index a714169..e60fd6d 100644
--- a/include/cobalt/nucleus/sys_ppd.h
+++ b/include/cobalt/nucleus/sys_ppd.h
@@ -5,24 +5,23 @@
 #include 
 
 struct xnsys_ppd {
-   xnshadow_ppd_t ppd;
-   xnheap_t sem_heap;
+   struct xnshadow_ppd ppd;
+   struct xnheap sem_heap;
unsigned long mayday_addr;
xnarch_atomic_t refcnt;
char *exe_path;
-#define ppd2sys(addr) container_of(addr, struct xnsys_ppd, ppd)
 };
 
 extern struct xnsys_ppd __xnsys_global_ppd;
 
 static inline struct xnsys_ppd *xnsys_ppd_get(int global)
 {
-   xnshadow_ppd_t *ppd;
+   struct xnshadow_ppd *ppd;
 
if (global || (ppd = xnshadow_ppd_get(0)) == NULL)
return &__xnsys_global_ppd;
 
-   return ppd2sys(ppd);
+   return container_of(ppd, struct xnsys_ppd, ppd);
 }
 
 #endif /* _XENO_NUCLEUS_SYS_PPD_H */
diff --git a/kernel/cobalt/cond.c b/kernel/cobalt/cond.c
index 538bf4f..695a726 100644
--- a/kernel/cobalt/cond.c
+++ b/kernel/cobalt/cond.c
@@ -52,7 +52,7 @@
 #include "cond.h"
 
 static inline void
-cond_destroy_internal(cobalt_cond_t *cond, cobalt_kqueues_t *q)
+cond_destroy_internal(cobalt_cond_t *cond, struct cobalt_kqueues *q)
 {
spl_t s;
 
@@ -476,7 +476,7 @@ int cobalt_cond_wa

[Xenomai-git] Philippe Gerum : cobalt/nucleus: introduce dedicated ppd handlers

2013-06-12 Thread git repository hosting
Module: xenomai-forge
Branch: master
Commit: bdf1e6d7ae98734a27c4f75b51d25346403cace8
URL:
http://git.xenomai.org/?p=xenomai-forge.git;a=commit;h=bdf1e6d7ae98734a27c4f75b51d25346403cace8

Author: Philippe Gerum 
Date:   Fri Jun  7 10:31:46 2013 +0200

cobalt/nucleus: introduce dedicated ppd handlers

---

 include/asm-generic/syscall.h|2 -
 include/cobalt/nucleus/ppd.h |   18 ++--
 include/cobalt/nucleus/shadow.h  |   14 ++-
 include/cobalt/nucleus/sys_ppd.h |9 +-
 kernel/cobalt/cond.c |4 +-
 kernel/cobalt/cond.h |4 +-
 kernel/cobalt/internal.h |   55 +--
 kernel/cobalt/mq.c   |   78 
 kernel/cobalt/mq.h   |2 +-
 kernel/cobalt/mutex.c|6 +-
 kernel/cobalt/mutex.h|4 +-
 kernel/cobalt/nucleus/shadow.c   |  194 +++---
 kernel/cobalt/registry.c |2 +-
 kernel/cobalt/rtdm/core.c|2 +-
 kernel/cobalt/rtdm/internal.h|2 +-
 kernel/cobalt/rtdm/module.c  |2 +-
 kernel/cobalt/rtdm/syscall.c |   38 
 kernel/cobalt/sem.c  |   36 
 kernel/cobalt/sem.h  |6 +-
 kernel/cobalt/syscall.c  |  107 ++---
 kernel/cobalt/timer.c|6 +-
 kernel/cobalt/timer.h|2 +-
 22 files changed, 289 insertions(+), 304 deletions(-)

diff --git a/include/asm-generic/syscall.h b/include/asm-generic/syscall.h
index ff53380..d3e23f0 100644
--- a/include/asm-generic/syscall.h
+++ b/include/asm-generic/syscall.h
@@ -82,8 +82,6 @@ struct xnsysinfo {
 struct task_struct;
 struct pt_regs;
 
-#define XENOMAI_MAX_SYSENT 255
-
 struct xnsysent {
 
/*
diff --git a/include/cobalt/nucleus/ppd.h b/include/cobalt/nucleus/ppd.h
index 6680cb3..296dbfe 100644
--- a/include/cobalt/nucleus/ppd.h
+++ b/include/cobalt/nucleus/ppd.h
@@ -6,22 +6,20 @@
 
 struct mm_struct;
 
-typedef struct xnshadow_ppd_key {
+struct xnshadow_ppd_key {
unsigned long muxid;
struct mm_struct *mm;
-} xnshadow_ppd_key_t;
+};
 
-typedef struct xnshadow_ppd_t {
-   xnshadow_ppd_key_t key;
-   xnholder_t link;
-#define link2ppd(ln)   container_of(ln, xnshadow_ppd_t, link)
-} xnshadow_ppd_t;
+struct xnshadow_ppd {
+   struct xnshadow_ppd_key key;
+   struct xnholder link;
+};
 
 #define xnshadow_ppd_muxid(ppd) ((ppd)->key.muxid)
-
 #define xnshadow_ppd_mm(ppd)((ppd)->key.mm)
 
-/* Call with nklock locked irqs off. */
-xnshadow_ppd_t *xnshadow_ppd_get(unsigned int muxid);
+/* Called with nklock locked irqs off. */
+struct xnshadow_ppd *xnshadow_ppd_get(unsigned int muxid);
 
 #endif /* _XENO_NUCLEUS_PPD_H */
diff --git a/include/cobalt/nucleus/shadow.h b/include/cobalt/nucleus/shadow.h
index 52df983..917ba44 100644
--- a/include/cobalt/nucleus/shadow.h
+++ b/include/cobalt/nucleus/shadow.h
@@ -25,10 +25,6 @@
 
 #define XENOMAI_SKINS_NR  4
 
-/* Events sent to the interface callback */
-#define XNSHADOW_CLIENT_ATTACH  0
-#define XNSHADOW_CLIENT_DETACH  1
-
 struct xnthread;
 struct xnthread_user_window;
 struct xnmutex;
@@ -36,13 +32,19 @@ struct pt_regs;
 struct timespec;
 struct timeval;
 struct completion;
+struct xnshadow_ppd;
+
+struct xnskin_client_ops {
+   struct xnshadow_ppd *(*attach)(void);
+   void (*detach)(struct xnshadow_ppd *ppd);
+};
 
 struct xnskin_props {
const char *name;
-   unsigned magic;
+   unsigned int magic;
int nrcalls;
-   void *(*eventcb)(int, void *);
struct xnsysent *systab;
+   struct xnskin_client_ops ops;
 };
 
 static inline struct xnthread *xnshadow_current(void)
diff --git a/include/cobalt/nucleus/sys_ppd.h b/include/cobalt/nucleus/sys_ppd.h
index a714169..e60fd6d 100644
--- a/include/cobalt/nucleus/sys_ppd.h
+++ b/include/cobalt/nucleus/sys_ppd.h
@@ -5,24 +5,23 @@
 #include 
 
 struct xnsys_ppd {
-   xnshadow_ppd_t ppd;
-   xnheap_t sem_heap;
+   struct xnshadow_ppd ppd;
+   struct xnheap sem_heap;
unsigned long mayday_addr;
xnarch_atomic_t refcnt;
char *exe_path;
-#define ppd2sys(addr) container_of(addr, struct xnsys_ppd, ppd)
 };
 
 extern struct xnsys_ppd __xnsys_global_ppd;
 
 static inline struct xnsys_ppd *xnsys_ppd_get(int global)
 {
-   xnshadow_ppd_t *ppd;
+   struct xnshadow_ppd *ppd;
 
if (global || (ppd = xnshadow_ppd_get(0)) == NULL)
return &__xnsys_global_ppd;
 
-   return ppd2sys(ppd);
+   return container_of(ppd, struct xnsys_ppd, ppd);
 }
 
 #endif /* _XENO_NUCLEUS_SYS_PPD_H */
diff --git a/kernel/cobalt/cond.c b/kernel/cobalt/cond.c
index 538bf4f..695a726 100644
--- a/kernel/cobalt/cond.c
+++ b/kernel/cobalt/cond.c
@@ -52,7 +52,7 @@
 #include "cond.h"
 
 static inline void
-cond_destroy_internal(cobalt_cond_t *cond, cobalt_kqueues_t *q)
+cond_destroy_internal(cobalt_cond_t *cond, struct cobalt_kqueues *q)
 {
spl_t s;
 
@@ -476,7 +476,7 @@ int cobalt_cond_

[Xenomai-git] Philippe Gerum : cobalt/nucleus: introduce dedicated ppd handlers

2013-06-10 Thread git repository hosting
Module: xenomai-forge
Branch: next
Commit: c28e592917d2b938cf552c551c8c40afb15149e3
URL:
http://git.xenomai.org/?p=xenomai-forge.git;a=commit;h=c28e592917d2b938cf552c551c8c40afb15149e3

Author: Philippe Gerum 
Date:   Fri Jun  7 10:31:46 2013 +0200

cobalt/nucleus: introduce dedicated ppd handlers

---

 include/asm-generic/syscall.h|2 -
 include/cobalt/nucleus/ppd.h |   18 ++--
 include/cobalt/nucleus/shadow.h  |   14 ++-
 include/cobalt/nucleus/sys_ppd.h |9 +-
 kernel/cobalt/cond.c |4 +-
 kernel/cobalt/cond.h |4 +-
 kernel/cobalt/internal.h |   55 +--
 kernel/cobalt/mq.c   |   78 
 kernel/cobalt/mq.h   |2 +-
 kernel/cobalt/mutex.c|6 +-
 kernel/cobalt/mutex.h|4 +-
 kernel/cobalt/nucleus/shadow.c   |  194 +++---
 kernel/cobalt/registry.c |2 +-
 kernel/cobalt/rtdm/core.c|2 +-
 kernel/cobalt/rtdm/internal.h|2 +-
 kernel/cobalt/rtdm/module.c  |2 +-
 kernel/cobalt/rtdm/syscall.c |   38 
 kernel/cobalt/sem.c  |   36 
 kernel/cobalt/sem.h  |6 +-
 kernel/cobalt/syscall.c  |  107 ++---
 kernel/cobalt/timer.c|6 +-
 kernel/cobalt/timer.h|2 +-
 22 files changed, 289 insertions(+), 304 deletions(-)

diff --git a/include/asm-generic/syscall.h b/include/asm-generic/syscall.h
index ff53380..d3e23f0 100644
--- a/include/asm-generic/syscall.h
+++ b/include/asm-generic/syscall.h
@@ -82,8 +82,6 @@ struct xnsysinfo {
 struct task_struct;
 struct pt_regs;
 
-#define XENOMAI_MAX_SYSENT 255
-
 struct xnsysent {
 
/*
diff --git a/include/cobalt/nucleus/ppd.h b/include/cobalt/nucleus/ppd.h
index 6680cb3..296dbfe 100644
--- a/include/cobalt/nucleus/ppd.h
+++ b/include/cobalt/nucleus/ppd.h
@@ -6,22 +6,20 @@
 
 struct mm_struct;
 
-typedef struct xnshadow_ppd_key {
+struct xnshadow_ppd_key {
unsigned long muxid;
struct mm_struct *mm;
-} xnshadow_ppd_key_t;
+};
 
-typedef struct xnshadow_ppd_t {
-   xnshadow_ppd_key_t key;
-   xnholder_t link;
-#define link2ppd(ln)   container_of(ln, xnshadow_ppd_t, link)
-} xnshadow_ppd_t;
+struct xnshadow_ppd {
+   struct xnshadow_ppd_key key;
+   struct xnholder link;
+};
 
 #define xnshadow_ppd_muxid(ppd) ((ppd)->key.muxid)
-
 #define xnshadow_ppd_mm(ppd)((ppd)->key.mm)
 
-/* Call with nklock locked irqs off. */
-xnshadow_ppd_t *xnshadow_ppd_get(unsigned int muxid);
+/* Called with nklock locked irqs off. */
+struct xnshadow_ppd *xnshadow_ppd_get(unsigned int muxid);
 
 #endif /* _XENO_NUCLEUS_PPD_H */
diff --git a/include/cobalt/nucleus/shadow.h b/include/cobalt/nucleus/shadow.h
index 52df983..917ba44 100644
--- a/include/cobalt/nucleus/shadow.h
+++ b/include/cobalt/nucleus/shadow.h
@@ -25,10 +25,6 @@
 
 #define XENOMAI_SKINS_NR  4
 
-/* Events sent to the interface callback */
-#define XNSHADOW_CLIENT_ATTACH  0
-#define XNSHADOW_CLIENT_DETACH  1
-
 struct xnthread;
 struct xnthread_user_window;
 struct xnmutex;
@@ -36,13 +32,19 @@ struct pt_regs;
 struct timespec;
 struct timeval;
 struct completion;
+struct xnshadow_ppd;
+
+struct xnskin_client_ops {
+   struct xnshadow_ppd *(*attach)(void);
+   void (*detach)(struct xnshadow_ppd *ppd);
+};
 
 struct xnskin_props {
const char *name;
-   unsigned magic;
+   unsigned int magic;
int nrcalls;
-   void *(*eventcb)(int, void *);
struct xnsysent *systab;
+   struct xnskin_client_ops ops;
 };
 
 static inline struct xnthread *xnshadow_current(void)
diff --git a/include/cobalt/nucleus/sys_ppd.h b/include/cobalt/nucleus/sys_ppd.h
index a714169..e60fd6d 100644
--- a/include/cobalt/nucleus/sys_ppd.h
+++ b/include/cobalt/nucleus/sys_ppd.h
@@ -5,24 +5,23 @@
 #include 
 
 struct xnsys_ppd {
-   xnshadow_ppd_t ppd;
-   xnheap_t sem_heap;
+   struct xnshadow_ppd ppd;
+   struct xnheap sem_heap;
unsigned long mayday_addr;
xnarch_atomic_t refcnt;
char *exe_path;
-#define ppd2sys(addr) container_of(addr, struct xnsys_ppd, ppd)
 };
 
 extern struct xnsys_ppd __xnsys_global_ppd;
 
 static inline struct xnsys_ppd *xnsys_ppd_get(int global)
 {
-   xnshadow_ppd_t *ppd;
+   struct xnshadow_ppd *ppd;
 
if (global || (ppd = xnshadow_ppd_get(0)) == NULL)
return &__xnsys_global_ppd;
 
-   return ppd2sys(ppd);
+   return container_of(ppd, struct xnsys_ppd, ppd);
 }
 
 #endif /* _XENO_NUCLEUS_SYS_PPD_H */
diff --git a/kernel/cobalt/cond.c b/kernel/cobalt/cond.c
index 538bf4f..695a726 100644
--- a/kernel/cobalt/cond.c
+++ b/kernel/cobalt/cond.c
@@ -52,7 +52,7 @@
 #include "cond.h"
 
 static inline void
-cond_destroy_internal(cobalt_cond_t *cond, cobalt_kqueues_t *q)
+cond_destroy_internal(cobalt_cond_t *cond, struct cobalt_kqueues *q)
 {
spl_t s;
 
@@ -476,7 +476,7 @@ int cobalt_cond_wa

[Xenomai-git] Philippe Gerum : cobalt/nucleus: introduce dedicated ppd handlers

2013-06-09 Thread git repository hosting
Module: xenomai-forge
Branch: next
Commit: fd6397ac433baead69f9c30089213e0cc0e2da94
URL:
http://git.xenomai.org/?p=xenomai-forge.git;a=commit;h=fd6397ac433baead69f9c30089213e0cc0e2da94

Author: Philippe Gerum 
Date:   Fri Jun  7 10:31:46 2013 +0200

cobalt/nucleus: introduce dedicated ppd handlers

---

 include/asm-generic/syscall.h|2 -
 include/cobalt/nucleus/ppd.h |   18 ++--
 include/cobalt/nucleus/shadow.h  |   14 ++-
 include/cobalt/nucleus/sys_ppd.h |9 +-
 kernel/cobalt/cond.c |4 +-
 kernel/cobalt/cond.h |4 +-
 kernel/cobalt/internal.h |   55 +--
 kernel/cobalt/mq.c   |   78 
 kernel/cobalt/mq.h   |2 +-
 kernel/cobalt/mutex.c|6 +-
 kernel/cobalt/mutex.h|4 +-
 kernel/cobalt/nucleus/shadow.c   |  194 +++---
 kernel/cobalt/registry.c |2 +-
 kernel/cobalt/rtdm/core.c|2 +-
 kernel/cobalt/rtdm/internal.h|2 +-
 kernel/cobalt/rtdm/module.c  |2 +-
 kernel/cobalt/rtdm/syscall.c |   38 
 kernel/cobalt/sem.c  |   36 
 kernel/cobalt/sem.h  |6 +-
 kernel/cobalt/syscall.c  |  107 ++---
 kernel/cobalt/timer.c|6 +-
 kernel/cobalt/timer.h|2 +-
 22 files changed, 289 insertions(+), 304 deletions(-)

diff --git a/include/asm-generic/syscall.h b/include/asm-generic/syscall.h
index ff53380..d3e23f0 100644
--- a/include/asm-generic/syscall.h
+++ b/include/asm-generic/syscall.h
@@ -82,8 +82,6 @@ struct xnsysinfo {
 struct task_struct;
 struct pt_regs;
 
-#define XENOMAI_MAX_SYSENT 255
-
 struct xnsysent {
 
/*
diff --git a/include/cobalt/nucleus/ppd.h b/include/cobalt/nucleus/ppd.h
index 6680cb3..296dbfe 100644
--- a/include/cobalt/nucleus/ppd.h
+++ b/include/cobalt/nucleus/ppd.h
@@ -6,22 +6,20 @@
 
 struct mm_struct;
 
-typedef struct xnshadow_ppd_key {
+struct xnshadow_ppd_key {
unsigned long muxid;
struct mm_struct *mm;
-} xnshadow_ppd_key_t;
+};
 
-typedef struct xnshadow_ppd_t {
-   xnshadow_ppd_key_t key;
-   xnholder_t link;
-#define link2ppd(ln)   container_of(ln, xnshadow_ppd_t, link)
-} xnshadow_ppd_t;
+struct xnshadow_ppd {
+   struct xnshadow_ppd_key key;
+   struct xnholder link;
+};
 
 #define xnshadow_ppd_muxid(ppd) ((ppd)->key.muxid)
-
 #define xnshadow_ppd_mm(ppd)((ppd)->key.mm)
 
-/* Call with nklock locked irqs off. */
-xnshadow_ppd_t *xnshadow_ppd_get(unsigned int muxid);
+/* Called with nklock locked irqs off. */
+struct xnshadow_ppd *xnshadow_ppd_get(unsigned int muxid);
 
 #endif /* _XENO_NUCLEUS_PPD_H */
diff --git a/include/cobalt/nucleus/shadow.h b/include/cobalt/nucleus/shadow.h
index 52df983..917ba44 100644
--- a/include/cobalt/nucleus/shadow.h
+++ b/include/cobalt/nucleus/shadow.h
@@ -25,10 +25,6 @@
 
 #define XENOMAI_SKINS_NR  4
 
-/* Events sent to the interface callback */
-#define XNSHADOW_CLIENT_ATTACH  0
-#define XNSHADOW_CLIENT_DETACH  1
-
 struct xnthread;
 struct xnthread_user_window;
 struct xnmutex;
@@ -36,13 +32,19 @@ struct pt_regs;
 struct timespec;
 struct timeval;
 struct completion;
+struct xnshadow_ppd;
+
+struct xnskin_client_ops {
+   struct xnshadow_ppd *(*attach)(void);
+   void (*detach)(struct xnshadow_ppd *ppd);
+};
 
 struct xnskin_props {
const char *name;
-   unsigned magic;
+   unsigned int magic;
int nrcalls;
-   void *(*eventcb)(int, void *);
struct xnsysent *systab;
+   struct xnskin_client_ops ops;
 };
 
 static inline struct xnthread *xnshadow_current(void)
diff --git a/include/cobalt/nucleus/sys_ppd.h b/include/cobalt/nucleus/sys_ppd.h
index a714169..e60fd6d 100644
--- a/include/cobalt/nucleus/sys_ppd.h
+++ b/include/cobalt/nucleus/sys_ppd.h
@@ -5,24 +5,23 @@
 #include 
 
 struct xnsys_ppd {
-   xnshadow_ppd_t ppd;
-   xnheap_t sem_heap;
+   struct xnshadow_ppd ppd;
+   struct xnheap sem_heap;
unsigned long mayday_addr;
xnarch_atomic_t refcnt;
char *exe_path;
-#define ppd2sys(addr) container_of(addr, struct xnsys_ppd, ppd)
 };
 
 extern struct xnsys_ppd __xnsys_global_ppd;
 
 static inline struct xnsys_ppd *xnsys_ppd_get(int global)
 {
-   xnshadow_ppd_t *ppd;
+   struct xnshadow_ppd *ppd;
 
if (global || (ppd = xnshadow_ppd_get(0)) == NULL)
return &__xnsys_global_ppd;
 
-   return ppd2sys(ppd);
+   return container_of(ppd, struct xnsys_ppd, ppd);
 }
 
 #endif /* _XENO_NUCLEUS_SYS_PPD_H */
diff --git a/kernel/cobalt/cond.c b/kernel/cobalt/cond.c
index 538bf4f..695a726 100644
--- a/kernel/cobalt/cond.c
+++ b/kernel/cobalt/cond.c
@@ -52,7 +52,7 @@
 #include "cond.h"
 
 static inline void
-cond_destroy_internal(cobalt_cond_t *cond, cobalt_kqueues_t *q)
+cond_destroy_internal(cobalt_cond_t *cond, struct cobalt_kqueues *q)
 {
spl_t s;
 
@@ -476,7 +476,7 @@ int cobalt_cond_wa