137 lines
3.1 KiB
Plaintext
137 lines
3.1 KiB
Plaintext
module USB_Templates {
|
|
|
|
import from USB_Types all;
|
|
|
|
template (value) USB_DeviceRequest
|
|
ts_DevReq_CLEAR_FEATURE(USB_RequestType_Recipient recipient, u16le_t wValue, u16le_t wIndex) := {
|
|
req_type := {
|
|
direction := Host_to_Device,
|
|
req_type := RequestType_Standard,
|
|
recipient := recipient
|
|
},
|
|
bRequest := '01'O,
|
|
wValue := wValue,
|
|
wIndex := wIndex,
|
|
wLength := 0
|
|
}
|
|
|
|
template (value) USB_DeviceRequest
|
|
ts_DevReq_GET_CONFIGURATION := {
|
|
req_type := {
|
|
direction := Device_to_Host,
|
|
req_type := RequestType_Standard,
|
|
recipient := RequestRecipient_Device
|
|
},
|
|
bRequest := '08'O,
|
|
wValue := 0,
|
|
wIndex := 0,
|
|
wLength := 1
|
|
}
|
|
|
|
/* Generate a USB_DeviceRequest for a GET_DESCRIPTOR control transfer */
|
|
template (value) USB_DeviceRequest ts_DevReq_GET_DESCRIPTOR(USB_DescriptorType dtype,
|
|
u16le_t idx, u16le_t len) := {
|
|
req_type := {
|
|
direction := Device_to_Host,
|
|
req_type := RequestType_Standard,
|
|
recipient := RequestRecipient_Device
|
|
},
|
|
bRequest := '06'O,
|
|
wValue := enum2int(dtype) * 256 + idx,
|
|
wIndex := 0,
|
|
wLength := 8 + len
|
|
}
|
|
|
|
template (value) USB_DeviceRequest ts_DevReq_GET_INTERFACE(u16le_t interface) := {
|
|
req_type := {
|
|
direction := Device_to_Host,
|
|
req_type := RequestType_Standard,
|
|
recipient := RequestRecipient_Device
|
|
},
|
|
bRequest := '0A'O,
|
|
wValue := 0,
|
|
wIndex := interface,
|
|
wLength := 1
|
|
}
|
|
|
|
template (value) USB_DeviceRequest
|
|
ts_DevReq_GET_STATUS(USB_RequestType_Recipient recipient, u16le_t wIndex) := {
|
|
req_type := {
|
|
direction := Device_to_Host,
|
|
req_type := RequestType_Standard,
|
|
recipient := recipient
|
|
},
|
|
bRequest := '00'O,
|
|
wValue := 0,
|
|
wIndex := wIndex,
|
|
wLength := 2
|
|
}
|
|
|
|
template (value) USB_DeviceRequest
|
|
ts_DevReq_SET_CONFIGURATION(u16le_t config) := {
|
|
req_type := {
|
|
direction := Host_to_Device,
|
|
req_type := RequestType_Standard,
|
|
recipient := RequestRecipient_Device
|
|
},
|
|
bRequest := '09'O,
|
|
wValue := config,
|
|
wIndex := 0,
|
|
wLength := 0
|
|
}
|
|
|
|
template (value) USB_DeviceRequest
|
|
ts_DevReq_SET_DESCRIPTOR(USB_DescriptorType dtype, u16le_t idx, octetstring data) := {
|
|
req_type := {
|
|
direction := Host_to_Device,
|
|
req_type := RequestType_Standard,
|
|
recipient := RequestRecipient_Device
|
|
},
|
|
bRequest := '07'O,
|
|
wValue := enum2int(dtype) * 256 + idx,
|
|
wIndex := 0,
|
|
wLength := lengthof(data)
|
|
}
|
|
|
|
template (value) USB_DeviceRequest
|
|
ts_DevReq_SET_FEATURE(USB_RequestType_Recipient recipient, u16le_t wValue, u16le_t wIndex) := {
|
|
req_type := {
|
|
direction := Host_to_Device,
|
|
req_type := RequestType_Standard,
|
|
recipient := recipient
|
|
},
|
|
bRequest := '03'O,
|
|
wValue := wValue,
|
|
wIndex := wIndex,
|
|
wLength := 0
|
|
}
|
|
|
|
|
|
template (value) USB_DeviceRequest
|
|
ts_DevReq_SET_INTERFACE(u16le_t interface, u16le_t altsetting) := {
|
|
req_type := {
|
|
direction := Host_to_Device,
|
|
req_type := RequestType_Standard,
|
|
recipient := RequestRecipient_Interface
|
|
},
|
|
bRequest := '0B'O,
|
|
wValue := altsetting,
|
|
wIndex := interface,
|
|
wLength := 0
|
|
}
|
|
|
|
template (value) USB_DeviceRequest
|
|
ts_DevReq_SYNCH_FRAME(u16le_t endpoint) := {
|
|
req_type := {
|
|
direction := Device_to_Host,
|
|
req_type := RequestType_Standard,
|
|
recipient := RequestRecipient_Endpoint
|
|
},
|
|
bRequest := '0C'O,
|
|
wValue := 0,
|
|
wIndex := endpoint,
|
|
wLength := 2
|
|
}
|
|
|
|
}
|