struct usb_interface_cache — long-term representation of a device interface
struct usb_interface_cache { unsigned num_altsetting; struct kref ref; struct usb_host_interface altsetting[0]; };
number of altsettings defined.
reference counter.
variable-length array of interface structures, one for each alternate setting that may be selected. Each one includes a set of endpoint configurations. They will be in no particular order.
These structures persist for the lifetime of a usb_device, unlike struct usb_interface (which persists only as long as its configuration is installed). The altsetting arrays can be accessed through these structures at any time, permitting comparison of configurations and providing support for the /proc/bus/usb/devices pseudo-file.