Module: xenomai-forge Branch: next Commit: ccacefe39f4531079bc58534c1bcd76ba46e769a URL: http://git.xenomai.org/?p=xenomai-forge.git;a=commit;h=ccacefe39f4531079bc58534c1bcd76ba46e769a
Author: Philippe Gerum <r...@xenomai.org> Date: Sat May 17 18:58:44 2014 +0200 cobalt/rtdm: fixup tracepoints after RTDM API changes --- include/cobalt/kernel/rtdm/driver.h | 49 ++--------------- include/cobalt/kernel/rtdm/fd.h | 33 ++++++------ kernel/cobalt/rtdm/core.c | 13 +++-- kernel/cobalt/rtdm/device.c | 2 +- kernel/cobalt/rtdm/drvlib.c | 54 ++++++++++++++----- kernel/cobalt/rtdm/fd.c | 67 +++++++++-------------- kernel/cobalt/trace/cobalt-rtdm.h | 101 ++++++++++++++++------------------- 7 files changed, 143 insertions(+), 176 deletions(-) diff --git a/include/cobalt/kernel/rtdm/driver.h b/include/cobalt/kernel/rtdm/driver.h index e3ccc9c..6c805d8 100644 --- a/include/cobalt/kernel/rtdm/driver.h +++ b/include/cobalt/kernel/rtdm/driver.h @@ -1466,22 +1466,9 @@ void rtdm_event_signal(rtdm_event_t *event); void rtdm_event_clear(rtdm_event_t *event); -#ifndef DOXYGEN_CPP /* Avoid static inline tags for RTDM in doxygen */ -void __rtdm_synch_flush(struct xnsynch *synch, unsigned long reason); - -static inline void rtdm_event_pulse(rtdm_event_t *event) -{ - trace_cobalt_driver_event_pulse(event); - __rtdm_synch_flush(&event->synch_base, 0); -} +void rtdm_event_pulse(rtdm_event_t *event); -static inline void rtdm_event_destroy(rtdm_event_t *event) -{ - trace_cobalt_driver_event_destroy(event); - __rtdm_synch_flush(&event->synch_base, XNRMID); - xnselect_destroy(&event->select_block); -} -#endif /* !DOXYGEN_CPP */ +void rtdm_event_destroy(rtdm_event_t *event); /* --- semaphore services --- */ @@ -1499,14 +1486,7 @@ int rtdm_sem_timeddown(rtdm_sem_t *sem, nanosecs_rel_t timeout, rtdm_toseq_t *timeout_seq); void rtdm_sem_up(rtdm_sem_t *sem); -#ifndef DOXYGEN_CPP /* Avoid static inline tags for RTDM in doxygen */ -static inline void rtdm_sem_destroy(rtdm_sem_t *sem) -{ - trace_cobalt_driver_sem_destroy(sem); - __rtdm_synch_flush(&sem->synch_base, XNRMID); - xnselect_destroy(&sem->select_block); -} -#endif /* !DOXYGEN_CPP */ +void rtdm_sem_destroy(rtdm_sem_t *sem); /* --- mutex services --- */ @@ -1518,27 +1498,8 @@ void rtdm_mutex_init(rtdm_mutex_t *mutex); int rtdm_mutex_lock(rtdm_mutex_t *mutex); int rtdm_mutex_timedlock(rtdm_mutex_t *mutex, nanosecs_rel_t timeout, rtdm_toseq_t *timeout_seq); - -#ifndef DOXYGEN_CPP /* Avoid static inline tags for RTDM in doxygen */ -static inline void rtdm_mutex_unlock(rtdm_mutex_t *mutex) -{ - if (!XENO_ASSERT(RTDM, !xnsched_interrupt_p())) - return; - - trace_cobalt_driver_mutex_release(mutex); - - if (unlikely(xnsynch_release(&mutex->synch_base, - xnsched_current_thread()) != NULL)) - xnsched_run(); -} - -static inline void rtdm_mutex_destroy(rtdm_mutex_t *mutex) -{ - trace_cobalt_driver_mutex_destroy(mutex); - - __rtdm_synch_flush(&mutex->synch_base, XNRMID); -} -#endif /* !DOXYGEN_CPP */ +void rtdm_mutex_unlock(rtdm_mutex_t *mutex); +void rtdm_mutex_destroy(rtdm_mutex_t *mutex); /* --- utility functions --- */ diff --git a/include/cobalt/kernel/rtdm/fd.h b/include/cobalt/kernel/rtdm/fd.h index f137b00..a107315 100644 --- a/include/cobalt/kernel/rtdm/fd.h +++ b/include/cobalt/kernel/rtdm/fd.h @@ -125,15 +125,15 @@ struct rtdm_fd_ops { rtdm_fd_sendmsg_t *sendmsg_rt; rtdm_fd_sendmsg_t *sendmsg_nrt; int (*select_bind)(struct rtdm_fd *fd, struct xnselector *selector, - unsigned type, unsigned index); + unsigned int type, unsigned int index); void (*close)(struct rtdm_fd *fd); }; struct rtdm_fd { - unsigned magic; + unsigned int magic; struct rtdm_fd_ops *ops; struct xnsys_ppd *cont; - unsigned refs; + unsigned int refs; struct list_head cleanup; }; @@ -150,9 +150,10 @@ static inline struct xnsys_ppd *rtdm_fd_owner(struct rtdm_fd *fd) } int rtdm_fd_enter(struct xnsys_ppd *p, struct rtdm_fd *rtdm_fd, int ufd, - unsigned magic, struct rtdm_fd_ops *ops); + unsigned int magic, struct rtdm_fd_ops *ops); -struct rtdm_fd *rtdm_fd_get(struct xnsys_ppd *p, int ufd, unsigned magic); +struct rtdm_fd *rtdm_fd_get(struct xnsys_ppd *p, + int ufd, unsigned int magic); int rtdm_fd_lock(struct rtdm_fd *fd); @@ -160,24 +161,26 @@ void rtdm_fd_put(struct rtdm_fd *fd); void rtdm_fd_unlock(struct rtdm_fd *fd); -int rtdm_fd_ioctl(struct xnsys_ppd *p, int fd, unsigned request, ...); +int rtdm_fd_ioctl(struct xnsys_ppd *p, int fd, unsigned int request, ...); -ssize_t rtdm_fd_read(struct xnsys_ppd *p, int fd, void __user *buf, size_t size); +ssize_t rtdm_fd_read(struct xnsys_ppd *p, int fd, + void __user *buf, size_t size); -ssize_t -rtdm_fd_write(struct xnsys_ppd *p, int fd, const void __user *buf, size_t size); +ssize_t rtdm_fd_write(struct xnsys_ppd *p, int fd, + const void __user *buf, size_t size); -int rtdm_fd_close(struct xnsys_ppd *p, int fd, unsigned magic); +int rtdm_fd_close(struct xnsys_ppd *p, int fd, unsigned int magic); -ssize_t -rtdm_fd_recvmsg(struct xnsys_ppd *p, int fd, struct msghdr *msg, int flags); +ssize_t rtdm_fd_recvmsg(struct xnsys_ppd *p, int fd, + struct msghdr *msg, int flags); -ssize_t -rtdm_fd_sendmsg(struct xnsys_ppd *p, int fd, const struct msghdr *msg, int flags); +ssize_t rtdm_fd_sendmsg(struct xnsys_ppd *p, int fd, + const struct msghdr *msg, int flags); int rtdm_fd_valid_p(int ufd); -int rtdm_fd_select_bind(int ufd, struct xnselector *selector, unsigned type); +int rtdm_fd_select_bind(int ufd, struct xnselector *selector, + unsigned int type); void rtdm_fd_cleanup(struct xnsys_ppd *p); diff --git a/kernel/cobalt/rtdm/core.c b/kernel/cobalt/rtdm/core.c index 97cfe7e..c05d80d 100644 --- a/kernel/cobalt/rtdm/core.c +++ b/kernel/cobalt/rtdm/core.c @@ -60,11 +60,10 @@ void __rt_dev_close(struct rtdm_fd *fd) { struct rtdm_dev_context *context = rtdm_fd_to_context(fd); context->reserved.close(fd); - trace_cobalt_fd_closed(context); cleanup_instance(context->device, context); } -void __rt_dev_unref(struct rtdm_fd *fd, unsigned idx) +void __rt_dev_unref(struct rtdm_fd *fd, unsigned int idx) { if (fd->magic != RTDM_FD_MAGIC) return; @@ -158,7 +157,7 @@ int __rt_dev_open(struct xnsys_ppd *p, int ufd, const char *path, int oflag) goto cleanup_out; ufd = ret; - trace_cobalt_fd_open(current, context, oflag); + trace_cobalt_fd_open(current, &context->fd, ufd, oflag); ret = device->open(&context->fd, oflag); @@ -168,7 +167,7 @@ int __rt_dev_open(struct xnsys_ppd *p, int ufd, const char *path, int oflag) if (unlikely(ret < 0)) goto cleanup_out; - trace_cobalt_fd_created(context); + trace_cobalt_fd_created(&context->fd, ufd); return ufd; @@ -197,7 +196,7 @@ int __rt_dev_socket(struct xnsys_ppd *p, int ufd, int protocol_family, goto cleanup_out; ufd = ret; - trace_cobalt_fd_socket(current, context, protocol_family); + trace_cobalt_fd_socket(current, &context->fd, ufd, protocol_family); ret = device->socket(&context->fd, protocol); @@ -207,7 +206,7 @@ int __rt_dev_socket(struct xnsys_ppd *p, int ufd, int protocol_family, if (unlikely(ret < 0)) goto cleanup_out; - trace_cobalt_fd_created(context); + trace_cobalt_fd_created(&context->fd, ufd); return ufd; @@ -220,7 +219,7 @@ err_out: EXPORT_SYMBOL_GPL(__rt_dev_socket); int -__rt_dev_ioctl_fallback(struct rtdm_fd *fd, unsigned request, void __user *arg) +__rt_dev_ioctl_fallback(struct rtdm_fd *fd, unsigned int request, void __user *arg) { struct rtdm_device *dev = rtdm_fd_device(fd); struct rtdm_device_info dev_info; diff --git a/kernel/cobalt/rtdm/device.c b/kernel/cobalt/rtdm/device.c index b91c237..d1332bf 100644 --- a/kernel/cobalt/rtdm/device.c +++ b/kernel/cobalt/rtdm/device.c @@ -64,7 +64,7 @@ int rtdm_no_support(void) int rtdm_select_bind_no_support(struct rtdm_fd *fd, struct xnselector *selector, - unsigned type, unsigned index) + unsigned int type, unsigned int index) { return -EBADF; } diff --git a/kernel/cobalt/rtdm/drvlib.c b/kernel/cobalt/rtdm/drvlib.c index 1cd76bc..515f4a3 100644 --- a/kernel/cobalt/rtdm/drvlib.c +++ b/kernel/cobalt/rtdm/drvlib.c @@ -787,7 +787,6 @@ void rtdm_event_init(rtdm_event_t *event, unsigned long pending) EXPORT_SYMBOL_GPL(rtdm_event_init); -#ifdef DOXYGEN_CPP /* Only used for doxygen doc generation */ /** * @brief Destroy an event * @@ -803,7 +802,13 @@ EXPORT_SYMBOL_GPL(rtdm_event_init); * * Rescheduling: possible. */ -void rtdm_event_destroy(rtdm_event_t *event); +void rtdm_event_destroy(rtdm_event_t *event) +{ + trace_cobalt_driver_event_destroy(event); + __rtdm_synch_flush(&event->synch_base, XNRMID); + xnselect_destroy(&event->select_block); +} +EXPORT_SYMBOL_GPL(rtdm_event_destroy); /** * @brief Signal an event occurrence to currently listening waiters @@ -825,8 +830,12 @@ void rtdm_event_destroy(rtdm_event_t *event); * * Rescheduling: possible. */ -void rtdm_event_pulse(rtdm_event_t *event); -#endif /* DOXYGEN_CPP */ +void rtdm_event_pulse(rtdm_event_t *event) +{ + trace_cobalt_driver_event_pulse(event); + __rtdm_synch_flush(&event->synch_base, 0); +} +EXPORT_SYMBOL_GPL(rtdm_event_pulse); /** * @brief Signal an event occurrence @@ -1063,7 +1072,7 @@ EXPORT_SYMBOL_GPL(rtdm_event_clear); * Rescheduling: never. */ int rtdm_event_select_bind(rtdm_event_t *event, rtdm_selector_t *selector, - enum rtdm_selecttype type, unsigned fd_index) + enum rtdm_selecttype type, unsigned int fd_index) { struct xnselect_binding *binding; int err; @@ -1128,7 +1137,6 @@ void rtdm_sem_init(rtdm_sem_t *sem, unsigned long value) EXPORT_SYMBOL_GPL(rtdm_sem_init); -#ifdef DOXYGEN_CPP /* Only used for doxygen doc generation */ /** * @brief Destroy a semaphore * @@ -1144,8 +1152,13 @@ EXPORT_SYMBOL_GPL(rtdm_sem_init); * * Rescheduling: possible. */ -void rtdm_sem_destroy(rtdm_sem_t *sem); -#endif /* DOXYGEN_CPP */ +void rtdm_sem_destroy(rtdm_sem_t *sem) +{ + trace_cobalt_driver_sem_destroy(sem); + __rtdm_synch_flush(&sem->synch_base, XNRMID); + xnselect_destroy(&sem->select_block); +} +EXPORT_SYMBOL_GPL(rtdm_sem_destroy); /** * @brief Decrement a semaphore @@ -1338,7 +1351,7 @@ EXPORT_SYMBOL_GPL(rtdm_sem_up); * Rescheduling: never. */ int rtdm_sem_select_bind(rtdm_sem_t *sem, rtdm_selector_t *selector, - enum rtdm_selecttype type, unsigned fd_index) + enum rtdm_selecttype type, unsigned int fd_index) { struct xnselect_binding *binding; int err; @@ -1403,7 +1416,6 @@ void rtdm_mutex_init(rtdm_mutex_t *mutex) EXPORT_SYMBOL_GPL(rtdm_mutex_init); -#ifdef DOXYGEN_CPP /* Only used for doxygen doc generation */ /** * @brief Destroy a mutex * @@ -1419,7 +1431,13 @@ EXPORT_SYMBOL_GPL(rtdm_mutex_init); * * Rescheduling: possible. */ -void rtdm_mutex_destroy(rtdm_mutex_t *mutex); +void rtdm_mutex_destroy(rtdm_mutex_t *mutex) +{ + trace_cobalt_driver_mutex_destroy(mutex); + + __rtdm_synch_flush(&mutex->synch_base, XNRMID); +} +EXPORT_SYMBOL_GPL(rtdm_mutex_destroy); /** * @brief Release a mutex @@ -1438,8 +1456,18 @@ void rtdm_mutex_destroy(rtdm_mutex_t *mutex); * * Rescheduling: possible. */ -void rtdm_mutex_unlock(rtdm_mutex_t *mutex); -#endif /* DOXYGEN_CPP */ +void rtdm_mutex_unlock(rtdm_mutex_t *mutex) +{ + if (!XENO_ASSERT(RTDM, !xnsched_interrupt_p())) + return; + + trace_cobalt_driver_mutex_release(mutex); + + if (unlikely(xnsynch_release(&mutex->synch_base, + xnsched_current_thread()) != NULL)) + xnsched_run(); +} +EXPORT_SYMBOL_GPL(rtdm_mutex_unlock); /** * @brief Request a mutex diff --git a/kernel/cobalt/rtdm/fd.c b/kernel/cobalt/rtdm/fd.c index 5cc2716..15ca4cb 100644 --- a/kernel/cobalt/rtdm/fd.c +++ b/kernel/cobalt/rtdm/fd.c @@ -35,9 +35,10 @@ static DEFINE_XNLOCK(__rtdm_fd_lock); static LIST_HEAD(rtdm_fd_cleanup_queue); static struct semaphore rtdm_fd_cleanup_sem; -extern int -__rt_dev_ioctl_fallback(struct rtdm_fd *fd, unsigned request, void __user *arg); -extern void __rt_dev_unref(struct rtdm_fd *fd, unsigned idx); +int __rt_dev_ioctl_fallback(struct rtdm_fd *fd, + unsigned int request, void __user *arg); + +void __rt_dev_unref(struct rtdm_fd *fd, unsigned int idx); static int enosys(void) { @@ -73,7 +74,7 @@ static struct rtdm_fd *rtdm_fd_fetch(struct xnsys_ppd *p, int ufd) } int rtdm_fd_enter(struct xnsys_ppd *p, struct rtdm_fd *fd, int ufd, - unsigned magic, struct rtdm_fd_ops *ops) + unsigned int magic, struct rtdm_fd_ops *ops) { struct rtdm_fd_index *idx; spl_t s; @@ -169,7 +170,7 @@ int rtdm_fd_enter(struct xnsys_ppd *p, struct rtdm_fd *fd, int ufd, return err; } -struct rtdm_fd *rtdm_fd_get(struct xnsys_ppd *p, int ufd, unsigned magic) +struct rtdm_fd *rtdm_fd_get(struct xnsys_ppd *p, int ufd, unsigned int magic) { struct rtdm_fd *res; spl_t s; @@ -300,7 +301,7 @@ void rtdm_fd_unlock(struct rtdm_fd *fd) } EXPORT_SYMBOL_GPL(rtdm_fd_unlock); -int rtdm_fd_ioctl(struct xnsys_ppd *p, int ufd, unsigned request, ...) +int rtdm_fd_ioctl(struct xnsys_ppd *p, int ufd, unsigned int request, ...) { void __user *arg; struct rtdm_fd *fd; @@ -317,9 +318,7 @@ int rtdm_fd_ioctl(struct xnsys_ppd *p, int ufd, unsigned request, ...) goto out; } -#if 0 - trace_cobalt_fd_ioctl(current, fd, request, arg); -#endif + trace_cobalt_fd_ioctl(current, fd, ufd, request); if (ipipe_root_p) err = fd->ops->ioctl_nrt(fd, request, arg); @@ -337,10 +336,9 @@ int rtdm_fd_ioctl(struct xnsys_ppd *p, int ufd, unsigned request, ...) rtdm_fd_put(fd); out: -#if 0 if (err < 0) - trace_cobalt_fd_ioctl_status(current, fd, err); -#endif + trace_cobalt_fd_ioctl_status(current, fd, ufd, err); + return err; } EXPORT_SYMBOL_GPL(rtdm_fd_ioctl); @@ -357,9 +355,7 @@ rtdm_fd_read(struct xnsys_ppd *p, int ufd, void __user *buf, size_t size) goto out; } -#if 0 - trace_cobalt_fd_read(current, fd, size); -#endif + trace_cobalt_fd_read(current, fd, ufd, size); if (ipipe_root_p) err = fd->ops->read_nrt(fd, buf, size); @@ -372,10 +368,9 @@ rtdm_fd_read(struct xnsys_ppd *p, int ufd, void __user *buf, size_t size) rtdm_fd_put(fd); out: -#if 0 if (err < 0) - trace_cobalt_fd_read_status(current, fd, err); -#endif + trace_cobalt_fd_read_status(current, fd, ufd, err); + return err; } EXPORT_SYMBOL_GPL(rtdm_fd_read); @@ -392,9 +387,7 @@ ssize_t rtdm_fd_write(struct xnsys_ppd *p, int ufd, goto out; } -#if 0 - trace_cobalt_fd_write(current, fd, size); -#endif + trace_cobalt_fd_write(current, fd, ufd, size); if (ipipe_root_p) err = fd->ops->write_nrt(fd, buf, size); @@ -407,10 +400,9 @@ ssize_t rtdm_fd_write(struct xnsys_ppd *p, int ufd, rtdm_fd_put(fd); out: -#if 0 if (err < 0) - trace_cobalt_fd_write_status(current, fd, err); -#endif + trace_cobalt_fd_write_status(current, fd, ufd, err); + return err; } EXPORT_SYMBOL_GPL(rtdm_fd_write); @@ -427,9 +419,7 @@ rtdm_fd_recvmsg(struct xnsys_ppd *p, int ufd, struct msghdr *msg, int flags) goto out; } -#if 0 - trace_cobalt_fd_recvmsg(current, fd, flags); -#endif + trace_cobalt_fd_recvmsg(current, fd, ufd, flags); if (ipipe_root_p) err = fd->ops->recvmsg_nrt(fd, msg, flags); @@ -442,10 +432,9 @@ rtdm_fd_recvmsg(struct xnsys_ppd *p, int ufd, struct msghdr *msg, int flags) rtdm_fd_put(fd); out: -#if 0 if (err < 0) - trace_cobalt_fd_recvmsg_status(current, fd, err); -#endif + trace_cobalt_fd_recvmsg_status(current, fd, ufd, err); + return err; } EXPORT_SYMBOL_GPL(rtdm_fd_recvmsg); @@ -462,9 +451,7 @@ rtdm_fd_sendmsg(struct xnsys_ppd *p, int ufd, const struct msghdr *msg, int flag goto out; } -#if 0 - trace_cobalt_fd_sendmsg(current, fd, flags); -#endif + trace_cobalt_fd_sendmsg(current, fd, ufd, flags); if (ipipe_root_p) err = fd->ops->sendmsg_nrt(fd, msg, flags); @@ -477,10 +464,9 @@ rtdm_fd_sendmsg(struct xnsys_ppd *p, int ufd, const struct msghdr *msg, int flag rtdm_fd_put(fd); out: -#if 0 if (err < 0) - trace_cobalt_fd_sendmsg_status(current, fd, err); -#endif + trace_cobalt_fd_sendmsg_status(current, fd, ufd, err); + return err; } EXPORT_SYMBOL_GPL(rtdm_fd_sendmsg); @@ -494,7 +480,7 @@ rtdm_fd_close_inner(struct xnsys_ppd *p, struct rtdm_fd_index *idx, spl_t s) kfree(idx); } -int rtdm_fd_close(struct xnsys_ppd *p, int ufd, unsigned magic) +int rtdm_fd_close(struct xnsys_ppd *p, int ufd, unsigned int magic) { struct rtdm_fd_index *idx; struct rtdm_fd *fd; @@ -512,9 +498,7 @@ int rtdm_fd_close(struct xnsys_ppd *p, int ufd, unsigned magic) return -EBADF; } -#if 0 - trace_cobalt_fd_close(current, fd, fd->refs); -#endif + trace_cobalt_fd_close(current, fd, ufd, fd->refs); __rt_dev_unref(fd, xnid_id(&idx->id)); rtdm_fd_close_inner(p, idx, s); @@ -564,7 +548,8 @@ int rtdm_fd_valid_p(int ufd) * * Rescheduling: never. */ -int rtdm_fd_select_bind(int ufd, struct xnselector *selector, unsigned type) +int rtdm_fd_select_bind(int ufd, struct xnselector *selector, + unsigned int type) { struct xnsys_ppd *p; struct rtdm_fd *fd; diff --git a/kernel/cobalt/trace/cobalt-rtdm.h b/kernel/cobalt/trace/cobalt-rtdm.h index 1828fc7..3f364ef 100644 --- a/kernel/cobalt/trace/cobalt-rtdm.h +++ b/kernel/cobalt/trace/cobalt-rtdm.h @@ -14,74 +14,70 @@ struct rtdm_device; struct rtdm_dev_context; DECLARE_EVENT_CLASS(fd_event, - TP_PROTO(struct rtdm_dev_context *context), - TP_ARGS(context), + TP_PROTO(struct rtdm_fd *fd, int ufd), + TP_ARGS(fd, ufd), TP_STRUCT__entry( __field(struct rtdm_device *, device) - __field(int, fd) + __field(int, ufd) ), TP_fast_assign( - __entry->device = context->device; - __entry->fd = context->fd; + __entry->device = rtdm_fd_to_context(fd)->device; + __entry->ufd = ufd; ), TP_printk("device=%p fd=%d", - __entry->device, __entry->fd) + __entry->device, __entry->ufd) ); DECLARE_EVENT_CLASS(fd_request, TP_PROTO(struct task_struct *task, - struct rtdm_dev_context *context, unsigned long arg), - TP_ARGS(task, context, arg), + struct rtdm_fd *fd, int ufd, unsigned long arg), + TP_ARGS(task, fd, ufd, arg), TP_STRUCT__entry( - __field(struct task_struct *, task) __array(char, comm, TASK_COMM_LEN) __field(pid_t, pid) __field(struct rtdm_device *, device) - __field(int, fd) + __field(int, ufd) __field(unsigned long, arg) ), TP_fast_assign( - __entry->task = task; memcpy(__entry->comm, task->comm, TASK_COMM_LEN); __entry->pid = task->pid; - __entry->device = context->device; - __entry->fd = context->fd; + __entry->device = rtdm_fd_to_context(fd)->device; + __entry->ufd = ufd; __entry->arg = arg; ), TP_printk("device=%p fd=%d arg=%#lx pid=%d comm=%s", - __entry->device, __entry->fd, __entry->arg, + __entry->device, __entry->ufd, __entry->arg, __entry->pid, __entry->comm) ); DECLARE_EVENT_CLASS(fd_request_status, TP_PROTO(struct task_struct *task, - struct rtdm_dev_context *context, int status), - TP_ARGS(task, context, status), + struct rtdm_fd *fd, int ufd, int status), + TP_ARGS(task, fd, ufd, status), TP_STRUCT__entry( - __field(struct task_struct *, task) __array(char, comm, TASK_COMM_LEN) __field(pid_t, pid) __field(struct rtdm_device *, device) - __field(int, fd) + __field(int, ufd) ), TP_fast_assign( - __entry->task = task; memcpy(__entry->comm, task->comm, TASK_COMM_LEN); __entry->pid = task->pid; - __entry->device = context->device; - __entry->fd = context->fd; + __entry->device = rtdm_fd_to_context(fd)->device; + __entry->ufd = ufd; ), TP_printk("device=%p fd=%d pid=%d comm=%s", - __entry->device, __entry->fd, __entry->pid, __entry->comm) + __entry->device, __entry->ufd, __entry->pid, __entry->comm) ); DECLARE_EVENT_CLASS(task_op, @@ -199,104 +195,99 @@ TRACE_EVENT(cobalt_device_unregister, ); DEFINE_EVENT(fd_event, cobalt_fd_created, - TP_PROTO(struct rtdm_dev_context *context), - TP_ARGS(context) -); - -DEFINE_EVENT(fd_event, cobalt_fd_closed, - TP_PROTO(struct rtdm_dev_context *context), - TP_ARGS(context) + TP_PROTO(struct rtdm_fd *fd, int ufd), + TP_ARGS(fd, ufd) ); DEFINE_EVENT(fd_request, cobalt_fd_open, TP_PROTO(struct task_struct *task, - struct rtdm_dev_context *context, + struct rtdm_fd *fd, int ufd, unsigned long oflags), - TP_ARGS(task, context, oflags) + TP_ARGS(task, fd, ufd, oflags) ); DEFINE_EVENT(fd_request, cobalt_fd_close, TP_PROTO(struct task_struct *task, - struct rtdm_dev_context *context, + struct rtdm_fd *fd, int ufd, unsigned long lock_count), - TP_ARGS(task, context, lock_count) + TP_ARGS(task, fd, ufd, lock_count) ); DEFINE_EVENT(fd_request, cobalt_fd_socket, TP_PROTO(struct task_struct *task, - struct rtdm_dev_context *context, + struct rtdm_fd *fd, int ufd, unsigned long protocol_family), - TP_ARGS(task, context, protocol_family) + TP_ARGS(task, fd, ufd, protocol_family) ); DEFINE_EVENT(fd_request, cobalt_fd_read, TP_PROTO(struct task_struct *task, - struct rtdm_dev_context *context, + struct rtdm_fd *fd, int ufd, unsigned long len), - TP_ARGS(task, context, len) + TP_ARGS(task, fd, ufd, len) ); DEFINE_EVENT(fd_request, cobalt_fd_write, TP_PROTO(struct task_struct *task, - struct rtdm_dev_context *context, + struct rtdm_fd *fd, int ufd, unsigned long len), - TP_ARGS(task, context, len) + TP_ARGS(task, fd, ufd, len) ); DEFINE_EVENT(fd_request, cobalt_fd_ioctl, TP_PROTO(struct task_struct *task, - struct rtdm_dev_context *context, + struct rtdm_fd *fd, int ufd, unsigned long request), - TP_ARGS(task, context, request) + TP_ARGS(task, fd, ufd, request) ); DEFINE_EVENT(fd_request, cobalt_fd_sendmsg, TP_PROTO(struct task_struct *task, - struct rtdm_dev_context *context, + struct rtdm_fd *fd, int ufd, unsigned long flags), - TP_ARGS(task, context, flags) + TP_ARGS(task, fd, ufd, flags) ); DEFINE_EVENT(fd_request, cobalt_fd_recvmsg, TP_PROTO(struct task_struct *task, - struct rtdm_dev_context *context, + struct rtdm_fd *fd, int ufd, unsigned long flags), - TP_ARGS(task, context, flags) + TP_ARGS(task, fd, ufd, flags) ); DEFINE_EVENT(fd_request_status, cobalt_fd_ioctl_status, TP_PROTO(struct task_struct *task, - struct rtdm_dev_context *context, + struct rtdm_fd *fd, int ufd, int status), - TP_ARGS(task, context, status) + TP_ARGS(task, fd, ufd, status) ); DEFINE_EVENT(fd_request_status, cobalt_fd_read_status, TP_PROTO(struct task_struct *task, - struct rtdm_dev_context *context, + struct rtdm_fd *fd, int ufd, int status), - TP_ARGS(task, context, status) + TP_ARGS(task, fd, ufd, status) ); DEFINE_EVENT(fd_request_status, cobalt_fd_write_status, TP_PROTO(struct task_struct *task, - struct rtdm_dev_context *context, + struct rtdm_fd *fd, int ufd, int status), - TP_ARGS(task, context, status) + TP_ARGS(task, fd, ufd, status) ); DEFINE_EVENT(fd_request_status, cobalt_fd_recvmsg_status, TP_PROTO(struct task_struct *task, - struct rtdm_dev_context *context, + struct rtdm_fd *fd, int ufd, int status), - TP_ARGS(task, context, status) + TP_ARGS(task, fd, ufd, status) ); DEFINE_EVENT(fd_request_status, cobalt_fd_sendmsg_status, TP_PROTO(struct task_struct *task, - struct rtdm_dev_context *context, + struct rtdm_fd *fd, int ufd, int status), - TP_ARGS(task, context, status) + TP_ARGS(task, fd, ufd, status) ); DEFINE_EVENT(task_op, cobalt_driver_task_join, _______________________________________________ Xenomai-git mailing list Xenomai-git@xenomai.org http://www.xenomai.org/mailman/listinfo/xenomai-git