# Vault 7: Projects

This publication series is about specific projects related to the Vault 7 main publication.

### Protego

# MLA -- USB Library

20 December, 2013

- 1
- 2
…
- 38
- 39
- 40
- 41
- 42
…
- 311
- 312

Description
This function cancels the transfers pending on the specified endpoint. This function can only be used after a SETUP packet
is received and before that setup packet is handled. This is the time period in which the EVENT_EP0_REQUEST is thrown,
before the event handler function returns to the stack.
Remarks
None
Parameters
Parameters Description
uint8_t endpoint the endpoint number you wish to cancel the transfers for
Function
void USBCancelIO(uint8_t endpoint)
1.4.1.1.1.3 USBCtrlEPAllowDataStage Function
This function allows the data stage of either a host-to-device or device-to-host control transfer (with data stage) to complete.
This function is meant to be used in conjunction with either the USBDeferOUTDataStage() or USBDeferINDataStage(). If the
firmware does not call either USBDeferOUTDataStage() or USBDeferINDataStage(), then the firmware does not need to
manually call USBCtrlEPAllowDataStage(), as the USB stack will call this function instead.
File
usb_device.h
Syntax
void USBCtrlEPAllowDataStage();
Preconditions
A control transfer (with data stage) should already be pending, if the firmware calls this function. Additionally, the firmware
should have called either USBDeferOUTDataStage() or USBDeferINDataStage() at the start of the control transfer, if the
firmware will be calling this function manually.
Function
void USBCtrlEPAllowDataStage(void);
1.4.1.1.1.4 USBCtrlEPAllowStatusStage Function
This function prepares the proper endpoint 0 IN or endpoint 0 OUT (based on the controlTransferState) to allow the status
stage packet of a control transfer to complete. This function gets used internally by the USB stack itself, but it may also be
called from the application firmware, IF the application firmware called the USBDeferStatusStage() function during the initial
processing of the control transfer request. In this case, the application must call the USBCtrlEPAllowStatusStage() once,
after it has fully completed processing and handling the data stage portion of the request.
If the application firmware has no need for delaying control transfers, and therefore never calls USBDeferStatusStage(), then
the application firmware should not call USBCtrlEPAllowStatusStage().
File
usb_device.h
Syntax
void USBCtrlEPAllowStatusStage();
1.4 Library Interface MLA - USB Library Help Device/Peripheral
40

- 1
- 2
…
- 38
- 39
- 40
- 41
- 42
…
- 311
- 312