| /* SPDX-License-Identifier: GPL-2.0 */ | |
| /* | |
| * Copyright (C) 2025 Google LLC | |
| */ | |
| #undef TRACE_SYSTEM | |
| #define TRACE_SYSTEM usbcore | |
| #if !defined(_USB_CORE_TRACE_H) || defined(TRACE_HEADER_MULTI_READ) | |
| #define _USB_CORE_TRACE_H | |
| #include <linux/types.h> | |
| #include <linux/tracepoint.h> | |
| #include <linux/usb.h> | |
| DECLARE_EVENT_CLASS(usb_core_log_usb_device, | |
| TP_PROTO(struct usb_device *udev), | |
| TP_ARGS(udev), | |
| TP_STRUCT__entry( | |
| __string(name, dev_name(&udev->dev)) | |
| __field(enum usb_device_speed, speed) | |
| __field(enum usb_device_state, state) | |
| __field(unsigned short, bus_mA) | |
| __field(unsigned, authorized) | |
| ), | |
| TP_fast_assign( | |
| __assign_str(name); | |
| __entry->speed = udev->speed; | |
| __entry->state = udev->state; | |
| __entry->bus_mA = udev->bus_mA; | |
| __entry->authorized = udev->authorized; | |
| ), | |
| TP_printk("usb %s speed %s state %s %dmA [%s]", | |
| __get_str(name), | |
| usb_speed_string(__entry->speed), | |
| usb_state_string(__entry->state), | |
| __entry->bus_mA, | |
| __entry->authorized ? "authorized" : "unauthorized") | |
| ); | |
| DEFINE_EVENT(usb_core_log_usb_device, usb_set_device_state, | |
| TP_PROTO(struct usb_device *udev), | |
| TP_ARGS(udev) | |
| ); | |
| DEFINE_EVENT(usb_core_log_usb_device, usb_alloc_dev, | |
| TP_PROTO(struct usb_device *udev), | |
| TP_ARGS(udev) | |
| ); | |
| #endif /* _USB_CORE_TRACE_H */ | |
| /* this part has to be here */ | |
| #undef TRACE_INCLUDE_PATH | |
| #define TRACE_INCLUDE_PATH . | |
| #undef TRACE_INCLUDE_FILE | |
| #define TRACE_INCLUDE_FILE trace | |
| #include <trace/define_trace.h> |