use core::ffi::*;
#[cfg(feature = "objc2")]
use objc2::__framework_prelude::*;
use crate::*;
pub const kIOUSB20BitrateLow: c_uint = 1500 * 1000;
pub const kIOUSB20BitrateFull: c_uint = 12 * 1000 * 1000;
pub const kIOUSB20BitrateHigh: c_uint = 480 * 1000 * 1000;
pub const kIOUSBAppleVendorID: c_uint = 0x05AC;
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct tIOUSBDescriptorType(pub c_uint);
impl tIOUSBDescriptorType {
#[doc(alias = "kIOUSBDescriptorTypeDevice")]
pub const IOUSBDescriptorTypeDevice: Self = Self(1);
#[doc(alias = "kIOUSBDescriptorTypeConfiguration")]
pub const IOUSBDescriptorTypeConfiguration: Self = Self(2);
#[doc(alias = "kIOUSBDescriptorTypeString")]
pub const IOUSBDescriptorTypeString: Self = Self(3);
#[doc(alias = "kIOUSBDescriptorTypeInterface")]
pub const IOUSBDescriptorTypeInterface: Self = Self(4);
#[doc(alias = "kIOUSBDescriptorTypeEndpoint")]
pub const IOUSBDescriptorTypeEndpoint: Self = Self(5);
#[doc(alias = "kIOUSBDescriptorTypeDeviceQualifier")]
pub const IOUSBDescriptorTypeDeviceQualifier: Self = Self(6);
#[doc(alias = "kIOUSBDescriptorTypeOtherSpeedConfiguration")]
pub const IOUSBDescriptorTypeOtherSpeedConfiguration: Self = Self(7);
#[doc(alias = "kIOUSBDescriptorTypeInterfacePower")]
pub const IOUSBDescriptorTypeInterfacePower: Self = Self(8);
#[doc(alias = "kIOUSBDescriptorTypeOTG")]
pub const IOUSBDescriptorTypeOTG: Self = Self(9);
#[doc(alias = "kIOUSBDescriptorTypeDebug")]
pub const IOUSBDescriptorTypeDebug: Self = Self(10);
#[doc(alias = "kIOUSBDescriptorTypeInterfaceAssociation")]
pub const IOUSBDescriptorTypeInterfaceAssociation: Self = Self(11);
#[doc(alias = "kIOUSBDescriptorTypeBOS")]
pub const IOUSBDescriptorTypeBOS: Self = Self(15);
#[doc(alias = "kIOUSBDescriptorTypeDeviceCapability")]
pub const IOUSBDescriptorTypeDeviceCapability: Self = Self(16);
#[doc(alias = "kIOUSBDecriptorTypeHID")]
pub const IOUSBDecriptorTypeHID: Self = Self(33);
#[doc(alias = "kIOUSBDecriptorTypeReport")]
pub const IOUSBDecriptorTypeReport: Self = Self(34);
#[doc(alias = "kIOUSBDescriptorTypePhysical")]
pub const IOUSBDescriptorTypePhysical: Self = Self(35);
#[doc(alias = "kIOUSBDescriptorTypeHub")]
pub const IOUSBDescriptorTypeHub: Self = Self(41);
#[doc(alias = "kIOUSBDescriptorTypeSuperSpeedHub")]
pub const IOUSBDescriptorTypeSuperSpeedHub: Self = Self(42);
#[doc(alias = "kIOUSBDescriptorTypeSuperSpeedUSBEndpointCompanion")]
pub const IOUSBDescriptorTypeSuperSpeedUSBEndpointCompanion: Self = Self(48);
#[doc(alias = "kIOUSBDescriptorTypeSuperSpeedPlusIsochronousEndpointCompanion")]
pub const IOUSBDescriptorTypeSuperSpeedPlusIsochronousEndpointCompanion: Self = Self(49);
}
#[cfg(feature = "objc2")]
unsafe impl Encode for tIOUSBDescriptorType {
const ENCODING: Encoding = c_uint::ENCODING;
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for tIOUSBDescriptorType {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct tIOUSBDescriptorSize(pub c_uint);
impl tIOUSBDescriptorSize {
#[doc(alias = "kIOUSBDescriptorHeaderSize")]
pub const IOUSBDescriptorHeaderSize: Self = Self(2);
#[doc(alias = "kIOUSBDescriptorSizeDevice")]
pub const IOUSBDescriptorSizeDevice: Self = Self(18);
#[doc(alias = "kIOUSBDescriptorSizeConfiguration")]
pub const IOUSBDescriptorSizeConfiguration: Self = Self(9);
#[doc(alias = "kIOUSBDescriptorSizeInterface")]
pub const IOUSBDescriptorSizeInterface: Self = Self(9);
#[doc(alias = "kIOUSBDescriptorSizeEndpoint")]
pub const IOUSBDescriptorSizeEndpoint: Self = Self(7);
#[doc(alias = "kIOUSBDescriptorSizeStringMinimum")]
pub const IOUSBDescriptorSizeStringMinimum: Self =
Self(tIOUSBDescriptorSize::IOUSBDescriptorHeaderSize.0);
#[doc(alias = "kIOUSBDescriptorSizeStringMaximum")]
pub const IOUSBDescriptorSizeStringMaximum: Self = Self(255);
#[doc(alias = "kIOUSBDescriptorSizeDeviceQualifier")]
pub const IOUSBDescriptorSizeDeviceQualifier: Self = Self(10);
#[doc(alias = "kIOUSBDescriptorSizeInterfaceAssociation")]
pub const IOUSBDescriptorSizeInterfaceAssociation: Self = Self(8);
#[doc(alias = "kIOUSBDescriptorSizeBOS")]
pub const IOUSBDescriptorSizeBOS: Self = Self(5);
#[doc(alias = "kIOUSBDescriptorSizeDeviceCapability")]
pub const IOUSBDescriptorSizeDeviceCapability: Self = Self(3);
#[doc(alias = "kIOUSBDescriptorSizeUSB20ExtensionCapability")]
pub const IOUSBDescriptorSizeUSB20ExtensionCapability: Self = Self(7);
#[doc(alias = "kIOUSBDescriptorSizeSuperSpeedUSBDeviceCapability")]
pub const IOUSBDescriptorSizeSuperSpeedUSBDeviceCapability: Self = Self(10);
#[doc(alias = "kIOUSBDescriptorSizeContainerIDCapability")]
pub const IOUSBDescriptorSizeContainerIDCapability: Self = Self(20);
#[doc(alias = "kIOUSBDescriptorSizeHubMinimum")]
pub const IOUSBDescriptorSizeHubMinimum: Self = Self(9);
#[doc(alias = "kIOUSBDescriptorSizeHubMaximum")]
pub const IOUSBDescriptorSizeHubMaximum: Self = Self(21);
#[doc(alias = "kIOUSBDescriptorSizeSuperSpeedHub")]
pub const IOUSBDescriptorSizeSuperSpeedHub: Self = Self(12);
#[doc(alias = "kIOUSBDescriptorSizeSuperSpeedUSBEndpointCompanion")]
pub const IOUSBDescriptorSizeSuperSpeedUSBEndpointCompanion: Self = Self(6);
#[doc(alias = "kIOUSBDescriptorSizeSuperSpeedPlusIsochronousEndpointCompanion")]
pub const IOUSBDescriptorSizeSuperSpeedPlusIsochronousEndpointCompanion: Self = Self(8);
#[doc(alias = "kIOUSBDescriptorSizeBillboardDeviceMinimum")]
pub const IOUSBDescriptorSizeBillboardDeviceMinimum: Self = Self(44);
#[doc(alias = "kIOUSBDescriptorSizeBillboardDeviceMaximum")]
pub const IOUSBDescriptorSizeBillboardDeviceMaximum: Self = Self(256);
#[doc(alias = "kIOUSBDescriptorSizePlatformECIDCapability")]
pub const IOUSBDescriptorSizePlatformECIDCapability: Self = Self(28);
#[doc(alias = "kIOUSBDescriptorSizePlatformCapability")]
pub const IOUSBDescriptorSizePlatformCapability: Self = Self(20);
}
#[cfg(feature = "objc2")]
unsafe impl Encode for tIOUSBDescriptorSize {
const ENCODING: Encoding = c_uint::ENCODING;
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for tIOUSBDescriptorSize {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct IOUSBDescriptorHeader {
pub bLength: u8,
pub bDescriptorType: u8,
}
#[cfg(feature = "objc2")]
unsafe impl Encode for IOUSBDescriptorHeader {
const ENCODING: Encoding =
Encoding::Struct("IOUSBDescriptorHeader", &[<u8>::ENCODING, <u8>::ENCODING]);
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for IOUSBDescriptorHeader {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
pub type IOUSBDescriptor = IOUSBDescriptorHeader;
#[repr(C, packed)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct IOUSBDeviceDescriptor {
pub bLength: u8,
pub bDescriptorType: u8,
pub bcdUSB: u16,
pub bDeviceClass: u8,
pub bDeviceSubClass: u8,
pub bDeviceProtocol: u8,
pub bMaxPacketSize0: u8,
pub idVendor: u16,
pub idProduct: u16,
pub bcdDevice: u16,
pub iManufacturer: u8,
pub iProduct: u8,
pub iSerialNumber: u8,
pub bNumConfigurations: u8,
}
#[cfg(feature = "objc2")]
unsafe impl Encode for IOUSBDeviceDescriptor {
const ENCODING: Encoding = Encoding::Struct(
"IOUSBDeviceDescriptor",
&[
<u8>::ENCODING,
<u8>::ENCODING,
<u16>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u16>::ENCODING,
<u16>::ENCODING,
<u16>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
],
);
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for IOUSBDeviceDescriptor {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C, packed)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct IOUSBDeviceQualifierDescriptor {
pub bLength: u8,
pub bDescriptorType: u8,
pub bcdUSB: u16,
pub bDeviceClass: u8,
pub bDeviceSubClass: u8,
pub bDeviceProtocol: u8,
pub bMaxPacketSize0: u8,
pub bNumConfigurations: u8,
pub bReserved: u8,
}
#[cfg(feature = "objc2")]
unsafe impl Encode for IOUSBDeviceQualifierDescriptor {
const ENCODING: Encoding = Encoding::Struct(
"IOUSBDeviceQualifierDescriptor",
&[
<u8>::ENCODING,
<u8>::ENCODING,
<u16>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
],
);
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for IOUSBDeviceQualifierDescriptor {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C, packed)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct IOUSBConfigurationDescHeader {
pub bLength: u8,
pub bDescriptorType: u8,
pub wTotalLength: u16,
}
#[cfg(feature = "objc2")]
unsafe impl Encode for IOUSBConfigurationDescHeader {
const ENCODING: Encoding = Encoding::Struct(
"IOUSBConfigurationDescHeader",
&[<u8>::ENCODING, <u8>::ENCODING, <u16>::ENCODING],
);
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for IOUSBConfigurationDescHeader {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C, packed)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct IOUSBConfigurationDescriptor {
pub bLength: u8,
pub bDescriptorType: u8,
pub wTotalLength: u16,
pub bNumInterfaces: u8,
pub bConfigurationValue: u8,
pub iConfiguration: u8,
pub bmAttributes: u8,
pub MaxPower: u8,
}
#[cfg(feature = "objc2")]
unsafe impl Encode for IOUSBConfigurationDescriptor {
const ENCODING: Encoding = Encoding::Struct(
"IOUSBConfigurationDescriptor",
&[
<u8>::ENCODING,
<u8>::ENCODING,
<u16>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
],
);
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for IOUSBConfigurationDescriptor {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
pub const kIOUSBConfigurationDescriptorAttributeRemoteWakeCapable: c_uint = IOUSBBit!(5);
pub const kIOUSBConfigurationDescriptorAttributeSelfPowered: c_uint = IOUSBBit!(6);
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct IOUSBInterfaceDescriptor {
pub bLength: u8,
pub bDescriptorType: u8,
pub bInterfaceNumber: u8,
pub bAlternateSetting: u8,
pub bNumEndpoints: u8,
pub bInterfaceClass: u8,
pub bInterfaceSubClass: u8,
pub bInterfaceProtocol: u8,
pub iInterface: u8,
}
#[cfg(feature = "objc2")]
unsafe impl Encode for IOUSBInterfaceDescriptor {
const ENCODING: Encoding = Encoding::Struct(
"IOUSBInterfaceDescriptor",
&[
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
],
);
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for IOUSBInterfaceDescriptor {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C, packed)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct IOUSBEndpointDescriptor {
pub bLength: u8,
pub bDescriptorType: u8,
pub bEndpointAddress: u8,
pub bmAttributes: u8,
pub wMaxPacketSize: u16,
pub bInterval: u8,
}
#[cfg(feature = "objc2")]
unsafe impl Encode for IOUSBEndpointDescriptor {
const ENCODING: Encoding = Encoding::Struct(
"IOUSBEndpointDescriptor",
&[
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u16>::ENCODING,
<u8>::ENCODING,
],
);
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for IOUSBEndpointDescriptor {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
pub const kIOUSBEndpointDescriptorNumber: c_uint = IOUSBBitRange!(0, 3);
pub const kIOUSBEndpointDescriptorNumberPhase: c_uint = IOUSBBitRangePhase!(0, 3);
pub const kIOUSBEndpointDescriptorEndpointAddressReserved: c_uint = IOUSBBitRange!(4, 6);
pub const kIOUSBEndpointDescriptorDirection: c_uint = IOUSBBit!(7);
pub const kIOUSBEndpointDescriptorDirectionPhase: c_uint = IOUSBBitRangePhase!(7, 7);
pub const kIOUSBEndpointDescriptorDirectionOut: c_uint = 0;
pub const kIOUSBEndpointDescriptorDirectionIn: c_uint = IOUSBBit!(7);
pub const kIOUSBEndpointDescriptorTransferType: c_uint = IOUSBBitRange!(0, 1);
pub const kIOUSBEndpointDescriptorTransferTypePhase: c_uint = IOUSBBitRangePhase!(0, 1);
pub const kIOUSBEndpointDescriptorTransferTypeControl: c_uint = 0 << IOUSBBitRangePhase!(0, 1);
pub const kIOUSBEndpointDescriptorTransferTypeIsochronous: c_uint = 1 << IOUSBBitRangePhase!(0, 1);
pub const kIOUSBEndpointDescriptorTransferTypeBulk: c_uint = 2 << IOUSBBitRangePhase!(0, 1);
pub const kIOUSBEndpointDescriptorTransferTypeInterrupt: c_uint = 3 << IOUSBBitRangePhase!(0, 1);
pub const kIOUSBEndpointDescriptorSynchronizationType: c_uint = IOUSBBitRange!(2, 3);
pub const kIOUSBEndpointDescriptorSynchronizationTypePhase: c_uint = IOUSBBitRangePhase!(2, 3);
pub const kIOUSBEndpointDescriptorSynchronizationTypeNone: c_uint = 0 << IOUSBBitRangePhase!(2, 3);
pub const kIOUSBEndpointDescriptorSynchronizationTypeAsynchronous: c_uint =
1 << IOUSBBitRangePhase!(2, 3);
pub const kIOUSBEndpointDescriptorSynchronizationTypeAdaptive: c_uint =
2 << IOUSBBitRangePhase!(2, 3);
pub const kIOUSBEndpointDescriptorSynchronizationTypeSynchronous: c_uint =
3 << IOUSBBitRangePhase!(2, 3);
pub const kIOUSBEndpointDescriptorUsageType: c_uint = IOUSBBitRange!(4, 5);
pub const kIOUSBEndpointDescriptorUsageTypePhase: c_uint = IOUSBBitRangePhase!(4, 5);
pub const kIOUSBEndpointDescriptorUsageTypeInterruptPeriodic: c_uint =
0 << IOUSBBitRangePhase!(4, 5);
pub const kIOUSBEndpointDescriptorUsageTypeInterruptNotification: c_uint =
1 << IOUSBBitRangePhase!(4, 5);
pub const kIOUSBEndpointDescriptorUsageTypeInterruptReserved1: c_uint =
2 << IOUSBBitRangePhase!(4, 5);
pub const kIOUSBEndpointDescriptorUsageTypeInterruptReserved2: c_uint =
3 << IOUSBBitRangePhase!(4, 5);
pub const kIOUSBEndpointDescriptorUsageTypeIsocData: c_uint = 0 << IOUSBBitRangePhase!(4, 5);
pub const kIOUSBEndpointDescriptorUsageTypeIsocFeedback: c_uint = 1 << IOUSBBitRangePhase!(4, 5);
pub const kIOUSBEndpointDescriptorUsageTypeIsocImplicit: c_uint = 2 << IOUSBBitRangePhase!(4, 5);
pub const kIOUSBEndpointDescriptorUsageTypeIsocReserved: c_uint = 3 << IOUSBBitRangePhase!(4, 5);
pub const kIOUSBEndpointDescriptorPacketSize: c_uint = IOUSBBitRange!(0, 10);
pub const kIOUSBEndpointDescriptorPacketSizePhase: c_uint = IOUSBBitRangePhase!(0, 10);
pub const kIOUSBEndpointDescriptorPacketSizeMult: c_uint = IOUSBBitRange!(11, 12);
pub const kIOUSBEndpointDescriptorPacketSizeMultPhase: c_uint = IOUSBBitRangePhase!(11, 12);
pub const kIOUSBEndpointDescriptorReserved: c_uint = IOUSBBitRange!(13, 15);
pub const kIOUSBEndpointDescriptorReservedPhase: c_uint = IOUSBBitRangePhase!(13, 15);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct tIOUSBEndpointDirection(pub c_uint);
impl tIOUSBEndpointDirection {
#[doc(alias = "kIOUSBEndpointDirectionOut")]
pub const IOUSBEndpointDirectionOut: Self =
Self(kIOUSBEndpointDescriptorDirectionOut >> kIOUSBEndpointDescriptorDirectionPhase);
#[doc(alias = "kIOUSBEndpointDirectionIn")]
pub const IOUSBEndpointDirectionIn: Self =
Self(kIOUSBEndpointDescriptorDirectionIn >> kIOUSBEndpointDescriptorDirectionPhase);
#[doc(alias = "kIOUSBEndpointDirectionUnknown")]
pub const IOUSBEndpointDirectionUnknown: Self = Self(2);
}
#[cfg(feature = "objc2")]
unsafe impl Encode for tIOUSBEndpointDirection {
const ENCODING: Encoding = c_uint::ENCODING;
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for tIOUSBEndpointDirection {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct tIOUSBEndpointType(pub c_uint);
impl tIOUSBEndpointType {
#[doc(alias = "kIOUSBEndpointTypeControl")]
pub const IOUSBEndpointTypeControl: Self = Self(
kIOUSBEndpointDescriptorTransferTypeControl >> kIOUSBEndpointDescriptorTransferTypePhase,
);
#[doc(alias = "kIOUSBEndpointTypeIsochronous")]
pub const IOUSBEndpointTypeIsochronous: Self = Self(
kIOUSBEndpointDescriptorTransferTypeIsochronous
>> kIOUSBEndpointDescriptorTransferTypePhase,
);
#[doc(alias = "kIOUSBEndpointTypeBulk")]
pub const IOUSBEndpointTypeBulk: Self =
Self(kIOUSBEndpointDescriptorTransferTypeBulk >> kIOUSBEndpointDescriptorTransferTypePhase);
#[doc(alias = "kIOUSBEndpointTypeInterrupt")]
pub const IOUSBEndpointTypeInterrupt: Self = Self(
kIOUSBEndpointDescriptorTransferTypeInterrupt >> kIOUSBEndpointDescriptorTransferTypePhase,
);
}
#[cfg(feature = "objc2")]
unsafe impl Encode for tIOUSBEndpointType {
const ENCODING: Encoding = c_uint::ENCODING;
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for tIOUSBEndpointType {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct tIOUSBEndpointSynchronizationType(pub c_uint);
impl tIOUSBEndpointSynchronizationType {
#[doc(alias = "kIOUSBEndpointSynchronizationTypeNone")]
pub const IOUSBEndpointSynchronizationTypeNone: Self = Self(
kIOUSBEndpointDescriptorSynchronizationTypeNone
>> kIOUSBEndpointDescriptorSynchronizationTypePhase,
);
#[doc(alias = "kIOUSBEndpointSynchronizationTypeAsynchronous")]
pub const IOUSBEndpointSynchronizationTypeAsynchronous: Self = Self(
kIOUSBEndpointDescriptorSynchronizationTypeAsynchronous
>> kIOUSBEndpointDescriptorSynchronizationTypePhase,
);
#[doc(alias = "kIOUSBEndpointSynchronizationTypeAdaptive")]
pub const IOUSBEndpointSynchronizationTypeAdaptive: Self = Self(
kIOUSBEndpointDescriptorSynchronizationTypeAdaptive
>> kIOUSBEndpointDescriptorSynchronizationTypePhase,
);
#[doc(alias = "kIOUSBEndpointSynchronizationTypeSynchronous")]
pub const IOUSBEndpointSynchronizationTypeSynchronous: Self = Self(
kIOUSBEndpointDescriptorSynchronizationTypeSynchronous
>> kIOUSBEndpointDescriptorSynchronizationTypePhase,
);
}
#[cfg(feature = "objc2")]
unsafe impl Encode for tIOUSBEndpointSynchronizationType {
const ENCODING: Encoding = c_uint::ENCODING;
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for tIOUSBEndpointSynchronizationType {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct tIOUSBEndpointUsageType(pub c_uint);
impl tIOUSBEndpointUsageType {
#[doc(alias = "kIOUSBEndpointUsageTypeIsocData")]
pub const IOUSBEndpointUsageTypeIsocData: Self =
Self(kIOUSBEndpointDescriptorUsageTypeIsocData >> kIOUSBEndpointDescriptorUsageTypePhase);
#[doc(alias = "kIOUSBEndpointUsageTypeIsocFeedback")]
pub const IOUSBEndpointUsageTypeIsocFeedback: Self = Self(
kIOUSBEndpointDescriptorUsageTypeIsocFeedback >> kIOUSBEndpointDescriptorUsageTypePhase,
);
#[doc(alias = "kIOUSBEndpointUsageTypeIsocImplicit")]
pub const IOUSBEndpointUsageTypeIsocImplicit: Self = Self(
kIOUSBEndpointDescriptorUsageTypeIsocImplicit >> kIOUSBEndpointDescriptorUsageTypePhase,
);
}
#[cfg(feature = "objc2")]
unsafe impl Encode for tIOUSBEndpointUsageType {
const ENCODING: Encoding = c_uint::ENCODING;
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for tIOUSBEndpointUsageType {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct tIOUSBLanguageID(pub c_uint);
impl tIOUSBLanguageID {
#[doc(alias = "kIOUSBLanguageIDEnglishUS")]
pub const IOUSBLanguageIDEnglishUS: Self = Self(0x0409);
}
#[cfg(feature = "objc2")]
unsafe impl Encode for tIOUSBLanguageID {
const ENCODING: Encoding = c_uint::ENCODING;
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for tIOUSBLanguageID {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct IOUSBStringDescriptor {
pub bLength: u8,
pub bDescriptorType: u8,
pub bString: [u8; 1],
}
#[cfg(feature = "objc2")]
unsafe impl Encode for IOUSBStringDescriptor {
const ENCODING: Encoding = Encoding::Struct(
"IOUSBStringDescriptor",
&[<u8>::ENCODING, <u8>::ENCODING, <[u8; 1]>::ENCODING],
);
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for IOUSBStringDescriptor {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct tIOUSBDeviceCapabilityType(pub c_uint);
impl tIOUSBDeviceCapabilityType {
#[doc(alias = "kIOUSBDeviceCapabilityTypeWireless")]
pub const IOUSBDeviceCapabilityTypeWireless: Self = Self(1);
#[doc(alias = "kIOUSBDeviceCapabilityTypeUSB20Extension")]
pub const IOUSBDeviceCapabilityTypeUSB20Extension: Self = Self(2);
#[doc(alias = "kIOUSBDeviceCapabilityTypeSuperSpeed")]
pub const IOUSBDeviceCapabilityTypeSuperSpeed: Self = Self(3);
#[doc(alias = "kIOUSBDeviceCapabilityTypeContainerID")]
pub const IOUSBDeviceCapabilityTypeContainerID: Self = Self(4);
#[doc(alias = "kIOUSBDeviceCapabilityTypePlatform")]
pub const IOUSBDeviceCapabilityTypePlatform: Self = Self(5);
#[doc(alias = "kIOUSBDeviceCapabilityTypePowerDelivery")]
pub const IOUSBDeviceCapabilityTypePowerDelivery: Self = Self(6);
#[doc(alias = "kIOUSBDeviceCapabilityTypeBatteryInfo")]
pub const IOUSBDeviceCapabilityTypeBatteryInfo: Self = Self(7);
#[doc(alias = "kIOUSBDeviceCapabilityTypePdConsumerPort")]
pub const IOUSBDeviceCapabilityTypePdConsumerPort: Self = Self(8);
#[doc(alias = "kIOUSBDeviceCapabilityTypePdProviderPort")]
pub const IOUSBDeviceCapabilityTypePdProviderPort: Self = Self(9);
#[doc(alias = "kIOUSBDeviceCapabilityTypeSuperSpeedPlus")]
pub const IOUSBDeviceCapabilityTypeSuperSpeedPlus: Self = Self(10);
#[doc(alias = "kIOUSBDeviceCapabilityTypePrecisionMeasurement")]
pub const IOUSBDeviceCapabilityTypePrecisionMeasurement: Self = Self(11);
#[doc(alias = "kIOUSBDeviceCapabilityTypeWirelessExt")]
pub const IOUSBDeviceCapabilityTypeWirelessExt: Self = Self(12);
#[doc(alias = "kIOUSBDeviceCapabilityTypeBillboard")]
pub const IOUSBDeviceCapabilityTypeBillboard: Self = Self(13);
#[doc(alias = "kIOUSBDeviceCapabilityTypeBillboardAltMode")]
pub const IOUSBDeviceCapabilityTypeBillboardAltMode: Self = Self(15);
}
#[cfg(feature = "objc2")]
unsafe impl Encode for tIOUSBDeviceCapabilityType {
const ENCODING: Encoding = c_uint::ENCODING;
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for tIOUSBDeviceCapabilityType {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C, packed)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct IOUSBBOSDescriptor {
pub bLength: u8,
pub bDescriptorType: u8,
pub wTotalLength: u16,
pub bNumDeviceCaps: u8,
}
#[cfg(feature = "objc2")]
unsafe impl Encode for IOUSBBOSDescriptor {
const ENCODING: Encoding = Encoding::Struct(
"IOUSBBOSDescriptor",
&[
<u8>::ENCODING,
<u8>::ENCODING,
<u16>::ENCODING,
<u8>::ENCODING,
],
);
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for IOUSBBOSDescriptor {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct IOUSBDeviceCapabilityDescriptorHeader {
pub bLength: u8,
pub bDescriptorType: u8,
pub bDevCapabilityType: u8,
}
#[cfg(feature = "objc2")]
unsafe impl Encode for IOUSBDeviceCapabilityDescriptorHeader {
const ENCODING: Encoding = Encoding::Struct(
"IOUSBDeviceCapabilityDescriptorHeader",
&[<u8>::ENCODING, <u8>::ENCODING, <u8>::ENCODING],
);
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for IOUSBDeviceCapabilityDescriptorHeader {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C, packed)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct IOUSBDeviceCapabilityUSB2Extension {
pub bLength: u8,
pub bDescriptorType: u8,
pub bDevCapabilityType: u8,
pub bmAttributes: u32,
}
#[cfg(feature = "objc2")]
unsafe impl Encode for IOUSBDeviceCapabilityUSB2Extension {
const ENCODING: Encoding = Encoding::Struct(
"IOUSBDeviceCapabilityUSB2Extension",
&[
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u32>::ENCODING,
],
);
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for IOUSBDeviceCapabilityUSB2Extension {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
pub const kIOUSBUSB20ExtensionCapabilityLPM: c_uint = IOUSBBit!(1);
pub const kIOUSBUSB20ExtensionCapabilityBESLSupport: c_uint = IOUSBBit!(2);
pub const kIOUSBUSB20ExtensionCapabilityBESLValid: c_uint = IOUSBBit!(3);
pub const kIOUSBUSB20ExtensionCapabilityBESLDValid: c_uint = IOUSBBit!(4);
pub const kIOUSBUSB20ExtensionCapabilityBESL: c_uint = IOUSBBitRange!(8, 11);
pub const kIOUSBUSB20ExtensionCapabilityBESLPhase: c_uint = IOUSBBitRangePhase!(8, 11);
pub const kIOUSBUSB20ExtensionCapabilityBESLD: c_uint = IOUSBBitRange!(12, 15);
pub const kIOUSBUSB20ExtensionCapabilityBESLDPhase: c_uint = IOUSBBitRangePhase!(12, 15);
#[repr(C, packed)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct IOUSBDeviceCapabilitySuperSpeedUSB {
pub bLength: u8,
pub bDescriptorType: u8,
pub bDevCapabilityType: u8,
pub bmAttributes: u8,
pub wSpeedsSupported: u16,
pub bFunctionalitySupport: u8,
pub bU1DevExitLat: u8,
pub wU2DevExitLat: u16,
}
#[cfg(feature = "objc2")]
unsafe impl Encode for IOUSBDeviceCapabilitySuperSpeedUSB {
const ENCODING: Encoding = Encoding::Struct(
"IOUSBDeviceCapabilitySuperSpeedUSB",
&[
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u16>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u16>::ENCODING,
],
);
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for IOUSBDeviceCapabilitySuperSpeedUSB {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
pub const kIOUSBSuperSpeedDeviceCapabilityLTM: c_uint = IOUSBBit!(1);
pub const kIOUSBSuperSpeedDeviceCapabilityLowSpeed: c_uint = IOUSBBit!(0);
pub const kIOUSBSuperSpeedDeviceCapabilityFullSpeed: c_uint = IOUSBBit!(1);
pub const kIOUSBSuperSpeedDeviceCapabilityHighSpeed: c_uint = IOUSBBit!(2);
pub const kIOUSBSuperSpeedDeviceCapability5Gb: c_uint = IOUSBBit!(3);
pub const kIOUSBSuperSpeedDeviceCapabilitySupportLowSpeed: c_uint = 0;
pub const kIOUSBSuperSpeedDeviceCapabilitySupportFullSpeed: c_uint = 1;
pub const kIOUSBSuperSpeedDeviceCapabilitySupportHighSpeed: c_uint = 2;
pub const kIOUSBSuperSpeedDeviceCapabilitySupport5Gb: c_uint = 3;
pub const kIOUSBSuperSpeedDeviceCapabilityU1DevExitLatMax: c_uint = 0xa;
pub const kIOUSBSuperSpeedDeviceCapabilityU2DevExitLatMax: c_uint = 0x7ff;
#[repr(C, packed)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct IOUSBDeviceCapabilitySuperSpeedPlusUSB {
pub bLength: u8,
pub bDescriptorType: u8,
pub bDevCapabilityType: u8,
pub bReserved: u8,
pub bmAttributes: u32,
pub wFunctionalitySupport: u16,
pub wReserved: u16,
pub bmSublinkSpeedAttr: *mut u32,
}
#[cfg(feature = "objc2")]
unsafe impl Encode for IOUSBDeviceCapabilitySuperSpeedPlusUSB {
const ENCODING: Encoding = Encoding::Struct(
"IOUSBDeviceCapabilitySuperSpeedPlusUSB",
&[
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u32>::ENCODING,
<u16>::ENCODING,
<u16>::ENCODING,
<*mut u32>::ENCODING,
],
);
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for IOUSBDeviceCapabilitySuperSpeedPlusUSB {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
pub const kIOUSBSuperSpeedPlusDeviceCapabilitySublinkSpeedAttrCount: c_uint = IOUSBBitRange!(0, 4);
pub const kIOUSBSuperSpeedPlusDeviceCapabilitySublinkSpeedAttrCountPhase: c_uint =
IOUSBBitRangePhase!(0, 4);
pub const kIOUSBSuperSpeedPlusDeviceCapabilitySublinkSpeedIdCount: c_uint = IOUSBBitRange!(5, 8);
pub const kIOUSBSuperSpeedPlusDeviceCapabilitySublinkSpeedIdCountPhase: c_uint =
IOUSBBitRangePhase!(5, 8);
pub const kIOUSBSuperSpeedPlusDeviceCapabilitySublinkMinSpeedId: c_uint = IOUSBBitRange!(0, 3);
pub const kIOUSBSuperSpeedPlusDeviceCapabilitySublinkMinSpeedIdPhase: c_uint =
IOUSBBitRangePhase!(0, 3);
pub const kIOUSBSuperSpeedPlusDeviceCapabilityReserved: c_uint = IOUSBBitRange!(4, 7);
pub const kIOUSBSuperSpeedPlusDeviceCapabilityReservedPhase: c_uint = IOUSBBitRangePhase!(4, 7);
pub const kIOUSBSuperSpeedPlusDeviceCapabilityMinRxLaneCount: c_uint = IOUSBBitRange!(8, 11);
pub const kIOUSBSuperSpeedPlusDeviceCapabilityMinRxLaneCountPhase: c_uint =
IOUSBBitRangePhase!(8, 11);
pub const kIOUSBSuperSpeedPlusDeviceCapabilityMinTxLaneCount: c_uint = IOUSBBitRange!(12, 15);
pub const kIOUSBSuperSpeedPlusDeviceCapabilityMinTxLaneCountPhase: c_uint =
IOUSBBitRangePhase!(12, 15);
pub const kIOUSBSuperSpeedPlusDeviceCapabilitySublinkSpeedId: c_uint = IOUSBBitRange!(0, 3);
pub const kIOUSBSuperSpeedPlusDeviceCapabilitySublinkSpeedIdPhase: c_uint =
IOUSBBitRangePhase!(0, 3);
pub const kIOUSBSuperSpeedPlusDeviceCapabilitySublinkLSE: c_uint = IOUSBBitRange!(4, 5);
pub const kIOUSBSuperSpeedPlusDeviceCapabilitySublinkLSEPhase: c_uint = IOUSBBitRangePhase!(4, 5);
pub const kIOUSBSuperSpeedPlusDeviceCapabilitySublinkLSEBits: c_uint =
0 << kIOUSBSuperSpeedPlusDeviceCapabilitySublinkLSEPhase;
pub const kIOUSBSuperSpeedPlusDeviceCapabilitySublinkLSEKbits: c_uint =
1 << kIOUSBSuperSpeedPlusDeviceCapabilitySublinkLSEPhase;
pub const kIOUSBSuperSpeedPlusDeviceCapabilitySublinkLSEMbits: c_uint =
2 << kIOUSBSuperSpeedPlusDeviceCapabilitySublinkLSEPhase;
pub const kIOUSBSuperSpeedPlusDeviceCapabilitySublinkLSEGbits: c_uint =
3 << kIOUSBSuperSpeedPlusDeviceCapabilitySublinkLSEPhase;
pub const kIOUSBSuperSpeedPlusDeviceCapabilitySublinkType: c_uint = IOUSBBitRange!(6, 7);
pub const kIOUSBSuperSpeedPlusDeviceCapabilitySublinkTypePhase: c_uint = IOUSBBitRangePhase!(6, 7);
pub const kIOUSBSuperSpeedPlusDeviceCapabilitySublinkSymmetry: c_uint = IOUSBBit!(6);
pub const kIOUSBSuperSpeedPlusDeviceCapabilitySublinkSymmetryPhase: c_uint =
IOUSBBitRangePhase!(6, 6);
pub const kIOUSBSuperSpeedPlusDeviceCapabilitySublinkSymmetric: c_uint =
0 << kIOUSBSuperSpeedPlusDeviceCapabilitySublinkSymmetryPhase;
pub const kIOUSBSuperSpeedPlusDeviceCapabilitySublinkAsymmetric: c_uint =
1 << kIOUSBSuperSpeedPlusDeviceCapabilitySublinkSymmetryPhase;
pub const kIOUSBSuperSpeedPlusDeviceCapabilitySublinkDirection: c_uint = IOUSBBit!(7);
pub const kIOUSBSuperSpeedPlusDeviceCapabilitySublinkDirectionPhase: c_uint =
IOUSBBitRangePhase!(7, 7);
pub const kIOUSBSuperSpeedPlusDeviceCapabilitySublinkDirectionRx: c_uint =
0 << kIOUSBSuperSpeedPlusDeviceCapabilitySublinkDirectionPhase;
pub const kIOUSBSuperSpeedPlusDeviceCapabilitySublinkDirectionTx: c_uint =
1 << kIOUSBSuperSpeedPlusDeviceCapabilitySublinkDirectionPhase;
pub const kIOUSBSuperSpeedPlusDeviceCapabilitySublinkReserved: c_uint = IOUSBBitRange!(8, 13);
pub const kIOUSBSuperSpeedPlusDeviceCapabilitySublinkReservedPhase: c_uint =
IOUSBBitRangePhase!(8, 13);
pub const kIOUSBSuperSpeedPlusDeviceCapabilitySublinkProtocol: c_uint = IOUSBBitRange!(14, 15);
pub const kIOUSBSuperSpeedPlusDeviceCapabilitySublinkProtocolPhase: c_uint =
IOUSBBitRangePhase!(14, 15);
pub const kIOUSBSuperSpeedPlusDeviceCapabilitySublinkSpeedMantissa: c_uint = IOUSBBitRange!(16, 31);
pub const kIOUSBSuperSpeedPlusDeviceCapabilitySublinkSpeedMantissaPhase: c_uint =
IOUSBBitRangePhase!(16, 31);
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct IOUSBDeviceCapabilityContainerID {
pub bLength: u8,
pub bDescriptorType: u8,
pub bDevCapabilityType: u8,
pub bReservedID: u8,
pub containerID: [u8; 16],
}
#[cfg(feature = "objc2")]
unsafe impl Encode for IOUSBDeviceCapabilityContainerID {
const ENCODING: Encoding = Encoding::Struct(
"IOUSBDeviceCapabilityContainerID",
&[
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<[u8; 16]>::ENCODING,
],
);
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for IOUSBDeviceCapabilityContainerID {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct IOUSBPlatformCapabilityDescriptor {
pub bLength: u8,
pub bDescriptorType: u8,
pub bDevCapabilityType: u8,
pub bReserved: u8,
pub PlatformCapabilityUUID: uuid_t,
}
#[cfg(feature = "objc2")]
unsafe impl Encode for IOUSBPlatformCapabilityDescriptor {
const ENCODING: Encoding = Encoding::Struct(
"IOUSBPlatformCapabilityDescriptor",
&[
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<uuid_t>::ENCODING,
],
);
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for IOUSBPlatformCapabilityDescriptor {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C, packed)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct IOUSBDeviceCapabilityBillboardAltConfigCompatibility {
pub wSVID: u16,
pub dwAlternateMode: u32,
pub iAlternateModeString: u8,
}
#[cfg(feature = "objc2")]
unsafe impl Encode for IOUSBDeviceCapabilityBillboardAltConfigCompatibility {
const ENCODING: Encoding = Encoding::Struct(
"IOUSBDeviceCapabilityBillboardAltConfigCompatibility",
&[<u16>::ENCODING, <u32>::ENCODING, <u8>::ENCODING],
);
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for IOUSBDeviceCapabilityBillboardAltConfigCompatibility {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C, packed)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct IOUSBDeviceCapabilityBillboardAltConfig {
pub wSVID: u16,
pub bAltenateMode: u8,
pub iAlternateModeString: u8,
}
#[cfg(feature = "objc2")]
unsafe impl Encode for IOUSBDeviceCapabilityBillboardAltConfig {
const ENCODING: Encoding = Encoding::Struct(
"IOUSBDeviceCapabilityBillboardAltConfig",
&[<u16>::ENCODING, <u8>::ENCODING, <u8>::ENCODING],
);
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for IOUSBDeviceCapabilityBillboardAltConfig {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C, packed)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct IOUSBDeviceCapabilityBillboard {
pub bLength: u8,
pub bDescriptorType: u8,
pub bDevCapabilityType: u8,
pub iAdditionalInfoURL: u8,
pub bNumberOfAlternateModes: u8,
pub bPreferredAlternateMode: u8,
pub vCONNPower: u16,
pub bmConfigured: [u8; 32],
pub bcdVersion: u16,
pub bAdditionalFailureInfo: u8,
pub bReserved: u8,
pub pAltConfigurations: *mut IOUSBDeviceCapabilityBillboardAltConfig,
}
#[cfg(feature = "objc2")]
unsafe impl Encode for IOUSBDeviceCapabilityBillboard {
const ENCODING: Encoding = Encoding::Struct(
"IOUSBDeviceCapabilityBillboard",
&[
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u16>::ENCODING,
<[u8; 32]>::ENCODING,
<u16>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<*mut IOUSBDeviceCapabilityBillboardAltConfig>::ENCODING,
],
);
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for IOUSBDeviceCapabilityBillboard {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C, packed)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct IOUSBDeviceCapabilityBillboardAltMode {
pub bLength: u8,
pub bDescriptorType: u8,
pub bDevCapabilityType: u8,
pub bIndex: u8,
pub dwAlternateModeVdo: u16,
}
#[cfg(feature = "objc2")]
unsafe impl Encode for IOUSBDeviceCapabilityBillboardAltMode {
const ENCODING: Encoding = Encoding::Struct(
"IOUSBDeviceCapabilityBillboardAltMode",
&[
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u16>::ENCODING,
],
);
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for IOUSBDeviceCapabilityBillboardAltMode {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct IOUSBInterfaceAssociationDescriptor {
pub bLength: u8,
pub bDescriptorType: u8,
pub bFirstInterface: u8,
pub bInterfaceCount: u8,
pub bFunctionClass: u8,
pub bFunctionSubClass: u8,
pub bFunctionProtocol: u8,
pub iFunction: u8,
}
#[cfg(feature = "objc2")]
unsafe impl Encode for IOUSBInterfaceAssociationDescriptor {
const ENCODING: Encoding = Encoding::Struct(
"IOUSBInterfaceAssociationDescriptor",
&[
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
],
);
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for IOUSBInterfaceAssociationDescriptor {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C, packed)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct IOUSBSuperSpeedEndpointCompanionDescriptor {
pub bLength: u8,
pub bDescriptorType: u8,
pub bMaxBurst: u8,
pub bmAttributes: u8,
pub wBytesPerInterval: u16,
}
#[cfg(feature = "objc2")]
unsafe impl Encode for IOUSBSuperSpeedEndpointCompanionDescriptor {
const ENCODING: Encoding = Encoding::Struct(
"IOUSBSuperSpeedEndpointCompanionDescriptor",
&[
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u16>::ENCODING,
],
);
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for IOUSBSuperSpeedEndpointCompanionDescriptor {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
pub const kIOUSBSuperSpeedEndpointCompanionDescriptorMaxBurst: c_uint = IOUSBBitRange!(0, 4);
pub const kIOUSBSuperSpeedEndpointCompanionDescriptorMaxBurstPhase: c_uint =
IOUSBBitRangePhase!(0, 4);
pub const kIOUSBSuperSpeedEndpointCompanionDescriptorBulkMaxStreams: c_uint = IOUSBBitRange!(0, 4);
pub const kIOUSBSuperSpeedEndpointCompanionDescriptorBulkMaxStreamsPhase: c_uint =
IOUSBBitRangePhase!(0, 4);
pub const kIOUSBSuperSpeedEndpointCompanionDescriptorBulkReserved: c_uint = IOUSBBitRange!(5, 7);
pub const kIOUSBSuperSpeedEndpointCompanionDescriptorBulkReservedPhase: c_uint =
IOUSBBitRangePhase!(5, 7);
pub const kIOUSBSuperSpeedEndpointCompanionDescriptorIsocMult: c_uint = IOUSBBitRange!(0, 1);
pub const kIOUSBSuperSpeedEndpointCompanionDescriptorIsocMultPhase: c_uint =
IOUSBBitRangePhase!(0, 1);
pub const kIOUSBSuperSpeedEndpointCompanionDescriptorIsocReserved: c_uint = IOUSBBitRange!(2, 6);
pub const kIOUSBSuperSpeedEndpointCompanionDescriptorIsocReservedPhase: c_uint =
IOUSBBitRangePhase!(2, 6);
pub const kIOUSBSuperSpeedEndpointCompanionDescriptorSSPIsocCompanion: c_uint = IOUSBBit!(7);
#[repr(C, packed)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct IOUSBSuperSpeedPlusIsochronousEndpointCompanionDescriptor {
pub bLength: u8,
pub bDescriptorType: u8,
pub wReserved: u16,
pub dwBytesPerInterval: u32,
}
#[cfg(feature = "objc2")]
unsafe impl Encode for IOUSBSuperSpeedPlusIsochronousEndpointCompanionDescriptor {
const ENCODING: Encoding = Encoding::Struct(
"IOUSBSuperSpeedPlusIsochronousEndpointCompanionDescriptor",
&[
<u8>::ENCODING,
<u8>::ENCODING,
<u16>::ENCODING,
<u32>::ENCODING,
],
);
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for IOUSBSuperSpeedPlusIsochronousEndpointCompanionDescriptor {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C, packed)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct IOUSB20HubDescriptor {
pub bLength: u8,
pub bDescriptorType: u8,
pub bNumberPorts: u8,
pub wHubCharacteristics: u16,
pub bPowerOnToPowerGood: u8,
pub bHubControllerCurrent: u8,
pub deviceRemovable: [u8; 2],
pub reserved: [u8; 2],
}
#[cfg(feature = "objc2")]
unsafe impl Encode for IOUSB20HubDescriptor {
const ENCODING: Encoding = Encoding::Struct(
"IOUSB20HubDescriptor",
&[
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u16>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<[u8; 2]>::ENCODING,
<[u8; 2]>::ENCODING,
],
);
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for IOUSB20HubDescriptor {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C, packed)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct IOUSBSuperSpeedHubDescriptor {
pub bLength: u8,
pub bDescriptorType: u8,
pub bNumberPorts: u8,
pub wHubCharacteristics: u16,
pub bPowerOnToPowerGood: u8,
pub bHubControllerCurrent: u8,
pub bHubDecodeLatency: u8,
pub wHubDelay: u16,
pub deviceRemovable: u16,
}
#[cfg(feature = "objc2")]
unsafe impl Encode for IOUSBSuperSpeedHubDescriptor {
const ENCODING: Encoding = Encoding::Struct(
"IOUSBSuperSpeedHubDescriptor",
&[
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u16>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u16>::ENCODING,
<u16>::ENCODING,
],
);
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for IOUSBSuperSpeedHubDescriptor {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
pub const kIOUSBSuperSpeedHubCharacteristicsPowerSwitchingMask: c_uint = IOUSBBitRange!(0, 1);
pub const kIOUSBSuperSpeedHubCharacteristicsPowerSwitchingGanged: c_uint =
0 << IOUSBBitRangePhase!(0, 1);
pub const kIOUSBSuperSpeedHubCharacteristicsPowerSwitchingIndividual: c_uint =
1 << IOUSBBitRangePhase!(0, 1);
pub const kIOUSBSuperSpeedHubCharacteristicsCompoundDevice: c_uint = IOUSBBit!(2);
pub const kIOUSBSuperSpeedHubCharacteristicsOverCurrentMask: c_uint = IOUSBBitRange!(3, 4);
pub const kIOUSBSuperSpeedHubCharacteristicsOverCurrentGlobal: c_uint =
0 << IOUSBBitRangePhase!(3, 4);
pub const kIOUSBSuperSpeedHubCharacteristicsOverCurrentIndividual: c_uint =
1 << IOUSBBitRangePhase!(3, 4);
pub const kIOUSBSuperSpeedHubCharacteristicsReserved: c_uint = IOUSBBitRange!(5, 15);
pub const kIOUSBSuperSpeedHubDecodeLatencyMax: c_uint = 10;
pub const kIOUSBSuperSpeedHubDelayMax: c_uint = 400;
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct UASPipeDescriptor {
pub bLength: u8,
pub bDescriptorType: u8,
pub bPipeID: u8,
pub bReserved: u8,
}
#[cfg(feature = "objc2")]
unsafe impl Encode for UASPipeDescriptor {
const ENCODING: Encoding = Encoding::Struct(
"UASPipeDescriptor",
&[
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
],
);
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for UASPipeDescriptor {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C, packed)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct IOUSBHIDDescriptor {
pub descLen: u8,
pub descType: u8,
pub descVersNum: u16,
pub hidCountryCode: u8,
pub hidNumDescriptors: u8,
pub hidDescriptorType: u8,
pub hidDescriptorLengthLo: u8,
pub hidDescriptorLengthHi: u8,
}
#[cfg(feature = "objc2")]
unsafe impl Encode for IOUSBHIDDescriptor {
const ENCODING: Encoding = Encoding::Struct(
"IOUSBHIDDescriptor",
&[
<u8>::ENCODING,
<u8>::ENCODING,
<u16>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
],
);
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for IOUSBHIDDescriptor {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct IOUSBHIDReportDesc {
pub hidDescriptorType: u8,
pub hidDescriptorLengthLo: u8,
pub hidDescriptorLengthHi: u8,
}
#[cfg(feature = "objc2")]
unsafe impl Encode for IOUSBHIDReportDesc {
const ENCODING: Encoding = Encoding::Struct(
"IOUSBHIDReportDesc",
&[<u8>::ENCODING, <u8>::ENCODING, <u8>::ENCODING],
);
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for IOUSBHIDReportDesc {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C, packed)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct IOUSBDFUDescriptor {
pub bLength: u8,
pub bDescriptorType: u8,
pub bmAttributes: u8,
pub wDetachTimeout: u16,
pub wTransferSize: u16,
}
#[cfg(feature = "objc2")]
unsafe impl Encode for IOUSBDFUDescriptor {
const ENCODING: Encoding = Encoding::Struct(
"IOUSBDFUDescriptor",
&[
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u16>::ENCODING,
<u16>::ENCODING,
],
);
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for IOUSBDFUDescriptor {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C, packed)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct IOUSBDeviceRequest {
pub bmRequestType: u8,
pub bRequest: u8,
pub wValue: u16,
pub wIndex: u16,
pub wLength: u16,
}
#[cfg(feature = "objc2")]
unsafe impl Encode for IOUSBDeviceRequest {
const ENCODING: Encoding = Encoding::Struct(
"IOUSBDeviceRequest",
&[
<u8>::ENCODING,
<u8>::ENCODING,
<u16>::ENCODING,
<u16>::ENCODING,
<u16>::ENCODING,
],
);
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for IOUSBDeviceRequest {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C, packed)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct IOUSBDeviceRequestSetSELData {
pub u1Sel: u8,
pub u1Pel: u8,
pub u2Sel: u16,
pub u2Pel: u16,
}
#[cfg(feature = "objc2")]
unsafe impl Encode for IOUSBDeviceRequestSetSELData {
const ENCODING: Encoding = Encoding::Struct(
"IOUSBDeviceRequestSetSELData",
&[
<u8>::ENCODING,
<u8>::ENCODING,
<u16>::ENCODING,
<u16>::ENCODING,
],
);
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for IOUSBDeviceRequestSetSELData {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct tIOUSBDeviceRequestDirectionValue(pub c_uint);
impl tIOUSBDeviceRequestDirectionValue {
#[doc(alias = "kIOUSBDeviceRequestDirectionValueOut")]
pub const IOUSBDeviceRequestDirectionValueOut: Self = Self(0);
#[doc(alias = "kIOUSBDeviceRequestDirectionValueIn")]
pub const IOUSBDeviceRequestDirectionValueIn: Self = Self(1);
}
#[cfg(feature = "objc2")]
unsafe impl Encode for tIOUSBDeviceRequestDirectionValue {
const ENCODING: Encoding = c_uint::ENCODING;
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for tIOUSBDeviceRequestDirectionValue {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct tIOUSBDeviceRequestTypeValue(pub c_uint);
impl tIOUSBDeviceRequestTypeValue {
#[doc(alias = "kIOUSBDeviceRequestTypeValueStandard")]
pub const IOUSBDeviceRequestTypeValueStandard: Self = Self(0);
#[doc(alias = "kIOUSBDeviceRequestTypeValueClass")]
pub const IOUSBDeviceRequestTypeValueClass: Self = Self(1);
#[doc(alias = "kIOUSBDeviceRequestTypeValueVendor")]
pub const IOUSBDeviceRequestTypeValueVendor: Self = Self(2);
}
#[cfg(feature = "objc2")]
unsafe impl Encode for tIOUSBDeviceRequestTypeValue {
const ENCODING: Encoding = c_uint::ENCODING;
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for tIOUSBDeviceRequestTypeValue {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct tIOUSBDeviceRequestRecipientValue(pub c_uint);
impl tIOUSBDeviceRequestRecipientValue {
#[doc(alias = "kIOUSBDeviceRequestRecipientValueDevice")]
pub const IOUSBDeviceRequestRecipientValueDevice: Self = Self(0);
#[doc(alias = "kIOUSBDeviceRequestRecipientValueInterface")]
pub const IOUSBDeviceRequestRecipientValueInterface: Self = Self(1);
#[doc(alias = "kIOUSBDeviceRequestRecipientValueEndpoint")]
pub const IOUSBDeviceRequestRecipientValueEndpoint: Self = Self(2);
#[doc(alias = "kIOUSBDeviceRequestRecipientValueOther")]
pub const IOUSBDeviceRequestRecipientValueOther: Self = Self(3);
}
#[cfg(feature = "objc2")]
unsafe impl Encode for tIOUSBDeviceRequestRecipientValue {
const ENCODING: Encoding = c_uint::ENCODING;
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for tIOUSBDeviceRequestRecipientValue {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct tIOUSBDeviceRequest(pub c_uint);
impl tIOUSBDeviceRequest {
#[doc(alias = "kIOUSBDeviceRequestSize")]
pub const IOUSBDeviceRequestSize: Self = Self(8);
#[doc(alias = "kIOUSBDeviceRequestDirectionMask")]
pub const IOUSBDeviceRequestDirectionMask: Self = Self(IOUSBBit!(7));
#[doc(alias = "kIOUSBDeviceRequestDirectionPhase")]
pub const IOUSBDeviceRequestDirectionPhase: Self = Self(IOUSBBitRangePhase!(7, 7));
#[doc(alias = "kIOUSBDeviceRequestDirectionOut")]
pub const IOUSBDeviceRequestDirectionOut: Self = Self(
tIOUSBDeviceRequestDirectionValue::IOUSBDeviceRequestDirectionValueOut.0
<< tIOUSBDeviceRequest::IOUSBDeviceRequestDirectionPhase.0,
);
#[doc(alias = "kIOUSBDeviceRequestDirectionIn")]
pub const IOUSBDeviceRequestDirectionIn: Self = Self(
tIOUSBDeviceRequestDirectionValue::IOUSBDeviceRequestDirectionValueIn.0
<< tIOUSBDeviceRequest::IOUSBDeviceRequestDirectionPhase.0,
);
#[doc(alias = "kIOUSBDeviceRequestTypeMask")]
pub const IOUSBDeviceRequestTypeMask: Self = Self(IOUSBBitRange!(5, 6));
#[doc(alias = "kIOUSBDeviceRequestTypePhase")]
pub const IOUSBDeviceRequestTypePhase: Self = Self(IOUSBBitRangePhase!(5, 6));
#[doc(alias = "kIOUSBDeviceRequestTypeStandard")]
pub const IOUSBDeviceRequestTypeStandard: Self = Self(
tIOUSBDeviceRequestTypeValue::IOUSBDeviceRequestTypeValueStandard.0
<< tIOUSBDeviceRequest::IOUSBDeviceRequestTypePhase.0,
);
#[doc(alias = "kIOUSBDeviceRequestTypeClass")]
pub const IOUSBDeviceRequestTypeClass: Self = Self(
tIOUSBDeviceRequestTypeValue::IOUSBDeviceRequestTypeValueClass.0
<< tIOUSBDeviceRequest::IOUSBDeviceRequestTypePhase.0,
);
#[doc(alias = "kIOUSBDeviceRequestTypeVendor")]
pub const IOUSBDeviceRequestTypeVendor: Self = Self(
tIOUSBDeviceRequestTypeValue::IOUSBDeviceRequestTypeValueVendor.0
<< tIOUSBDeviceRequest::IOUSBDeviceRequestTypePhase.0,
);
#[doc(alias = "kIOUSBDeviceRequestRecipientMask")]
pub const IOUSBDeviceRequestRecipientMask: Self = Self(IOUSBBitRange!(0, 4));
#[doc(alias = "kIOUSBDeviceRequestRecipientPhase")]
pub const IOUSBDeviceRequestRecipientPhase: Self = Self(IOUSBBitRangePhase!(0, 4));
#[doc(alias = "kIOUSBDeviceRequestRecipientDevice")]
pub const IOUSBDeviceRequestRecipientDevice: Self = Self(
tIOUSBDeviceRequestRecipientValue::IOUSBDeviceRequestRecipientValueDevice.0
<< tIOUSBDeviceRequest::IOUSBDeviceRequestRecipientPhase.0,
);
#[doc(alias = "kIOUSBDeviceRequestRecipientInterface")]
pub const IOUSBDeviceRequestRecipientInterface: Self = Self(
tIOUSBDeviceRequestRecipientValue::IOUSBDeviceRequestRecipientValueInterface.0
<< tIOUSBDeviceRequest::IOUSBDeviceRequestRecipientPhase.0,
);
#[doc(alias = "kIOUSBDeviceRequestRecipientEndpoint")]
pub const IOUSBDeviceRequestRecipientEndpoint: Self = Self(
tIOUSBDeviceRequestRecipientValue::IOUSBDeviceRequestRecipientValueEndpoint.0
<< tIOUSBDeviceRequest::IOUSBDeviceRequestRecipientPhase.0,
);
#[doc(alias = "kIOUSBDeviceRequestRecipientOther")]
pub const IOUSBDeviceRequestRecipientOther: Self = Self(
tIOUSBDeviceRequestRecipientValue::IOUSBDeviceRequestRecipientValueOther.0
<< tIOUSBDeviceRequest::IOUSBDeviceRequestRecipientPhase.0,
);
}
#[cfg(feature = "objc2")]
unsafe impl Encode for tIOUSBDeviceRequest {
const ENCODING: Encoding = c_uint::ENCODING;
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for tIOUSBDeviceRequest {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
pub const kIOUSBDeviceRequestGetStatus: c_uint = 0;
pub const kIOUSBDeviceRequestClearFeature: c_uint = 1;
pub const kIOUSBDeviceRequestGetState: c_uint = 2;
pub const kIOUSBDeviceRequestSetFeature: c_uint = 3;
pub const kIOUSBDeviceRequestSetAddress: c_uint = 5;
pub const kIOUSBDeviceRequestGetDescriptor: c_uint = 6;
pub const kIOUSBDeviceRequestSetDescriptor: c_uint = 7;
pub const kIOUSBDeviceRequestGetConfiguration: c_uint = 8;
pub const kIOUSBDeviceRequestSetConfiguration: c_uint = 9;
pub const kIOUSBDeviceRequestGetInterface: c_uint = 10;
pub const kIOUSBDeviceRequestSetInterface: c_uint = 11;
pub const kIOUSBDeviceRequestSynchFrame: c_uint = 12;
pub const kIOUSBDeviceRequestSetSel: c_uint = 48;
pub const kIOUSBDeviceRequestSetIsochronousDelay: c_uint = 49;
pub const kIOUSBDeviceStatusSelfPowered: c_uint = IOUSBBit!(0);
pub const kIOUSBDeviceStatusRemoteWakeEnable: c_uint = IOUSBBit!(1);
pub const kIOUSBDeviceStatusU1Enable: c_uint = IOUSBBit!(2);
pub const kIOUSBDeviceStatusU2Enable: c_uint = IOUSBBit!(3);
pub const kIOUSBDeviceStatusLTMEnable: c_uint = IOUSBBit!(4);
pub const kIOUSBInterfaceStatusRemoteWakeCapable: c_uint = IOUSBBit!(0);
pub const kIOUSBInterfaceStatusRemoteWakeEnable: c_uint = IOUSBBit!(1);
pub const IOUSBEndpointStatusHalt: c_uint = IOUSBBit!(0);
pub const kIOUSBDeviceFeatureSelectorRemoteWakeup: c_uint = 1;
pub const kIOUSBDeviceFeatureSelectorTestMode: c_uint = 2;
pub const kIOUSBDeviceFeatureSelectorU1Enable: c_uint = 48;
pub const kIOUSBDeviceFeatureSelectorU2Enable: c_uint = 49;
pub const kIOUSBDeviceFeatureSelectorLTMEnable: c_uint = 50;
pub const kIOUSBInterfaceFeatureSelectorSuspend: c_uint = 0;
pub const IOUSBEndpointFeatureSelectorStall: c_uint = 0;
pub const kIOUSBInterfaceSuspendLowPower: c_uint = IOUSBBit!(0);
pub const kIOUSBInterfaceSuspendRemoteWakeEnable: c_uint = IOUSBBit!(1);
pub const kIOUSBHubPort2PortExitLatencyNs: c_uint = 1000;
pub const kIOUSBHubDelayNs: c_uint = 400;
pub const kIOUSBPingResponseTimeNs: c_uint = 400;
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct tIOUSBBusVoltage(pub c_uint);
impl tIOUSBBusVoltage {
#[doc(alias = "kIOUSBBusVoltageDefault")]
pub const IOUSBBusVoltageDefault: Self = Self(5);
}
#[cfg(feature = "objc2")]
unsafe impl Encode for tIOUSBBusVoltage {
const ENCODING: Encoding = c_uint::ENCODING;
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for tIOUSBBusVoltage {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct tIOUSB20BusCurrent(pub c_uint);
impl tIOUSB20BusCurrent {
#[doc(alias = "kIOUSB20BusCurrentMinimum")]
pub const IOUSB20BusCurrentMinimum: Self = Self(100);
#[doc(alias = "kIOUSB20BusCurrentDefault")]
pub const IOUSB20BusCurrentDefault: Self = Self(500);
#[doc(alias = "kIOUSB20BusCurrentMaxPowerUnits")]
pub const IOUSB20BusCurrentMaxPowerUnits: Self = Self(2);
}
#[cfg(feature = "objc2")]
unsafe impl Encode for tIOUSB20BusCurrent {
const ENCODING: Encoding = c_uint::ENCODING;
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for tIOUSB20BusCurrent {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct tIOUSB30BusCurrent(pub c_uint);
impl tIOUSB30BusCurrent {
#[doc(alias = "kIOUSB30BusCurrentMinimum")]
pub const IOUSB30BusCurrentMinimum: Self = Self(150);
#[doc(alias = "kIOUSB30BusCurrentDefault")]
pub const IOUSB30BusCurrentDefault: Self = Self(900);
#[doc(alias = "kIOUSB30BusCurrentMaxPowerUnits")]
pub const IOUSB30BusCurrentMaxPowerUnits: Self = Self(8);
}
#[cfg(feature = "objc2")]
unsafe impl Encode for tIOUSB30BusCurrent {
const ENCODING: Encoding = c_uint::ENCODING;
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for tIOUSB30BusCurrent {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct tIOUSBTopology(pub c_uint);
impl tIOUSBTopology {
#[doc(alias = "kIOUSBTopologyHost")]
pub const IOUSBTopologyHost: Self = Self(1);
#[doc(alias = "kIOUSBTopologyRootPort")]
pub const IOUSBTopologyRootPort: Self = Self(2);
#[doc(alias = "kIOUSBTopology1Hub")]
pub const IOUSBTopology1Hub: Self = Self(3);
#[doc(alias = "kIOUSBTopology2Hub")]
pub const IOUSBTopology2Hub: Self = Self(4);
#[doc(alias = "kIOUSBTopology3Hub")]
pub const IOUSBTopology3Hub: Self = Self(5);
#[doc(alias = "kIOUSBTopology4Hub")]
pub const IOUSBTopology4Hub: Self = Self(6);
#[doc(alias = "kIOUSBTopology5Hub")]
pub const IOUSBTopology5Hub: Self = Self(7);
#[doc(alias = "kIOUSBTopologyTierLimit")]
pub const IOUSBTopologyTierLimit: Self = Self(tIOUSBTopology::IOUSBTopology5Hub.0);
}
#[cfg(feature = "objc2")]
unsafe impl Encode for tIOUSBTopology {
const ENCODING: Encoding = c_uint::ENCODING;
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for tIOUSBTopology {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct tIOUSB30ResetTimeout(pub c_uint);
impl tIOUSB30ResetTimeout {
#[doc(alias = "kIOUSB30ResetMinimumTimeout")]
pub const IOUSB30ResetMinimumTimeout: Self = Self(80);
#[doc(alias = "kIOUSB30ResetTypicalTimeout")]
pub const IOUSB30ResetTypicalTimeout: Self = Self(100);
#[doc(alias = "kIOUSB30ResetMaximumTimeout")]
pub const IOUSB30ResetMaximumTimeout: Self = Self(120);
#[doc(alias = "kIOUSB30ResetMaximumWithMarginTimeout")]
pub const IOUSB30ResetMaximumWithMarginTimeout: Self = Self(150);
}
#[cfg(feature = "objc2")]
unsafe impl Encode for tIOUSB30ResetTimeout {
const ENCODING: Encoding = c_uint::ENCODING;
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for tIOUSB30ResetTimeout {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct tIOUSB30LinkStateTimeout(pub c_uint);
impl tIOUSB30LinkStateTimeout {
#[doc(alias = "kIOUSB30LinkStateSSInactiveQuietTimeout")]
pub const IOUSB30LinkStateSSInactiveQuietTimeout: Self = Self(12);
#[doc(alias = "kIOUSB30LinkStateRxDetectQuietTimeout")]
pub const IOUSB30LinkStateRxDetectQuietTimeout: Self = Self(12);
#[doc(alias = "kIOUSB30LinkStatePollingLFPSTimeout")]
pub const IOUSB30LinkStatePollingLFPSTimeout: Self = Self(360);
#[doc(alias = "kIOUSB30LinkStatePollingActiveTimeout")]
pub const IOUSB30LinkStatePollingActiveTimeout: Self = Self(12);
#[doc(alias = "kIOUSB30LinkStatePollingConfigurationTimeout")]
pub const IOUSB30LinkStatePollingConfigurationTimeout: Self = Self(12);
#[doc(alias = "kIOUSB30LinkStatePollingIdleTimeout")]
pub const IOUSB30LinkStatePollingIdleTimeout: Self = Self(2);
#[doc(alias = "kIOUSB30LinkStateU0RecoveryTimeout")]
pub const IOUSB30LinkStateU0RecoveryTimeout: Self = Self(1);
#[doc(alias = "kIOUSB30LinkStateU0LTimeout")]
pub const IOUSB30LinkStateU0LTimeout: Self = Self(0);
#[doc(alias = "kIOUSB30LinkStateU1NoLFPSResponseTimeout")]
pub const IOUSB30LinkStateU1NoLFPSResponseTimeout: Self = Self(2);
#[doc(alias = "kIOUSB30LinkStateU1PingTimeout")]
pub const IOUSB30LinkStateU1PingTimeout: Self = Self(300);
#[doc(alias = "kIOUSB30LinkStateU2NoLFPSResponseTimeout")]
pub const IOUSB30LinkStateU2NoLFPSResponseTimeout: Self = Self(2);
#[doc(alias = "kIOUSB30LinKStateU2RxDetectDelay")]
pub const IOUSB30LinKStateU2RxDetectDelay: Self = Self(100);
#[doc(alias = "kIOUSB30LinkStateU3NoLFPSResponseTimeout")]
pub const IOUSB30LinkStateU3NoLFPSResponseTimeout: Self = Self(10);
#[doc(alias = "kIOUSB30LinkStateU3WakeupRetryDelay")]
pub const IOUSB30LinkStateU3WakeupRetryDelay: Self = Self(100);
#[doc(alias = "kIOUSB30LinkStateU3RxDetectDelay")]
pub const IOUSB30LinkStateU3RxDetectDelay: Self = Self(100);
#[doc(alias = "kIOUSB30LinkStateRecoveryActiveTimeout")]
pub const IOUSB30LinkStateRecoveryActiveTimeout: Self = Self(12);
#[doc(alias = "kIOUSB30LinkStateRecoveryConfigurationTimeout")]
pub const IOUSB30LinkStateRecoveryConfigurationTimeout: Self = Self(6);
#[doc(alias = "kIOUSB30LinkStateRecoveryIdleTimeout")]
pub const IOUSB30LinkStateRecoveryIdleTimeout: Self = Self(2);
#[doc(alias = "kIOUSB30LinkStateLoopbackExitTimeout")]
pub const IOUSB30LinkStateLoopbackExitTimeout: Self = Self(2);
#[doc(alias = "kIOUSB30LinkStateHotResetActiveTimeout")]
pub const IOUSB30LinkStateHotResetActiveTimeout: Self = Self(12);
#[doc(alias = "kIOUSB30LinkStateHotResetExitTimeout")]
pub const IOUSB30LinkStateHotResetExitTimeout: Self = Self(2);
#[doc(alias = "kIOUSB30LinkStatePollingDeadline")]
pub const IOUSB30LinkStatePollingDeadline: Self = Self(
tIOUSB30LinkStateTimeout::IOUSB30LinkStatePollingLFPSTimeout.0
+ 1
+ tIOUSB30LinkStateTimeout::IOUSB30LinkStatePollingActiveTimeout.0
+ tIOUSB30LinkStateTimeout::IOUSB30LinkStatePollingConfigurationTimeout.0
+ tIOUSB30LinkStateTimeout::IOUSB30LinkStatePollingIdleTimeout.0,
);
#[doc(alias = "kIOUSB30LinkStateSSResumeDeadline")]
pub const IOUSB30LinkStateSSResumeDeadline: Self = Self(
tIOUSB30LinkStateTimeout::IOUSB30LinkStateU3WakeupRetryDelay.0+tIOUSB30LinkStateTimeout::IOUSB30LinkStateU3NoLFPSResponseTimeout.0+tIOUSB30LinkStateTimeout::IOUSB30LinkStateRecoveryActiveTimeout.0+tIOUSB30LinkStateTimeout::IOUSB30LinkStateRecoveryConfigurationTimeout.0+tIOUSB30LinkStateTimeout::IOUSB30LinkStateRecoveryIdleTimeout.0,
);
#[doc(alias = "kIOUSB30LinkStateRecoveryDeadline")]
pub const IOUSB30LinkStateRecoveryDeadline: Self = Self(
tIOUSB30LinkStateTimeout::IOUSB30LinkStateRecoveryActiveTimeout.0
+ tIOUSB30LinkStateTimeout::IOUSB30LinkStateRecoveryConfigurationTimeout.0
+ tIOUSB30LinkStateTimeout::IOUSB30LinkStateRecoveryIdleTimeout.0
+ 1,
);
#[doc(alias = "kIOUSB30LinkStateHotResetDeadline")]
pub const IOUSB30LinkStateHotResetDeadline: Self = Self(
tIOUSB30LinkStateTimeout::IOUSB30LinkStateHotResetActiveTimeout.0
+ tIOUSB30LinkStateTimeout::IOUSB30LinkStateHotResetExitTimeout.0
+ 1,
);
}
#[cfg(feature = "objc2")]
unsafe impl Encode for tIOUSB30LinkStateTimeout {
const ENCODING: Encoding = c_uint::ENCODING;
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for tIOUSB30LinkStateTimeout {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct tIOUSB30DeviceNotificationType(pub c_uint);
impl tIOUSB30DeviceNotificationType {
#[doc(alias = "kIOUSB30DeviceNotificationTypeFunctionWake")]
pub const IOUSB30DeviceNotificationTypeFunctionWake: Self = Self(1);
#[doc(alias = "kIOUSB30DeviceNotificationTypeLatencyTolerance")]
pub const IOUSB30DeviceNotificationTypeLatencyTolerance: Self = Self(2);
#[doc(alias = "kIOUSB30DeviceNotificationTypeBusIntervalAdjustment")]
pub const IOUSB30DeviceNotificationTypeBusIntervalAdjustment: Self = Self(3);
#[doc(alias = "kIOUSB30DeviceNotificationTypeHostRoleRequest")]
pub const IOUSB30DeviceNotificationTypeHostRoleRequest: Self = Self(4);
#[doc(alias = "kIOUSB30DeviceNotificationTypeSublinkSpeed")]
pub const IOUSB30DeviceNotificationTypeSublinkSpeed: Self = Self(5);
}
#[cfg(feature = "objc2")]
unsafe impl Encode for tIOUSB30DeviceNotificationType {
const ENCODING: Encoding = c_uint::ENCODING;
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for tIOUSB30DeviceNotificationType {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct tIOUSB30TimingParameters(pub c_uint);
impl tIOUSB30TimingParameters {
#[doc(alias = "kIOUSB30TimingParameterBELTDefaultNs")]
pub const IOUSB30TimingParameterBELTDefaultNs: Self = Self(1 * 1000 * 1000);
#[doc(alias = "kIOUSB30TimingParameterBELTMinNs")]
pub const IOUSB30TimingParameterBELTMinNs: Self = Self(125 * 1000);
}
#[cfg(feature = "objc2")]
unsafe impl Encode for tIOUSB30TimingParameters {
const ENCODING: Encoding = c_uint::ENCODING;
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for tIOUSB30TimingParameters {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct tIOUSB30HubPortStatusCode(pub c_uint);
impl tIOUSB30HubPortStatusCode {
#[doc(alias = "kIOUSB30HubPortStatusCodeStandard")]
pub const IOUSB30HubPortStatusCodeStandard: Self = Self(0);
#[doc(alias = "kIOUSB30HubPortStatusCodePD")]
pub const IOUSB30HubPortStatusCodePD: Self = Self(1);
#[doc(alias = "kIOUSB30HubPortStatusCodeExt")]
pub const IOUSB30HubPortStatusCodeExt: Self = Self(2);
#[doc(alias = "kIOUSB30HubPortStatusCodeCount")]
pub const IOUSB30HubPortStatusCodeCount: Self = Self(3);
}
#[cfg(feature = "objc2")]
unsafe impl Encode for tIOUSB30HubPortStatusCode {
const ENCODING: Encoding = c_uint::ENCODING;
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for tIOUSB30HubPortStatusCode {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
pub const kIOUSB30RetimerDepthLimit: c_uint = 4;
#[repr(C, packed)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct IOUSB30HubPortStatusExt {
pub wPortStatus: u16,
pub wPortChange: u16,
pub dwExtPortStatus: u32,
}
#[cfg(feature = "objc2")]
unsafe impl Encode for IOUSB30HubPortStatusExt {
const ENCODING: Encoding = Encoding::Struct(
"IOUSB30HubPortStatusExt",
&[<u16>::ENCODING, <u16>::ENCODING, <u32>::ENCODING],
);
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for IOUSB30HubPortStatusExt {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct tIOUSB30HubExtStatus(pub c_uint);
impl tIOUSB30HubExtStatus {
#[doc(alias = "kIOUSB30HubExtStatusRxSublinkSpeedID")]
pub const IOUSB30HubExtStatusRxSublinkSpeedID: Self = Self(IOUSBBitRange!(0, 3));
#[doc(alias = "kIOUSB30HubExtStatusRxSublinkSpeedIDPhase")]
pub const IOUSB30HubExtStatusRxSublinkSpeedIDPhase: Self = Self(IOUSBBitRangePhase!(0, 3));
#[doc(alias = "kIOUSB30HubExtStatusTxSublinkSpeedID")]
pub const IOUSB30HubExtStatusTxSublinkSpeedID: Self = Self(IOUSBBitRange!(4, 7));
#[doc(alias = "kIOUSB30HubExtStatusTxSublinkSpeedIDPhase")]
pub const IOUSB30HubExtStatusTxSublinkSpeedIDPhase: Self = Self(IOUSBBitRangePhase!(4, 7));
#[doc(alias = "kIOUSB30HubExtStatusRxLaneCount")]
pub const IOUSB30HubExtStatusRxLaneCount: Self = Self(IOUSBBitRange!(8, 11));
#[doc(alias = "kIOUSB30HubExtStatusRxLaneCountPhase")]
pub const IOUSB30HubExtStatusRxLaneCountPhase: Self = Self(IOUSBBitRangePhase!(8, 11));
#[doc(alias = "kIOUSB30HubExtStatusTxLaneCount")]
pub const IOUSB30HubExtStatusTxLaneCount: Self = Self(IOUSBBitRange!(12, 15));
#[doc(alias = "kIOUSB30HubExtStatusTxLaneCountPhase")]
pub const IOUSB30HubExtStatusTxLaneCountPhase: Self = Self(IOUSBBitRangePhase!(12, 15));
}
#[cfg(feature = "objc2")]
unsafe impl Encode for tIOUSB30HubExtStatus {
const ENCODING: Encoding = c_uint::ENCODING;
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for tIOUSB30HubExtStatus {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}