Macros | |
#define | stdcall_verify(arg) |
Functions | |
void | usb_init_static_endpoint () |
Initialization of usb_static_ep structure, called from controller-specific initialization; edi -> usb_static_ep. More... | |
void | usb_open_pipe (dword config_pipe, dword endpoint, dword maxpacket, dword type, dword interval) |
Part of API for drivers, see documentation for USBOpenPipe. More... | |
void | usb_reinit_pipe_list () |
This procedure is called several times during initial device configuration, when usb_device_data structure is reallocated. It (re)initializes all pointers in usb_device_data. ebx -> usb_pipe. More... | |
void | usb_close_pipe () |
Part of API for drivers, see documentation for USBClosePipe. More... | |
void | usb_close_pipe_nolock () |
Worker function for pipe closing. Called by usb_close_pipe API and from disconnect processing. The lock guarding pipe list for the device should be held by the caller. ebx -> usb_pipe, esi -> usb_controller. More... | |
void | usb_pipe_aborted () |
This procedure is called when all transfers are aborted either due to call to usb_abort_pipe or due to pipe closing. It notifies all callbacks and frees all transfer descriptors. ebx -> usb_pipe, esi -> usb_controller, edi -> usb_hardware_func three stack parameters: status code for callback functions and descriptors where to start and stop. More... | |
void | usb_pipe_closed () |
This procedure is called when a pipe with USB_FLAG_CLOSED is removed from the corresponding wait list. It means that the hardware has fully forgot about it. ebx -> usb_pipe, esi -> usb_controller. More... | |
void | usb_pipe_disabled () |
This procedure is called when a pipe with USB_FLAG_DISABLED is removed from the corresponding wait list. It means that the hardware has fully forgot about it. ebx -> usb_pipe, esi -> usb_controller. More... | |
void | usb_normal_transfer_async (dword pipe, dword buffer, dword size, dword callback, dword calldata, dword flags) |
Part of API for drivers, see documentation for USBNormalTransferAsync. More... | |
void | usb_control_async (dword pipe, dword config, dword buffer, dword size, dword callback, dword calldata, dword flags) |
Part of API for drivers, see documentation for USBControlTransferAsync. More... | |
void | usb_abort_pipe () |
Part of API for drivers, see documentation for USBAbortPipe. More... | |
void | usb_get_param () |
Part of API for drivers, see documentation for USBGetParam. More... | |
void | usb_init_transfer () |
Initialize software part of usb_gtd. Called from controller-specific code somewhere in AllocTransfer with eax -> next (inactive) usb_gtd, ebx -> usb_pipe, ebp frame from call to AllocTransfer with [.td] -> current (initializing) usb_gtd. Returns ecx = [.td]. More... | |
void | usb_undo_tds () |
Free all TDs for the current transfer if something has failed during initialization (e.g. no memory for the next TD). Stdcall with one stack argument = first TD for the transfer and eax = last initialized TD for the transfer. More... | |
void | usb_is_final_packet () |
Helper procedure for handling short packets in controller-specific code. Returns with CF cleared if this is the final packet in some stage: for control transfers that means one of Data and Status stages, for other transfers - the final packet in the only stage. More... | |
void | usb_unlink_td () |
Helper procedure for controller-specific code: removes one TD from the transfer queue, ebx -> usb_gtd to remove. More... | |
void | usb_process_gtd () |
One part of transfer is completed, run the associated callback or update total length in the next part of transfer. in: ebx -> usb_gtd, ecx = status, edx = length. More... | |
void | verify_regs () |
Variables | |
rd | tt_vars |
should be enough for ehci_select_tt_interrupt_list More... | |
dd | targetsmask |
S-Mask for USB2. More... | |
dd | bandwidth |
dd | target |
dd | _pipe |
dd | _status |
USB_STATUS_CLOSED or USB_STATUS_CANCELLED. More... | |
dd | _first_td |
dd | _last_td |
dd | last_td |
dd | _param |
dd | _Size |
dd | _Buffer |
dd | _Flags |
dd | _td |
dd | _edi |
dd | _esi |
dd | _ebp |
dd | _esp |
dd | _ebx |
dd | _edx |
dd | _ecx |
dd | _eax |
#define stdcall_verify | ( | arg | ) |
void usb_abort_pipe | ( | ) |
Part of API for drivers, see documentation for USBAbortPipe.
void usb_close_pipe | ( | ) |
Part of API for drivers, see documentation for USBClosePipe.
void usb_close_pipe_nolock | ( | ) |
Worker function for pipe closing. Called by usb_close_pipe API and from disconnect processing. The lock guarding pipe list for the device should be held by the caller. ebx -> usb_pipe, esi -> usb_controller.
void usb_control_async | ( | dword | pipe, |
dword | config, | ||
dword | buffer, | ||
dword | size, | ||
dword | callback, | ||
dword | calldata, | ||
dword | flags | ||
) |
Part of API for drivers, see documentation for USBControlTransferAsync.
void usb_get_param | ( | ) |
Part of API for drivers, see documentation for USBGetParam.
void usb_init_static_endpoint | ( | ) |
Initialization of usb_static_ep structure, called from controller-specific initialization; edi -> usb_static_ep.
void usb_init_transfer | ( | ) |
Initialize software part of usb_gtd. Called from controller-specific code somewhere in AllocTransfer with eax -> next (inactive) usb_gtd, ebx -> usb_pipe, ebp frame from call to AllocTransfer with [.td] -> current (initializing) usb_gtd. Returns ecx = [.td].
void usb_is_final_packet | ( | ) |
Helper procedure for handling short packets in controller-specific code. Returns with CF cleared if this is the final packet in some stage: for control transfers that means one of Data and Status stages, for other transfers - the final packet in the only stage.
void usb_normal_transfer_async | ( | dword | pipe, |
dword | buffer, | ||
dword | size, | ||
dword | callback, | ||
dword | calldata, | ||
dword | flags | ||
) |
Part of API for drivers, see documentation for USBNormalTransferAsync.
void usb_open_pipe | ( | dword | config_pipe, |
dword | endpoint, | ||
dword | maxpacket, | ||
dword | type, | ||
dword | interval | ||
) |
Part of API for drivers, see documentation for USBOpenPipe.
void usb_pipe_aborted | ( | ) |
This procedure is called when all transfers are aborted either due to call to usb_abort_pipe or due to pipe closing. It notifies all callbacks and frees all transfer descriptors. ebx -> usb_pipe, esi -> usb_controller, edi -> usb_hardware_func three stack parameters: status code for callback functions and descriptors where to start and stop.
void usb_pipe_closed | ( | ) |
This procedure is called when a pipe with USB_FLAG_CLOSED is removed from the corresponding wait list. It means that the hardware has fully forgot about it. ebx -> usb_pipe, esi -> usb_controller.
void usb_pipe_disabled | ( | ) |
This procedure is called when a pipe with USB_FLAG_DISABLED is removed from the corresponding wait list. It means that the hardware has fully forgot about it. ebx -> usb_pipe, esi -> usb_controller.
void usb_process_gtd | ( | ) |
One part of transfer is completed, run the associated callback or update total length in the next part of transfer. in: ebx -> usb_gtd, ecx = status, edx = length.
void usb_reinit_pipe_list | ( | ) |
This procedure is called several times during initial device configuration, when usb_device_data structure is reallocated. It (re)initializes all pointers in usb_device_data. ebx -> usb_pipe.
void usb_undo_tds | ( | ) |
Free all TDs for the current transfer if something has failed during initialization (e.g. no memory for the next TD). Stdcall with one stack argument = first TD for the transfer and eax = last initialized TD for the transfer.
void usb_unlink_td | ( | ) |
Helper procedure for controller-specific code: removes one TD from the transfer queue, ebx -> usb_gtd to remove.
void verify_regs | ( | ) |
dd _Buffer |
dd _eax |
dd _ebp |
dd _ebx |
dd _ecx |
dd _edi |
dd _edx |
dd _esi |
dd _esp |
dd _first_td |
dd _Flags |
dd _last_td |
dd _param |
dd _pipe |
dd _Size |
dd _status |
dd _td |
dd bandwidth |
dd last_td |
dd target |
dd targetsmask |
rd tt_vars |