1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * Copyright (C) 2025 Google LLC 4 */ 5 #undef TRACE_SYSTEM 6 #define TRACE_SYSTEM usbcore 7 8 #if !defined(_USB_CORE_TRACE_H) || defined(TRACE_HEADER_MULTI_READ) 9 #define _USB_CORE_TRACE_H 10 11 #include <linux/types.h> 12 #include <linux/tracepoint.h> 13 #include <linux/usb.h> 14 15 DECLARE_EVENT_CLASS(usb_core_log_usb_device, 16 TP_PROTO(struct usb_device *udev), 17 TP_ARGS(udev), 18 TP_STRUCT__entry( 19 __string(name, dev_name(&udev->dev)) 20 __field(enum usb_device_speed, speed) 21 __field(enum usb_device_state, state) 22 __field(unsigned short, bus_mA) 23 __field(unsigned, authorized) 24 ), 25 TP_fast_assign( 26 __assign_str(name); 27 __entry->speed = udev->speed; 28 __entry->state = udev->state; 29 __entry->bus_mA = udev->bus_mA; 30 __entry->authorized = udev->authorized; 31 ), 32 TP_printk("usb %s speed %s state %s %dmA [%s]", 33 __get_str(name), 34 usb_speed_string(__entry->speed), 35 usb_state_string(__entry->state), 36 __entry->bus_mA, 37 __entry->authorized ? "authorized" : "unauthorized") 38 ); 39 40 DEFINE_EVENT(usb_core_log_usb_device, usb_set_device_state, 41 TP_PROTO(struct usb_device *udev), 42 TP_ARGS(udev) 43 ); 44 45 DEFINE_EVENT(usb_core_log_usb_device, usb_alloc_dev, 46 TP_PROTO(struct usb_device *udev), 47 TP_ARGS(udev) 48 ); 49 50 51 #endif /* _USB_CORE_TRACE_H */ 52 53 /* this part has to be here */ 54 55 #undef TRACE_INCLUDE_PATH 56 #define TRACE_INCLUDE_PATH . 57 58 #undef TRACE_INCLUDE_FILE 59 #define TRACE_INCLUDE_FILE trace 60 61 #include <trace/define_trace.h> 62