include/xen/interface/io/usbif.h
Source file repositories/reference/linux-study-clean/include/xen/interface/io/usbif.h
File Facts
- System
- Linux kernel
- Corpus path
include/xen/interface/io/usbif.h- Extension
.h- Size
- 16888 bytes
- Lines
- 406
- Domain
- Repository Root And Misc
- Bucket
- include
- Inferred role
- Repository Root And Misc: implementation source
- Status
- source implementation candidate
Why This File Exists
Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
ring.h../grant_table.h
Detected Declarations
struct xenusb_request_segmentstruct xenusb_urb_requeststruct xenusb_urb_responsestruct xenusb_conn_requeststruct xenusb_conn_responseenum xenusb_spec_version
Annotated Snippet
struct xenusb_request_segment {
grant_ref_t gref;
uint16_t offset;
uint16_t length;
};
struct xenusb_urb_request {
uint16_t id; /* request id */
uint16_t nr_buffer_segs; /* number of urb->transfer_buffer segments */
/* basic urb parameter */
uint32_t pipe;
uint16_t transfer_flags;
#define XENUSB_SHORT_NOT_OK 0x0001
uint16_t buffer_length;
union {
uint8_t ctrl[8]; /* setup_packet (Ctrl) */
struct {
uint16_t interval; /* maximum (1024*8) in usb core */
uint16_t start_frame; /* start frame */
uint16_t number_of_packets; /* number of ISO packet */
uint16_t nr_frame_desc_segs; /* number of iso_frame_desc segments */
} isoc;
struct {
uint16_t interval; /* maximum (1024*8) in usb core */
uint16_t pad[3];
} intr;
struct {
uint16_t unlink_id; /* unlink request id */
uint16_t pad[3];
} unlink;
} u;
/* urb data segments */
struct xenusb_request_segment seg[XENUSB_MAX_SEGMENTS_PER_REQUEST];
};
struct xenusb_urb_response {
uint16_t id; /* request id */
uint16_t start_frame; /* start frame (ISO) */
int32_t status; /* status (non-ISO) */
#define XENUSB_STATUS_OK 0
#define XENUSB_STATUS_NODEV (-19)
#define XENUSB_STATUS_INVAL (-22)
#define XENUSB_STATUS_STALL (-32)
#define XENUSB_STATUS_IOERROR (-71)
#define XENUSB_STATUS_BABBLE (-75)
#define XENUSB_STATUS_SHUTDOWN (-108)
int32_t actual_length; /* actual transfer length */
int32_t error_count; /* number of ISO errors */
};
DEFINE_RING_TYPES(xenusb_urb, struct xenusb_urb_request, struct xenusb_urb_response);
#define XENUSB_URB_RING_SIZE __CONST_RING_SIZE(xenusb_urb, XENUSB_RING_SIZE)
/*
* RING for notifying connect/disconnect events to frontend
*/
struct xenusb_conn_request {
uint16_t id;
};
struct xenusb_conn_response {
uint16_t id; /* request id */
uint8_t portnum; /* port number */
uint8_t speed; /* usb_device_speed */
#define XENUSB_SPEED_NONE 0
#define XENUSB_SPEED_LOW 1
#define XENUSB_SPEED_FULL 2
#define XENUSB_SPEED_HIGH 3
};
DEFINE_RING_TYPES(xenusb_conn, struct xenusb_conn_request, struct xenusb_conn_response);
#define XENUSB_CONN_RING_SIZE __CONST_RING_SIZE(xenusb_conn, XENUSB_RING_SIZE)
#endif /* __XEN_PUBLIC_IO_USBIF_H__ */
Annotation
- Immediate include surface: `ring.h`, `../grant_table.h`.
- Detected declarations: `struct xenusb_request_segment`, `struct xenusb_urb_request`, `struct xenusb_urb_response`, `struct xenusb_conn_request`, `struct xenusb_conn_response`, `enum xenusb_spec_version`.
- Atlas domain: Repository Root And Misc / include.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.