Make USB statistics per device instead of per bus.
Bump the FreeBSD version due to structure change to force recompilation of external USB modules. MFC after: 1 week Sponsored by: Mellanox Technologies
This commit is contained in:
parent
12fe21a3d8
commit
7082625d97
@ -2,7 +2,7 @@
|
||||
/*-
|
||||
* SPDX-License-Identifier: BSD-2-Clause-FreeBSD
|
||||
*
|
||||
* Copyright (c) 2008 Hans Petter Selasky. All rights reserved.
|
||||
* Copyright (c) 2008-2019 Hans Petter Selasky. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
@ -41,20 +41,11 @@ struct usb_bus_msg {
|
||||
struct usb_bus *bus;
|
||||
};
|
||||
|
||||
/*
|
||||
* The following structure defines the USB statistics structure.
|
||||
*/
|
||||
struct usb_bus_stat {
|
||||
uint32_t uds_requests[4];
|
||||
};
|
||||
|
||||
/*
|
||||
* The following structure defines an USB BUS. There is one USB BUS
|
||||
* for every Host or Device controller.
|
||||
*/
|
||||
struct usb_bus {
|
||||
struct usb_bus_stat stats_err;
|
||||
struct usb_bus_stat stats_ok;
|
||||
#if USB_HAVE_ROOT_MOUNT_HOLD
|
||||
struct root_hold_token *bus_roothold;
|
||||
#endif
|
||||
|
@ -2,7 +2,7 @@
|
||||
/*-
|
||||
* SPDX-License-Identifier: BSD-2-Clause-FreeBSD
|
||||
*
|
||||
* Copyright (c) 2008 Hans Petter Selasky. All rights reserved.
|
||||
* Copyright (c) 2008-2019 Hans Petter Selasky. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
@ -176,11 +176,22 @@ union usb_device_scratch {
|
||||
uint8_t data[255];
|
||||
};
|
||||
|
||||
/*
|
||||
* Helper structure to keep track of USB device statistics.
|
||||
*/
|
||||
struct usb_device_statistics {
|
||||
uint32_t uds_requests[4];
|
||||
};
|
||||
|
||||
/*
|
||||
* The following structure defines an USB device. There exists one of
|
||||
* these structures for every USB device.
|
||||
*/
|
||||
struct usb_device {
|
||||
/* statistics */
|
||||
struct usb_device_statistics stats_err;
|
||||
struct usb_device_statistics stats_ok;
|
||||
|
||||
/* generic clear stall message */
|
||||
struct usb_udev_msg cs_msg[2];
|
||||
struct sx enum_sx;
|
||||
|
@ -2223,10 +2223,9 @@ ugen_ioctl_post(struct usb_fifo *f, u_long cmd, void *addr, int fflags)
|
||||
for (n = 0; n != 4; n++) {
|
||||
|
||||
u.stat->uds_requests_fail[n] =
|
||||
f->udev->bus->stats_err.uds_requests[n];
|
||||
|
||||
f->udev->stats_err.uds_requests[n];
|
||||
u.stat->uds_requests_ok[n] =
|
||||
f->udev->bus->stats_ok.uds_requests[n];
|
||||
f->udev->stats_ok.uds_requests[n];
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -2594,10 +2594,10 @@ usbd_transfer_done(struct usb_xfer *xfer, usb_error_t error)
|
||||
#endif
|
||||
/* keep some statistics */
|
||||
if (xfer->error) {
|
||||
info->bus->stats_err.uds_requests
|
||||
info->udev->stats_err.uds_requests
|
||||
[xfer->endpoint->edesc->bmAttributes & UE_XFERTYPE]++;
|
||||
} else {
|
||||
info->bus->stats_ok.uds_requests
|
||||
info->udev->stats_ok.uds_requests
|
||||
[xfer->endpoint->edesc->bmAttributes & UE_XFERTYPE]++;
|
||||
}
|
||||
|
||||
|
@ -60,7 +60,7 @@
|
||||
* in the range 5 to 9.
|
||||
*/
|
||||
#undef __FreeBSD_version
|
||||
#define __FreeBSD_version 1300070 /* Master, propagated to newvers */
|
||||
#define __FreeBSD_version 1300071 /* Master, propagated to newvers */
|
||||
|
||||
/*
|
||||
* __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD,
|
||||
|
Loading…
Reference in New Issue
Block a user