X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=lttng-statedump-impl.c;h=a8c32db5e83eea3ac0933b15f54e027b55687105;hb=16c5a6d5c389de3eb9d75a3543dbed70a1a612c9;hp=baa5a1efd33e56aa7ab545766e41b7fde363b458;hpb=d16203a5ed1ae740b5a0fcc681b58c315227fbb3;p=lttng-modules.git diff --git a/lttng-statedump-impl.c b/lttng-statedump-impl.c index baa5a1ef..a8c32db5 100644 --- a/lttng-statedump-impl.c +++ b/lttng-statedump-impl.c @@ -28,7 +28,6 @@ #include #include #include -#include #include #include #include @@ -43,7 +42,7 @@ #include #include #include -#include +#include #ifdef CONFIG_LTTNG_HAS_LIST_IRQ #include @@ -56,13 +55,42 @@ #define LTTNG_INSTRUMENTATION #include -DEFINE_TRACE(lttng_statedump_block_device); -DEFINE_TRACE(lttng_statedump_end); -DEFINE_TRACE(lttng_statedump_interrupt); -DEFINE_TRACE(lttng_statedump_file_descriptor); -DEFINE_TRACE(lttng_statedump_start); -DEFINE_TRACE(lttng_statedump_process_state); -DEFINE_TRACE(lttng_statedump_network_interface); +LTTNG_DEFINE_TRACE(lttng_statedump_block_device, + TP_PROTO(struct lttng_session *session, + dev_t dev, const char *diskname), + TP_ARGS(session, dev, diskname)); + +LTTNG_DEFINE_TRACE(lttng_statedump_end, + TP_PROTO(struct lttng_session *session), + TP_ARGS(session)); + +LTTNG_DEFINE_TRACE(lttng_statedump_interrupt, + TP_PROTO(struct lttng_session *session, + unsigned int irq, const char *chip_name, + struct irqaction *action), + TP_ARGS(session, irq, chip_name, action)); + +LTTNG_DEFINE_TRACE(lttng_statedump_file_descriptor, + TP_PROTO(struct lttng_session *session, + struct task_struct *p, int fd, const char *filename, + unsigned int flags, fmode_t fmode), + TP_ARGS(session, p, fd, filename, flags, fmode)); + +LTTNG_DEFINE_TRACE(lttng_statedump_start, + TP_PROTO(struct lttng_session *session), + TP_ARGS(session)); + +LTTNG_DEFINE_TRACE(lttng_statedump_process_state, + TP_PROTO(struct lttng_session *session, + struct task_struct *p, + int type, int mode, int submode, int status, + struct pid_namespace *pid_ns), + TP_ARGS(session, p, type, mode, submode, status, pid_ns)); + +LTTNG_DEFINE_TRACE(lttng_statedump_network_interface, + TP_PROTO(struct lttng_session *session, + struct net_device *dev, struct in_ifaddr *ifa), + TP_ARGS(session, dev, ifa)); struct lttng_fd_ctx { char *page; @@ -139,10 +167,19 @@ int lttng_enumerate_block_devices(struct lttng_session *session) disk_part_iter_init(&piter, disk, DISK_PITER_INCL_PART0); while ((part = disk_part_iter_next(&piter))) { + struct block_device bdev; char name_buf[BDEVNAME_SIZE]; - char *p; + const char *p; + + /* + * Create a partial 'struct blockdevice' to use + * 'bdevname()' which is a simple wrapper over + * 'disk_name()' but has the honor to be EXPORT_SYMBOL. + */ + bdev.bd_disk = disk; + bdev.bd_part = part; - p = wrapper_disk_name(disk, part->partno, name_buf); + p = bdevname(&bdev, name_buf); if (!p) { disk_part_iter_exit(&piter); class_dev_iter_exit(&iter);