21 #define TRACE_SYSTEM cobalt_posix 23 #if !defined(_TRACE_COBALT_POSIX_H) || defined(TRACE_HEADER_MULTI_READ) 24 #define _TRACE_COBALT_POSIX_H 26 #include <linux/tracepoint.h> 27 #include <xenomai/posix/cond.h> 28 #include <xenomai/posix/mqueue.h> 29 #include <xenomai/posix/event.h> 31 #define __timespec_fields(__name) \ 32 __field(__kernel_time_t, tv_sec_##__name) \ 33 __field(long, tv_nsec_##__name) 35 #define __assign_timespec(__to, __from) \ 37 __entry->tv_sec_##__to = (__from)->tv_sec; \ 38 __entry->tv_nsec_##__to = (__from)->tv_nsec; \ 41 #define __timespec_args(__name) \ 42 __entry->tv_sec_##__name, __entry->tv_nsec_##__name 44 DECLARE_EVENT_CLASS(syscall_entry,
45 TP_PROTO(
struct xnthread *thread,
unsigned int nr),
49 __field(
struct xnthread *, thread)
50 __string(name, thread ? thread->name :
"(anon)")
51 __field(
unsigned int, nr)
55 __entry->thread = thread;
56 __assign_str(name, thread ? thread->name :
"(anon)");
60 TP_printk(
"thread=%p(%s) syscall=%u",
61 __entry->thread, __get_str(name), __entry->nr)
64 DECLARE_EVENT_CLASS(syscall_exit,
65 TP_PROTO(
struct xnthread *thread,
long result),
66 TP_ARGS(thread, result),
69 __field(
struct xnthread *, thread)
74 __entry->thread = thread;
75 __entry->result = result;
78 TP_printk(
"thread=%p result=%ld",
79 __entry->thread, __entry->result)
82 #define cobalt_print_sched_policy(__policy) \ 83 __print_symbolic(__policy, \ 84 {SCHED_NORMAL, "normal"}, \ 85 {SCHED_FIFO, "fifo"}, \ 88 {SCHED_QUOTA, "quota"}, \ 89 {SCHED_SPORADIC, "sporadic"}, \ 90 {SCHED_COBALT, "cobalt"}, \ 93 #define cobalt_print_sched_params(__policy, __p_ex) \ 95 const unsigned char *__ret = trace_seq_buffer_ptr(p); \ 98 trace_seq_printf(p, "priority=%d, group=%d", \ 99 (__p_ex)->sched_priority, \ 100 (__p_ex)->sched_quota_group); \ 103 trace_seq_printf(p, "priority=%d, partition=%d", \ 104 (__p_ex)->sched_priority, \ 105 (__p_ex)->sched_tp_partition); \ 109 case SCHED_SPORADIC: \ 110 trace_seq_printf(p, "priority=%d, low_priority=%d, " \ 111 "budget=(%ld.%09ld), period=(%ld.%09ld), "\ 113 (__p_ex)->sched_priority, \ 114 (__p_ex)->sched_ss_low_priority, \ 115 (__p_ex)->sched_ss_init_budget.tv_sec, \ 116 (__p_ex)->sched_ss_init_budget.tv_nsec, \ 117 (__p_ex)->sched_ss_repl_period.tv_sec, \ 118 (__p_ex)->sched_ss_repl_period.tv_nsec, \ 119 (__p_ex)->sched_ss_max_repl); \ 126 trace_seq_printf(p, "priority=%d", \ 127 (__p_ex)->sched_priority); \ 130 trace_seq_putc(p, '\0'); \ 134 DECLARE_EVENT_CLASS(cobalt_posix_schedparam,
135 TP_PROTO(
unsigned long pth,
int policy,
136 const struct sched_param_ex *param_ex),
137 TP_ARGS(pth, policy, param_ex),
140 __field(
unsigned long, pth)
142 __dynamic_array(
char, param_ex,
sizeof(
struct sched_param_ex))
147 __entry->policy = policy;
148 memcpy(__get_dynamic_array(param_ex), param_ex,
sizeof(*param_ex));
151 TP_printk(
"pth=%p policy=%d(%s) param={ %s }",
152 (
void *)__entry->pth, __entry->policy,
153 cobalt_print_sched_policy(__entry->policy),
154 cobalt_print_sched_params(__entry->policy,
155 (
struct sched_param_ex *)
156 __get_dynamic_array(param_ex))
160 DECLARE_EVENT_CLASS(cobalt_posix_scheduler,
161 TP_PROTO(pid_t pid,
int policy,
162 const struct sched_param_ex *param_ex),
163 TP_ARGS(pid, policy, param_ex),
168 __dynamic_array(
char, param_ex,
sizeof(
struct sched_param_ex))
173 __entry->policy = policy;
174 memcpy(__get_dynamic_array(param_ex), param_ex,
sizeof(*param_ex));
177 TP_printk(
"pid=%d policy=%d(%s) param={ %s }",
178 __entry->pid, __entry->policy,
179 cobalt_print_sched_policy(__entry->policy),
180 cobalt_print_sched_params(__entry->policy,
181 (
struct sched_param_ex *)
182 __get_dynamic_array(param_ex))
186 DECLARE_EVENT_CLASS(cobalt_void,
190 __array(
char, dummy, 0)
198 DEFINE_EVENT(syscall_entry, cobalt_head_sysentry,
199 TP_PROTO(
struct xnthread *thread,
unsigned int nr),
203 DEFINE_EVENT(syscall_exit, cobalt_head_sysexit,
204 TP_PROTO(
struct xnthread *thread,
long result),
205 TP_ARGS(thread, result)
208 DEFINE_EVENT(syscall_entry, cobalt_root_sysentry,
209 TP_PROTO(
struct xnthread *thread,
unsigned int nr),
213 DEFINE_EVENT(syscall_exit, cobalt_root_sysexit,
214 TP_PROTO(
struct xnthread *thread,
long result),
215 TP_ARGS(thread, result)
218 DEFINE_EVENT(cobalt_posix_schedparam, cobalt_pthread_create,
219 TP_PROTO(
unsigned long pth,
int policy,
220 const struct sched_param_ex *param_ex),
221 TP_ARGS(pth, policy, param_ex)
224 DEFINE_EVENT(cobalt_posix_schedparam, cobalt_pthread_setschedparam,
225 TP_PROTO(
unsigned long pth,
int policy,
226 const struct sched_param_ex *param_ex),
227 TP_ARGS(pth, policy, param_ex)
230 DEFINE_EVENT(cobalt_posix_schedparam, cobalt_pthread_getschedparam,
231 TP_PROTO(
unsigned long pth,
int policy,
232 const struct sched_param_ex *param_ex),
233 TP_ARGS(pth, policy, param_ex)
236 #define cobalt_print_thread_mode(__mode) \ 237 __print_flags(__mode, "|", \ 238 {PTHREAD_WARNSW, "warnsw"}, \ 239 {PTHREAD_LOCK_SCHED, "lock"}, \ 240 {PTHREAD_DISABLE_LOCKBREAK, "nolockbreak"}) 242 TRACE_EVENT(cobalt_pthread_setmode,
243 TP_PROTO(
int clrmask,
int setmask),
244 TP_ARGS(clrmask, setmask),
246 __field(
int, clrmask)
247 __field(
int, setmask)
250 __entry->clrmask = clrmask;
251 __entry->setmask = setmask;
253 TP_printk(
"clrmask=%#x(%s) setmask=%#x(%s)",
254 __entry->clrmask, cobalt_print_thread_mode(__entry->clrmask),
255 __entry->setmask, cobalt_print_thread_mode(__entry->setmask))
258 TRACE_EVENT(cobalt_pthread_setname,
259 TP_PROTO(
unsigned long pth,
const char *name),
262 __field(
unsigned long, pth)
267 __assign_str(name, name);
269 TP_printk(
"pth=%p name=%s", (
void *)__entry->pth, __get_str(name))
272 DECLARE_EVENT_CLASS(cobalt_posix_pid,
281 TP_printk(
"pid=%d", __entry->pid)
284 DEFINE_EVENT(cobalt_posix_pid, cobalt_pthread_stat,
289 TRACE_EVENT(cobalt_pthread_kill,
290 TP_PROTO(
unsigned long pth,
int sig),
293 __field(
unsigned long, pth)
300 TP_printk(
"pth=%p sig=%d", (
void *)__entry->pth, __entry->sig)
303 TRACE_EVENT(cobalt_pthread_join,
304 TP_PROTO(
unsigned long pth),
307 __field(
unsigned long, pth)
312 TP_printk(
"pth=%p", (
void *)__entry->pth)
315 TRACE_EVENT(cobalt_pthread_pid,
316 TP_PROTO(
unsigned long pth),
319 __field(
unsigned long, pth)
324 TP_printk(
"pth=%p", (
void *)__entry->pth)
327 TRACE_EVENT(cobalt_pthread_extend,
328 TP_PROTO(
unsigned long pth,
const char *name),
331 __field(
unsigned long, pth)
336 __assign_str(name, name);
338 TP_printk(
"pth=%p +personality=%s", (
void *)__entry->pth, __get_str(name))
341 TRACE_EVENT(cobalt_pthread_restrict,
342 TP_PROTO(
unsigned long pth,
const char *name),
345 __field(
unsigned long, pth)
350 __assign_str(name, name);
352 TP_printk(
"pth=%p -personality=%s", (
void *)__entry->pth, __get_str(name))
355 DEFINE_EVENT(cobalt_void, cobalt_pthread_yield,
360 TRACE_EVENT(cobalt_sched_setconfig,
361 TP_PROTO(
int cpu,
int policy,
size_t len),
362 TP_ARGS(cpu, policy, len),
370 __entry->policy = policy;
373 TP_printk(
"cpu=%d policy=%d(%s) len=%Zu",
374 __entry->cpu, __entry->policy,
375 cobalt_print_sched_policy(__entry->policy),
379 TRACE_EVENT(cobalt_sched_get_config,
380 TP_PROTO(
int cpu,
int policy,
size_t rlen),
381 TP_ARGS(cpu, policy, rlen),
385 __field(ssize_t, rlen)
389 __entry->policy = policy;
390 __entry->rlen = rlen;
392 TP_printk(
"cpu=%d policy=%d(%s) rlen=%Zd",
393 __entry->cpu, __entry->policy,
394 cobalt_print_sched_policy(__entry->policy),
398 DEFINE_EVENT(cobalt_posix_scheduler, cobalt_sched_setscheduler,
399 TP_PROTO(pid_t pid,
int policy,
400 const struct sched_param_ex *param_ex),
401 TP_ARGS(pid, policy, param_ex)
404 DEFINE_EVENT(cobalt_posix_pid, cobalt_sched_getscheduler,
409 DECLARE_EVENT_CLASS(cobalt_posix_prio_bound,
410 TP_PROTO(
int policy,
int prio),
411 TP_ARGS(policy, prio),
417 __entry->policy = policy;
418 __entry->prio = prio;
420 TP_printk(
"policy=%d(%s) prio=%d",
422 cobalt_print_sched_policy(__entry->policy),
426 DEFINE_EVENT(cobalt_posix_prio_bound, cobalt_sched_min_prio,
427 TP_PROTO(
int policy,
int prio),
428 TP_ARGS(policy, prio)
431 DEFINE_EVENT(cobalt_posix_prio_bound, cobalt_sched_max_prio,
432 TP_PROTO(
int policy,
int prio),
433 TP_ARGS(policy, prio)
436 DECLARE_EVENT_CLASS(cobalt_posix_sem,
437 TP_PROTO(xnhandle_t handle),
440 __field(xnhandle_t, handle)
443 __entry->handle = handle;
445 TP_printk(
"sem=%#x", __entry->handle)
448 DEFINE_EVENT(cobalt_posix_sem, cobalt_psem_wait,
449 TP_PROTO(xnhandle_t handle),
453 DEFINE_EVENT(cobalt_posix_sem, cobalt_psem_trywait,
454 TP_PROTO(xnhandle_t handle),
458 DEFINE_EVENT(cobalt_posix_sem, cobalt_psem_timedwait,
459 TP_PROTO(xnhandle_t handle),
463 DEFINE_EVENT(cobalt_posix_sem, cobalt_psem_post,
464 TP_PROTO(xnhandle_t handle),
468 DEFINE_EVENT(cobalt_posix_sem, cobalt_psem_destroy,
469 TP_PROTO(xnhandle_t handle),
473 DEFINE_EVENT(cobalt_posix_sem, cobalt_psem_broadcast,
474 TP_PROTO(xnhandle_t handle),
478 DEFINE_EVENT(cobalt_posix_sem, cobalt_psem_inquire,
479 TP_PROTO(xnhandle_t handle),
483 TRACE_EVENT(cobalt_psem_getvalue,
484 TP_PROTO(xnhandle_t handle,
int value),
485 TP_ARGS(handle, value),
487 __field(xnhandle_t, handle)
491 __entry->handle = handle;
492 __entry->value = value;
494 TP_printk(
"sem=%#x value=%d", __entry->handle, __entry->value)
497 #define cobalt_print_sem_flags(__flags) \ 498 __print_flags(__flags, "|", \ 499 {SEM_FIFO, "fifo"}, \ 500 {SEM_PULSE, "pulse"}, \ 501 {SEM_PSHARED, "pshared"}, \ 502 {SEM_REPORT, "report"}, \ 503 {SEM_WARNDEL, "warndel"}, \ 504 {SEM_RAWCLOCK, "rawclock"}, \ 505 {SEM_NOBUSYDEL, "nobusydel"}) 507 TRACE_EVENT(cobalt_psem_init,
508 TP_PROTO(
const char *name, xnhandle_t handle,
509 int flags,
unsigned int value),
510 TP_ARGS(name, handle, flags, value),
513 __field(xnhandle_t, handle)
515 __field(
unsigned int, value)
518 __assign_str(name, name);
519 __entry->handle = handle;
520 __entry->flags = flags;
521 __entry->value = value;
523 TP_printk(
"sem=%#x(%s) flags=%#x(%s) value=%u",
527 cobalt_print_sem_flags(__entry->flags),
531 TRACE_EVENT(cobalt_psem_init_failed,
532 TP_PROTO(
const char *name,
int flags,
unsigned int value,
int status),
533 TP_ARGS(name, flags, value, status),
537 __field(
unsigned int, value)
541 __assign_str(name, name);
542 __entry->flags = flags;
543 __entry->value = value;
544 __entry->status = status;
546 TP_printk(
"name=%s flags=%#x(%s) value=%u error=%d",
549 cobalt_print_sem_flags(__entry->flags),
550 __entry->value, __entry->status)
553 #define cobalt_print_oflags(__flags) \ 554 __print_flags(__flags, "|", \ 555 {O_RDONLY, "rdonly"}, \ 556 {O_WRONLY, "wronly"}, \ 558 {O_CREAT, "creat"}, \ 560 {O_DIRECT, "direct"}, \ 561 {O_NONBLOCK, "nonblock"}, \ 564 TRACE_EVENT(cobalt_psem_open,
565 TP_PROTO(
const char *name, xnhandle_t handle,
566 int oflags, mode_t mode,
unsigned int value),
567 TP_ARGS(name, handle, oflags, mode, value),
570 __field(xnhandle_t, handle)
572 __field(mode_t, mode)
573 __field(
unsigned int, value)
576 __assign_str(name, name);
577 __entry->handle = handle;
578 __entry->oflags = oflags;
579 if (oflags & O_CREAT) {
580 __entry->mode = mode;
581 __entry->value = value;
587 TP_printk(
"named_sem=%#x=(%s) oflags=%#x(%s) mode=%o value=%u",
588 __entry->handle, __get_str(name),
589 __entry->oflags, cobalt_print_oflags(__entry->oflags),
590 __entry->mode, __entry->value)
593 TRACE_EVENT(cobalt_psem_open_failed,
594 TP_PROTO(
const char *name,
int oflags, mode_t mode,
595 unsigned int value,
int status),
596 TP_ARGS(name, oflags, mode, value, status),
600 __field(mode_t, mode)
601 __field(
unsigned int, value)
605 __assign_str(name, name);
606 __entry->oflags = oflags;
607 __entry->status = status;
608 if (oflags & O_CREAT) {
609 __entry->mode = mode;
610 __entry->value = value;
616 TP_printk(
"named_sem=%s oflags=%#x(%s) mode=%o value=%u error=%d",
618 __entry->oflags, cobalt_print_oflags(__entry->oflags),
619 __entry->mode, __entry->value, __entry->status)
622 DEFINE_EVENT(cobalt_posix_sem, cobalt_psem_close,
623 TP_PROTO(xnhandle_t handle),
627 TRACE_EVENT(cobalt_psem_unlink,
628 TP_PROTO(
const char *name),
634 __assign_str(name, name);
636 TP_printk(
"name=%s", __get_str(name))
639 DECLARE_EVENT_CLASS(cobalt_clock_timespec,
640 TP_PROTO(clockid_t clk_id,
const struct timespec *val),
641 TP_ARGS(clk_id, val),
644 __field(clockid_t, clk_id)
645 __timespec_fields(val)
649 __entry->clk_id = clk_id;
650 __assign_timespec(val, val);
653 TP_printk(
"clock_id=%d timeval=(%ld.%09ld)",
659 DEFINE_EVENT(cobalt_clock_timespec, cobalt_clock_getres,
660 TP_PROTO(clockid_t clk_id,
const struct timespec *res),
664 DEFINE_EVENT(cobalt_clock_timespec, cobalt_clock_gettime,
665 TP_PROTO(clockid_t clk_id,
const struct timespec *time),
666 TP_ARGS(clk_id, time)
669 DEFINE_EVENT(cobalt_clock_timespec, cobalt_clock_settime,
670 TP_PROTO(clockid_t clk_id,
const struct timespec *time),
671 TP_ARGS(clk_id, time)
674 #define cobalt_print_timer_flags(__flags) \ 675 __print_flags(__flags, "|", \ 676 {TIMER_ABSTIME, "TIMER_ABSTIME"}) 678 TRACE_EVENT(cobalt_clock_nanosleep,
679 TP_PROTO(clockid_t clk_id,
int flags,
const struct timespec *time),
680 TP_ARGS(clk_id, flags, time),
683 __field(clockid_t, clk_id)
685 __timespec_fields(time)
689 __entry->clk_id = clk_id;
690 __entry->flags = flags;
691 __assign_timespec(time, time);
694 TP_printk(
"clock_id=%d flags=%#x(%s) rqt=(%ld.%09ld)",
696 __entry->flags, cobalt_print_timer_flags(__entry->flags),
697 __timespec_args(time)
701 DECLARE_EVENT_CLASS(cobalt_clock_ident,
702 TP_PROTO(
const char *name, clockid_t clk_id),
703 TP_ARGS(name, clk_id),
706 __field(clockid_t, clk_id)
709 __assign_str(name, name);
710 __entry->clk_id = clk_id;
712 TP_printk(
"name=%s, id=%#x", __get_str(name), __entry->clk_id)
715 DEFINE_EVENT(cobalt_clock_ident, cobalt_clock_register,
716 TP_PROTO(
const char *name, clockid_t clk_id),
717 TP_ARGS(name, clk_id)
720 DEFINE_EVENT(cobalt_clock_ident, cobalt_clock_deregister,
721 TP_PROTO(
const char *name, clockid_t clk_id),
722 TP_ARGS(name, clk_id)
725 #define cobalt_print_clock(__clk_id) \ 726 __print_symbolic(__clk_id, \ 727 {CLOCK_MONOTONIC, "CLOCK_MONOTONIC"}, \ 728 {CLOCK_MONOTONIC_RAW, "CLOCK_MONOTONIC_RAW"}, \ 729 {CLOCK_REALTIME, "CLOCK_REALTIME"}) 731 TRACE_EVENT(cobalt_cond_init,
732 TP_PROTO(
const struct cobalt_cond_shadow __user *u_cnd,
733 const struct cobalt_condattr *attr),
734 TP_ARGS(u_cnd, attr),
736 __field(
const struct cobalt_cond_shadow __user *, u_cnd)
737 __field(clockid_t, clk_id)
738 __field(
int, pshared)
741 __entry->u_cnd = u_cnd;
742 __entry->clk_id = attr->clock;
743 __entry->pshared = attr->pshared;
745 TP_printk(
"cond=%p attr={ .clock=%s, .pshared=%d }",
747 cobalt_print_clock(__entry->clk_id),
751 TRACE_EVENT(cobalt_cond_destroy,
752 TP_PROTO(
const struct cobalt_cond_shadow __user *u_cnd),
755 __field(
const struct cobalt_cond_shadow __user *, u_cnd)
758 __entry->u_cnd = u_cnd;
760 TP_printk(
"cond=%p", __entry->u_cnd)
763 TRACE_EVENT(cobalt_cond_timedwait,
764 TP_PROTO(
const struct cobalt_cond_shadow __user *u_cnd,
765 const struct cobalt_mutex_shadow __user *u_mx,
766 const struct timespec *timeout),
767 TP_ARGS(u_cnd, u_mx, timeout),
769 __field(
const struct cobalt_cond_shadow __user *, u_cnd)
770 __field(
const struct cobalt_mutex_shadow __user *, u_mx)
771 __timespec_fields(timeout)
774 __entry->u_cnd = u_cnd;
775 __entry->u_mx = u_mx;
776 __assign_timespec(timeout, timeout);
778 TP_printk(
"cond=%p, mutex=%p, timeout=(%ld.%09ld)",
779 __entry->u_cnd, __entry->u_mx, __timespec_args(timeout))
782 TRACE_EVENT(cobalt_cond_wait,
783 TP_PROTO(
const struct cobalt_cond_shadow __user *u_cnd,
784 const struct cobalt_mutex_shadow __user *u_mx),
785 TP_ARGS(u_cnd, u_mx),
787 __field(
const struct cobalt_cond_shadow __user *, u_cnd)
788 __field(
const struct cobalt_mutex_shadow __user *, u_mx)
791 __entry->u_cnd = u_cnd;
792 __entry->u_mx = u_mx;
794 TP_printk(
"cond=%p, mutex=%p",
795 __entry->u_cnd, __entry->u_mx)
798 TRACE_EVENT(cobalt_mq_open,
799 TP_PROTO(
const char *name,
int oflags, mode_t mode),
800 TP_ARGS(name, oflags, mode),
805 __field(mode_t, mode)
809 __assign_str(name, name);
810 __entry->oflags = oflags;
811 __entry->mode = (oflags & O_CREAT) ? mode : 0;
814 TP_printk(
"name=%s oflags=%#x(%s) mode=%o",
816 __entry->oflags, cobalt_print_oflags(__entry->oflags),
820 TRACE_EVENT(cobalt_mq_notify,
821 TP_PROTO(mqd_t mqd,
const struct sigevent *sev),
831 __entry->signo = sev && sev->sigev_notify != SIGEV_NONE ?
832 sev->sigev_signo : 0;
835 TP_printk(
"mqd=%d signo=%d",
836 __entry->mqd, __entry->signo)
839 TRACE_EVENT(cobalt_mq_close,
851 TP_printk(
"mqd=%d", __entry->mqd)
854 TRACE_EVENT(cobalt_mq_unlink,
855 TP_PROTO(
const char *name),
863 __assign_str(name, name);
866 TP_printk(
"name=%s", __get_str(name))
869 TRACE_EVENT(cobalt_mq_send,
870 TP_PROTO(mqd_t mqd,
const void __user *u_buf,
size_t len,
872 TP_ARGS(mqd, u_buf, len, prio),
875 __field(
const void __user *, u_buf)
877 __field(
unsigned int, prio)
881 __entry->u_buf = u_buf;
883 __entry->prio = prio;
885 TP_printk(
"mqd=%d buf=%p len=%Zu prio=%u",
886 __entry->mqd, __entry->u_buf, __entry->len,
890 TRACE_EVENT(cobalt_mq_timedreceive,
891 TP_PROTO(mqd_t mqd,
const void __user *u_buf,
size_t len,
892 const struct timespec *timeout),
893 TP_ARGS(mqd, u_buf, len, timeout),
896 __field(
const void __user *, u_buf)
898 __timespec_fields(timeout)
902 __entry->u_buf = u_buf;
904 __assign_timespec(timeout, timeout);
906 TP_printk(
"mqd=%d buf=%p len=%Zu timeout=(%ld.%09ld)",
907 __entry->mqd, __entry->u_buf, __entry->len,
908 __timespec_args(timeout))
911 TRACE_EVENT(cobalt_mq_receive,
912 TP_PROTO(mqd_t mqd,
const void __user *u_buf,
size_t len),
913 TP_ARGS(mqd, u_buf, len),
916 __field(
const void __user *, u_buf)
921 __entry->u_buf = u_buf;
924 TP_printk(
"mqd=%d buf=%p len=%Zu",
925 __entry->mqd, __entry->u_buf, __entry->len)
928 DECLARE_EVENT_CLASS(cobalt_posix_mqattr,
929 TP_PROTO(mqd_t mqd,
const struct mq_attr *attr),
934 __field(
long, curmsgs)
935 __field(
long, msgsize)
936 __field(
long, maxmsg)
940 __entry->flags = attr->mq_flags;
941 __entry->curmsgs = attr->mq_curmsgs;
942 __entry->msgsize = attr->mq_msgsize;
943 __entry->maxmsg = attr->mq_maxmsg;
945 TP_printk(
"mqd=%d flags=%#lx(%s) curmsgs=%ld msgsize=%ld maxmsg=%ld",
947 __entry->flags, cobalt_print_oflags(__entry->flags),
954 DEFINE_EVENT(cobalt_posix_mqattr, cobalt_mq_getattr,
955 TP_PROTO(mqd_t mqd,
const struct mq_attr *attr),
959 DEFINE_EVENT(cobalt_posix_mqattr, cobalt_mq_setattr,
960 TP_PROTO(mqd_t mqd,
const struct mq_attr *attr),
964 #define cobalt_print_evflags(__flags) \ 965 __print_flags(__flags, "|", \ 966 {COBALT_EVENT_SHARED, "shared"}, \ 967 {COBALT_EVENT_PRIO, "prio"}) 969 TRACE_EVENT(cobalt_event_init,
970 TP_PROTO(
const struct cobalt_event_shadow __user *u_event,
971 unsigned long value,
int flags),
972 TP_ARGS(u_event, value, flags),
974 __field(
const struct cobalt_event_shadow __user *, u_event)
975 __field(
unsigned long, value)
979 __entry->u_event = u_event;
980 __entry->value = value;
981 __entry->flags = flags;
983 TP_printk(
"event=%p value=%lu flags=%#x(%s)",
984 __entry->u_event, __entry->value,
985 __entry->flags, cobalt_print_evflags(__entry->flags))
988 #define cobalt_print_evmode(__mode) \ 989 __print_symbolic(__mode, \ 990 {COBALT_EVENT_ANY, "any"}, \ 991 {COBALT_EVENT_ALL, "all"}) 993 TRACE_EVENT(cobalt_event_timedwait,
994 TP_PROTO(
const struct cobalt_event_shadow __user *u_event,
995 unsigned long bits,
int mode,
996 const struct timespec *timeout),
997 TP_ARGS(u_event, bits, mode, timeout),
999 __field(
const struct cobalt_event_shadow __user *, u_event)
1000 __field(
unsigned long, bits)
1002 __timespec_fields(timeout)
1005 __entry->u_event = u_event;
1006 __entry->bits = bits;
1007 __entry->mode = mode;
1008 __assign_timespec(timeout, timeout);
1010 TP_printk(
"event=%p bits=%#lx mode=%#x(%s) timeout=(%ld.%09ld)",
1011 __entry->u_event, __entry->bits, __entry->mode,
1012 cobalt_print_evmode(__entry->mode),
1013 __timespec_args(timeout))
1016 TRACE_EVENT(cobalt_event_wait,
1017 TP_PROTO(
const struct cobalt_event_shadow __user *u_event,
1018 unsigned long bits,
int mode),
1019 TP_ARGS(u_event, bits, mode),
1021 __field(
const struct cobalt_event_shadow __user *, u_event)
1022 __field(
unsigned long, bits)
1026 __entry->u_event = u_event;
1027 __entry->bits = bits;
1028 __entry->mode = mode;
1030 TP_printk(
"event=%p bits=%#lx mode=%#x(%s)",
1031 __entry->u_event, __entry->bits, __entry->mode,
1032 cobalt_print_evmode(__entry->mode))
1035 DECLARE_EVENT_CLASS(cobalt_event_ident,
1036 TP_PROTO(
const struct cobalt_event_shadow __user *u_event),
1039 __field(
const struct cobalt_event_shadow __user *, u_event)
1042 __entry->u_event = u_event;
1044 TP_printk(
"event=%p", __entry->u_event)
1047 DEFINE_EVENT(cobalt_event_ident, cobalt_event_destroy,
1048 TP_PROTO(
const struct cobalt_event_shadow __user *u_event),
1052 DEFINE_EVENT(cobalt_event_ident, cobalt_event_sync,
1053 TP_PROTO(
const struct cobalt_event_shadow __user *u_event),
1057 DEFINE_EVENT(cobalt_event_ident, cobalt_event_inquire,
1058 TP_PROTO(
const struct cobalt_event_shadow __user *u_event),
1065 #undef TRACE_INCLUDE_PATH 1066 #undef TRACE_INCLUDE_FILE 1067 #define TRACE_INCLUDE_FILE cobalt-posix 1068 #include <trace/define_trace.h>