//..............................................................................
//
// USB Control Endpoint session dispatch codes for IAS
//

//..............................................................................

enum UsbControlEndpointDispatchCode {
	GetDeviceVid,
	GetDevicePid,
	SetDeviceVidPid,
	GetInterfaceId,
	SetInterfaceId,
	GetReqDirection,
	SetReqDirection,
	GetReqRecipient,
	SetReqRecipient,
	GetReqType,
	SetReqType,
	GetReqCode,
	SetReqCode,
	GetReqValue,
	SetReqValue,
	GetReqIndex,
	SetReqIndex,
	OpenDevice,
	OpenDeviceVidPid,
	CloseDevice,
	ClaimInterface,
	ClaimInterfaceId,
	ReleaseInterface,
	StartInTransfer,
}

// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

enum UsbControlReqDirection {
	Out = 0x00,
	In  = 0x80,
}

enum UsbControlReqRecipient {
	Device    = 0x00,
	Interface = 0x01,
	Endpoint  = 0x02,
	Other     = 0x03,
}

enum UsbControlReqType {
	Standard  = 0x00 << 5,
	Class     = 0x01 << 5,
	Vendor    = 0x02 << 5,
	Reserved  = 0x03 << 5,
}

enum UsbControlReqCode {
	GetStatus        = 0x00,
	ClearFeature     = 0x01,
	SetFeature       = 0x03,
	SetAddress       = 0x05,
	GetDescriptor    = 0x06,
	SetDescriptor    = 0x07,
	GetConfiguration = 0x08,
	SetConfiguration = 0x09,
	GetInterface     = 0x0a,
	SetInterface     = 0x0b,
}

//..............................................................................
