USBD_STATUS(9)
π USBD_STATUS(9) β the kernel dev manual, bestie edition β¨
Okay so this is a page from the Kernel Developer's Manual, and it's literally all about usbd_status β the USB device drivers interface return status values π«Ά. Think of it as the master list of every mood a USB operation can be in. Iconic, honestly.
πΈ SYNOPSIS πΈ
#include <dev/usb/usbdi.h>
β¨ DESCRIPTION β¨
So this page documents the full list of return values used by the generic USB code. Like, all of them, no gatekeeping π.
Heads up bestie: interface-specific definitions get given with the interface itself, so don't come looking for those here π
π RETURN VALUES π
The return values are split into two main groups: expected values and error values. Two whole vibes, fr fr.
π The expected values (there are literally only two)
USBD_NORMAL_COMPLETIONβ the operation completed successfully. Slay, it worked, no notes πUSBD_IN_PROGRESSβ the operation was successfully submitted, usually part of an asynchronous operation. It's giving "we're so back, just wait" β³
π The error values
USBD_PENDING_REQUESTSβ the requested operation could not be completed due to pending requests, usually from a pipe close operation. Not me trying to close the pipe while stuff is still queued πUSBD_NOT_STARTEDβ the initial status of a USB transfer. Peepusbdi(9)for more details about USB transfers πUSBD_INVALβ invalid arguments were supplied for the requested operation. Bestie, what did you even pass in πUSBD_NOMEMβ no memory could be allocated. The malloc said no ma'am πUSBD_CANCELLEDβ the USB transfer has been cancelled, and not completed. It's over, it never finished, we don't talk about it π¦USBD_BAD_ADDRESSβ the requested USB pipe could not be found. Peepusbdi(9)for more details about USB pipes πUSBD_IN_USEβ the requested operation could not be performed due to the device having active connections, such as a USB audio device currently playing. Main character energy: it's busy being iconic, try again later π΅USBD_NO_ADDRβ the USB bus has reached its maximum limit of devices. Full house, no more seats πΈUSBD_SET_ADDR_FAILEDβ the call tousbd_set_address()failed during new USB device discovery. The address moment did NOT go to plan π€USBD_NO_POWERβ the new device has requested more power than is available. She asked for too much, honestly relatable πUSBD_TOO_DEEPβ the new USB Hub is too deep from the root. The nesting got out of hand, it's giving inception πUSBD_IOERRORβ a non-specific error happened during IO. Something went wrong, nobody knows what, we move π«USBD_NOT_CONFIGUREDβ the USB device is not configured; it has no configuration descriptor. No config, no descriptor, no vibe check passed πUSBD_TIMEOUTβ the operation timed out. It literally ran out of time β°USBD_SHORT_XFERβ the USB transfer succeeded but not all requested data was returned. Partial slay β it ate, but only some of the plate πUSBD_STALLEDβ the USB controller has stalled (controller specific). Note the parenthetical bestie: this one's controller specific πUSBD_INTERRUPTEDβ the process was interrupted by external means (such as a signal) while waiting for a transfer to complete. Something outside came in and said "not today" β‘
π¦ SEE ALSO π¦
usb(4), usbdi(9) β go read those next, iykyk π
β HISTORY β
This usbd_status interface first appeared in NetBSD 1.4. A classic, a legend, an icon π
Okay that's the whole page bestie, no cap β every single value, every single cross-reference, all of it π This little gem shipped on Debian, dated May 12, 2012, and that's the vibe check, periodt πβ¨
π¦ where this page comes from
- nixpkgs unstable: netbsd-source 11.0
- Copyright (c) 2012 Matthew R. Green
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms