Module Name: src Committed By: riastradh Date: Thu Mar 3 06:13:23 UTC 2022
Modified Files: src/sys/dev/usb: usbdi.c Log Message: usbdi(9): dtrace probes for USB control requests. To generate a diff of this commit: cvs rdiff -u -r1.232 -r1.233 src/sys/dev/usb/usbdi.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/usb/usbdi.c diff -u src/sys/dev/usb/usbdi.c:1.232 src/sys/dev/usb/usbdi.c:1.233 --- src/sys/dev/usb/usbdi.c:1.232 Thu Mar 3 06:12:49 2022 +++ src/sys/dev/usb/usbdi.c Thu Mar 3 06:13:23 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: usbdi.c,v 1.232 2022/03/03 06:12:49 riastradh Exp $ */ +/* $NetBSD: usbdi.c,v 1.233 2022/03/03 06:13:23 riastradh Exp $ */ /* * Copyright (c) 1998, 2012, 2015 The NetBSD Foundation, Inc. @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: usbdi.c,v 1.232 2022/03/03 06:12:49 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: usbdi.c,v 1.233 2022/03/03 06:13:23 riastradh Exp $"); #ifdef _KERNEL_OPT #include "opt_usb.h" @@ -113,6 +113,22 @@ SDT_PROBE_DEFINE2(usb, device, xfer, don "usbd_status"/*status*/); SDT_PROBE_DEFINE1(usb, device, xfer, destroy, "struct usbd_xfer *"/*xfer*/); +SDT_PROBE_DEFINE5(usb, device, request, start, + "struct usbd_device *"/*dev*/, + "usb_device_request_t *"/*req*/, + "size_t"/*len*/, + "int"/*flags*/, + "uint32_t"/*timeout*/); + +SDT_PROBE_DEFINE7(usb, device, request, done, + "struct usbd_device *"/*dev*/, + "usb_device_request_t *"/*req*/, + "size_t"/*actlen*/, + "int"/*flags*/, + "uint32_t"/*timeout*/, + "void *"/*data*/, + "usbd_status"/*status*/); + Static void usbd_ar_pipe(struct usbd_pipe *); Static void usbd_start_next(struct usbd_pipe *); Static usbd_status usbd_open_pipe_ival @@ -1236,9 +1252,15 @@ usbd_do_request_len(struct usbd_device * ASSERT_SLEEPABLE(); + SDT_PROBE5(usb, device, request, start, + dev, req, len, flags, timeout); + int error = usbd_create_xfer(dev->ud_pipe0, len, 0, 0, &xfer); - if (error) + if (error) { + SDT_PROBE7(usb, device, request, done, + dev, req, /*actlen*/0, flags, timeout, data, USBD_NOMEM); return USBD_NOMEM; + } usbd_setup_default_xfer(xfer, dev, 0, timeout, req, data, UGETW(req->wLength), flags, NULL); @@ -1263,6 +1285,9 @@ usbd_do_request_len(struct usbd_device * usbd_destroy_xfer(xfer); + SDT_PROBE7(usb, device, request, done, + dev, req, xfer->ux_actlen, flags, timeout, data, err); + if (err) { USBHIST_LOG(usbdebug, "returning err = %jd", err, 0, 0, 0); }