[Xenomai-git] Philippe Gerum : cobalt/nucleus: introduce dedicated ppd handlers
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
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
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
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