diff --git a/AUTHORS b/AUTHORS index 2a806f9f7bc8..ea748db76fa0 100644 --- a/AUTHORS +++ b/AUTHORS @@ -55,3 +55,4 @@ Elektrobit Automotive GmbH Rivos Inc. Jeongjun Park International Business Machines Corporation +Berk Cem Goksel diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 467d714f4258..fb4de909c943 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -147,3 +147,4 @@ International Business Machines Corporation Andrew Donnellan Alexander Egorenkov Alexey Kardashevskiy +Berk Cem Goksel diff --git a/sys/linux/init.go b/sys/linux/init.go index 1427cebb10e7..451ec6c154b6 100644 --- a/sys/linux/init.go +++ b/sys/linux/init.go @@ -64,6 +64,10 @@ func InitTarget(target *prog.Target) { "usb_device_descriptor": arch.generateUsbDeviceDescriptor, "usb_device_descriptor_printer": arch.generateUsbPrinterDeviceDescriptor, "usb_device_descriptor_hid": arch.generateUsbHidDeviceDescriptor, + "usb_device_descriptor_uac1": arch.generateAudioDeviceDescriptor, + "usb_device_descriptor_uac2": arch.generateAudioDeviceDescriptor, + "usb_device_descriptor_uac3": arch.generateAudioDeviceDescriptor, + "usb_device_descriptor_midi": arch.generateAudioDeviceDescriptor, } target.AuxResources = map[string]bool{ diff --git a/sys/linux/init_vusb.go b/sys/linux/init_vusb.go index 998aa9ff7ea5..33399c7a089a 100644 --- a/sys/linux/init_vusb.go +++ b/sys/linux/init_vusb.go @@ -112,6 +112,154 @@ func (arch *arch) generateUsbPrinterDeviceDescriptor(g *prog.Gen, typ0 prog.Type return } +func (arch *arch) generateAudioDeviceDescriptor(g *prog.Gen, typ0 prog.Type, dir prog.Dir, old prog.Arg) ( + arg prog.Arg, calls []*prog.Call) { + if old == nil { + arg = g.GenerateSpecialArg(typ0, dir, &calls) + } else { + arg = prog.CloneArg(old) + calls = g.MutateArg(arg) + } + if g.Target().ArgContainsAny(arg) { + return + } + // Roll the dice to decide if and how we want to patch audio device IDs. + switch { + case g.Rand().Intn(3) == 0: + // Syzlang descriptions already contain passable IDs, leave them as is. + return + case g.Rand().Intn(2) == 0: + // Patch in quirk IDs that are hardcoded in the USB audio class drivers + // (and thus are not auto-extractable) to allow exercising driver quirks. + var idVendor uint16 + var idProduct uint16 + quirksIDs := [][2]uint16{ + // sound/usb/quirks.c + {0x041e, 0x3000}, + {0x041e, 0x3020}, + {0x10f5, 0x0200}, + {0x0d8c, 0x0102}, + {0x0ccd, 0x00b1}, + {0x1235, 0x0010}, + {0x1235, 0x0018}, + {0x0763, 0x2012}, + {0x047f, 0xc010}, + {0x2466, 0x8010}, + // sound/usb/stream.c ? + {0x04fa, 0x4201}, + // sound/usb/midi.c + {0x0a67, 0x5011}, + {0x0a92, 0x1020}, + {0x1430, 0x474b}, + {0x15ca, 0x0101}, + {0x15ca, 0x1806}, + {0x1a86, 0x752d}, + {0xfc08, 0x0101}, + {0x0644, 0x800e}, + {0x0644, 0x800f}, + {0x0763, 0x0150}, + // Test if this covers midi.c | grep USB_VID_VENDOR + {0x0582, 0x0582}, + // sound/usb/card.c + {0x18d1, 0x2d04}, + {0x18d1, 0x2d05}, + // sound/usb/format.c + {0x0582, 0x0016}, + {0x0582, 0x000c}, + {0x0d8c, 0x0201}, + {0x0d8c, 0x0102}, + {0x0d8c, 0x0078}, + {0x0ccd, 0x00b1}, + {0x041e, 0x4064}, + {0x041e, 0x4068}, + {0x194f, 0x010c}, + {0x0e41, 0x4241}, + {0x0e41, 0x4241}, + {0x0e41, 0x4242}, + {0x0e41, 0x4244}, + {0x0e41, 0x4246}, + {0x0e41, 0x4247}, + {0x0e41, 0x4248}, + {0x0e41, 0x4249}, + {0x0e41, 0x424a}, + {0x19f7, 0x0011}, + {0x0e41, 0x3000}, + {0x0e41, 0x3020}, + {0x0e41, 0x3061}, + {0x0a67, 0x5011}, + // sound/usb/mixer_quirks.c + {0x041e, 0x3000}, + {0x041e, 0x3020}, + {0x041e, 0x3040}, + {0x041e, 0x3042}, + {0x041e, 0x3048}, + {0x041e, 0x30df}, + {0x041e, 0x3237}, + {0x041e, 0x323b}, + {0x041e, 0x3263}, + {0x0644, 0x8047}, + {0x0b05, 0x1739}, + {0x0b05, 0x1743}, + {0x0b05, 0x17a0}, + {0x0bda, 0x4014}, + {0x0d8c, 0x000c}, + {0x0d8c, 0x0014}, + {0x0d8c, 0x0103}, + {0x1235, 0x8002}, + {0x1235, 0x8004}, + {0x1235, 0x800c}, + {0x1235, 0x8012}, + {0x1235, 0x8014}, + {0x1235, 0x8201}, + {0x1235, 0x8203}, + {0x1235, 0x8204}, + {0x1235, 0x8210}, + {0x1235, 0x8211}, + {0x1235, 0x8212}, + {0x1235, 0x8213}, + {0x1235, 0x8214}, + {0x1235, 0x8215}, + {0x17cc, 0x1011}, + {0x17cc, 0x1021}, + {0x194f, 0x010c}, + {0x200c, 0x1018}, + {0x21b4, 0x0081}, + {0x2a39, 0x3fb0}, + {0x2a39, 0x3fd2}, + {0x2a39, 0x3fd3}, + {0x2a39, 0x3fd4}, + // yamaha + {0x0499, 0x0499}, + {0x0582, 0x0582}, + } + idx := g.Rand().Intn(len(quirksIDs)) + idVendor = quirksIDs[idx][0] + idProduct = quirksIDs[idx][1] + devArg := arg.(*prog.GroupArg).Inner[0] + patchGroupArg(devArg, 7, "idVendor", uint64(idVendor)) + patchGroupArg(devArg, 8, "idProduct", uint64(idProduct)) + default: + // Patch in IDs auto-extracted from the matching rules for the USB audio class. + // Do not patch IDs that are not used in the matching rules to avoid subverting + // the kernel into matching the device to a different driver. + // TODO: some of these strings might be missing is dict, check + ids := usbIds["snd-bcd2000"] + + usbIds["snd-ua101"] + + usbIds["snd-usb-6fire"] + + usbIds["snd-usb-audio"] + + usbIds["snd-usb-caiaq"] + + usbIds["snd-usb-hiface"] + + usbIds["snd-usb-us122l"] + + usbIds["snd-usb-usx2y"] + + usbIds["snd_usb_pod"] + + usbIds["snd_usb_podhd"] + + usbIds["snd_usb_toneport"] + + usbIds["snd_usb_variax"] + patchUsbDeviceID(g, &arg, calls, ids, false) + } + return +} + func patchUsbDeviceID(g *prog.Gen, arg *prog.Arg, calls []*prog.Call, ids string, patchNonMatching bool) { id := randUsbDeviceID(g, ids, patchNonMatching) @@ -138,7 +286,7 @@ func patchUsbDeviceID(g *prog.Gen, arg *prog.Arg, calls []*prog.Call, ids string } configArg := devArg.(*prog.GroupArg).Inner[14].(*prog.GroupArg).Inner[0].(*prog.GroupArg).Inner[0] - interfacesArg := configArg.(*prog.GroupArg).Inner[8] + interfacesArg := configArg.(*prog.GroupArg).Inner[9] for i, interfaceArg := range interfacesArg.(*prog.GroupArg).Inner { interfaceArg = interfaceArg.(*prog.GroupArg).Inner[0] diff --git a/sys/linux/test/vusb_midi b/sys/linux/test/vusb_midi new file mode 100644 index 000000000000..cb123672224b --- /dev/null +++ b/sys/linux/test/vusb_midi @@ -0,0 +1,4 @@ +# requires: -repeat + +r0 = syz_usb_connect$midi(0x0, 0x0, &AUTO, &AUTO) +syz_usb_control_io$midi(r0, 0x0, 0x0) diff --git a/sys/linux/test/vusb_uac2 b/sys/linux/test/vusb_uac2 new file mode 100644 index 000000000000..ca9c0ffa157e --- /dev/null +++ b/sys/linux/test/vusb_uac2 @@ -0,0 +1,4 @@ +# requires: -repeat + +r0 = syz_usb_connect$uac2(0x0, 0x0, &AUTO, &AUTO) +syz_usb_control_io$uac2(r0, 0x0, 0x0) diff --git a/sys/linux/test/vusb_uac3 b/sys/linux/test/vusb_uac3 new file mode 100644 index 000000000000..1c6ed1b9bd5b --- /dev/null +++ b/sys/linux/test/vusb_uac3 @@ -0,0 +1,4 @@ +# requires: -repeat + +r0 = syz_usb_connect$uac3(0x0, 0x0, &AUTO, &AUTO) +syz_usb_control_io$uac3(r0, 0x0, 0x0) diff --git a/sys/linux/vusb.txt b/sys/linux/vusb.txt index 217552ac7237..0de4a6d8845b 100644 --- a/sys/linux/vusb.txt +++ b/sys/linux/vusb.txt @@ -7,7 +7,10 @@ include include include +include include +include +include include include include @@ -47,8 +50,8 @@ type usb_device_descriptor_verbose_t[USB, CLASS, SUBCLASS, PROTOCOL, PACKET, VEN bDeviceSubClass const[SUBCLASS, int8] bDeviceProtocol const[PROTOCOL, int8] bMaxPacketSize0 PACKET - idVendor const[VENDOR, int16] - idProduct const[PRODUCT, int16] + idVendor VENDOR + idProduct PRODUCT bcdDevice const[DEVICE, int16] iManufacturer const[1, int8] iProduct const[2, int8] @@ -58,15 +61,15 @@ type usb_device_descriptor_verbose_t[USB, CLASS, SUBCLASS, PROTOCOL, PACKET, VEN configs CFS } [packed] -type usb_device_descriptor_t[CLASS, SUBCLASS, PROTOCOL, VENDOR, PRODUCT, DEVICE, CFS] usb_device_descriptor_verbose_t[flags[usb_versions, int16], CLASS, SUBCLASS, PROTOCOL, flags[usb_device_max_packet_sizes, int8], VENDOR, PRODUCT, DEVICE, CFS] -type usb_device_descriptor_fixed_t[USB, CLASS, SUBCLASS, PROTOCOL, PACKET, VENDOR, PRODUCT, DEVICE, CFS] usb_device_descriptor_verbose_t[const[USB, int16], CLASS, SUBCLASS, PROTOCOL, const[PACKET, int8], VENDOR, PRODUCT, DEVICE, CFS] +type usb_device_descriptor_t[CLASS, SUBCLASS, PROTOCOL, VENDOR, PRODUCT, DEVICE, CFS] usb_device_descriptor_verbose_t[flags[usb_versions, int16], CLASS, SUBCLASS, PROTOCOL, flags[usb_device_max_packet_sizes, int8], const[VENDOR, int16], const[PRODUCT, int16], DEVICE, CFS] +type usb_device_descriptor_fixed_t[USB, CLASS, SUBCLASS, PROTOCOL, PACKET, VENDOR, PRODUCT, DEVICE, CFS] usb_device_descriptor_verbose_t[const[USB, int16], CLASS, SUBCLASS, PROTOCOL, const[PACKET, int8], const[VENDOR, int16], const[PRODUCT, int16], DEVICE, CFS] usb_versions = 0x110, 0x200, 0x201, 0x250, 0x300, 0x310 # https://elixir.bootlin.com/linux/v5.1.7/source/drivers/usb/core/hub.c#L4661 usb_device_max_packet_sizes = 8, 16, 32, 64, 255 -type usb_config_descriptor_verbose_t[NUM, IFSNUM, ICONFIG, ATTRS, POWER, IFS] { +type usb_config_descriptor_verbose_t[NUM, IFSNUM, ICONFIG, ATTRS, POWER, EXTRA, IFS] { bLength const[USB_DT_CONFIG_SIZE, int8] bDescriptorType const[USB_DT_CONFIG, int8] @@ -77,12 +80,14 @@ type usb_config_descriptor_verbose_t[NUM, IFSNUM, ICONFIG, ATTRS, POWER, IFS] { bmAttributes ATTRS bMaxPower POWER + extra EXTRA interfaces IFS } [packed] -type usb_config_descriptor_t[NUM, IFSNUM, IFS] usb_config_descriptor_verbose_t[NUM, IFSNUM, int8, flags[usb_config_attributes, int8], int8, IFS] +type usb_config_descriptor_t[NUM, IFSNUM, IFS] usb_config_descriptor_verbose_t[NUM, IFSNUM, int8, flags[usb_config_attributes, int8], int8, void, IFS] type usb_config_descriptor_ifaces_array_t[NUM, IFS] usb_config_descriptor_t[NUM, len[interfaces, int8], IFS] -type usb_config_descriptor_fixed_t[NUM, IFSNUM, ATTRS, POWER, IFS] usb_config_descriptor_verbose_t[const[NUM, int8], const[IFSNUM, int8], const[0, int8], const[ATTRS, int8], const[POWER, int8], IFS] +type usb_config_descriptor_fixed_t[NUM, IFSNUM, ATTRS, POWER, IFS] usb_config_descriptor_verbose_t[const[NUM, int8], const[IFSNUM, int8], const[0, int8], const[ATTRS, int8], const[POWER, int8], void, IFS] +type usb_config_descriptor_extra_t[NUM, IFSNUM, EXTRA, IFS] usb_config_descriptor_verbose_t[NUM, IFSNUM, int8, flags[usb_config_attributes, int8], int8, EXTRA, IFS] type usb_interface_descriptor_verbose_t[IFNUM, ALTNUM, EPSNUM, CLASS, SUBCLASS, PROTOCOL, IIF, EXTRA, EPS] { bLength const[USB_DT_INTERFACE_SIZE, int8] @@ -1071,6 +1076,11 @@ usb_config_descriptor_uac1 { # TODO: control interface might have and optional interrupt endpoint. usb_interface_descriptors_uac1 { + inner usb_interface_descriptors_uac1_inner +} [packed] + +# Define folded-in structure to match layout expected by USB ID patching code. +usb_interface_descriptors_uac1_inner { control usb_interface_descriptor_fixed_t[0, 0, 0, USB_CLASS_AUDIO, USB_SUBCLASS_AUDIOCONTROL, 0, uac_control_iface_extra_descriptors, void] as_out_alt_0 usb_interface_descriptor_fixed_t[1, 0, 0, USB_CLASS_AUDIO, USB_SUBCLASS_AUDIOSTREAMING, 0, void, void] as_out_alt_1 usb_interface_descriptor_fixed_t[1, 1, 1, USB_CLASS_AUDIO, USB_SUBCLASS_AUDIOSTREAMING, 0, uac_as_iface_extra_descriptors, uac_as_out_endpoint_descriptor] @@ -1085,12 +1095,22 @@ usb_interface_descriptors_uac1 { type uac_id int8[1:6] uac_control_iface_extra_descriptors { - header uac1_ac_header_descriptor_2 + header uac1_ac_header_descriptor others array[uac_control_iface_extra_descriptor, 0:6] } [packed] -uac_as_iface_extra_descriptors { - others array[uac_as_iface_extra_descriptor, 0:6] +uac1_ac_header_descriptor { + bLength const[UAC_DT_AC_HEADER_LENGTH, int8] + bDescriptorType const[USB_DT_CS_INTERFACE, int8] + bDescriptorSubType const[UAC_HEADER, int8] + + bcdADC int16 + wTotalLength len[uac_control_iface_extra_descriptors, int16] + bInCollection const[F_AUDIO_NUM_INTERFACES, int8] + +# These must match interfaces numbers. + baInterfaceNr0 const[1, int8] + baInterfaceNr1 const[2, int8] } [packed] uac_control_iface_extra_descriptor [ @@ -1103,30 +1123,9 @@ uac_control_iface_extra_descriptor [ extension_unit uac_extension_unit_descriptor ] [varlen] -uac_as_iface_extra_descriptor [ - as_header uac1_as_header_descriptor - format_type_i_continuous uac_format_type_i_continuous_descriptor - format_type_i_discrete uac_format_type_i_discrete_descriptor - format_type_ii_discrete uac_format_type_ii_discrete_descriptor -] [varlen] - define F_AUDIO_NUM_INTERFACES 2 define UAC_DT_AC_HEADER_LENGTH UAC_DT_AC_HEADER_SIZE(F_AUDIO_NUM_INTERFACES) -uac1_ac_header_descriptor_2 { - bLength const[UAC_DT_AC_HEADER_LENGTH, int8] - bDescriptorType const[USB_DT_CS_INTERFACE, int8] - bDescriptorSubType const[UAC_HEADER, int8] - - bcdADC int16 - wTotalLength int8 - bInCollection const[F_AUDIO_NUM_INTERFACES, int8] - -# These must match interfaces numbers. - baInterfaceNr0 const[1, int8] - baInterfaceNr1 const[2, int8] -} [packed] - uac_input_terminal_descriptor { bLength len[parent, int8] bDescriptorType const[USB_DT_CS_INTERFACE, int8] @@ -1141,7 +1140,15 @@ uac_input_terminal_descriptor { iTerminal int8 } [packed] -uac_input_terminal_types = UAC_TERMINAL_UNDEFINED, UAC_TERMINAL_STREAMING, UAC_TERMINAL_VENDOR_SPEC, UAC_INPUT_TERMINAL_UNDEFINED, UAC_INPUT_TERMINAL_MICROPHONE, UAC_INPUT_TERMINAL_DESKTOP_MICROPHONE, UAC_INPUT_TERMINAL_PERSONAL_MICROPHONE, UAC_INPUT_TERMINAL_OMNI_DIR_MICROPHONE, UAC_INPUT_TERMINAL_MICROPHONE_ARRAY, UAC_INPUT_TERMINAL_PROC_MICROPHONE_ARRAY +# The following list contains input terminal types and inout terminal types. +uac_input_terminal_types = UAC_TERMINAL_UNDEFINED, UAC_TERMINAL_STREAMING, UAC_TERMINAL_VENDOR_SPEC, UAC_INPUT_TERMINAL_UNDEFINED, UAC_INPUT_TERMINAL_MICROPHONE, UAC_INPUT_TERMINAL_DESKTOP_MICROPHONE, UAC_INPUT_TERMINAL_PERSONAL_MICROPHONE, UAC_INPUT_TERMINAL_OMNI_DIR_MICROPHONE, UAC_INPUT_TERMINAL_MICROPHONE_ARRAY, UAC_INPUT_TERMINAL_PROC_MICROPHONE_ARRAY, UAC_BIDIR_TERMINAL_UNDEFINED, UAC_BIDIR_TERMINAL_HANDSET, UAC_BIDIR_TERMINAL_HEADSET, UAC_BIDIR_TERMINAL_SPEAKER_PHONE, UAC_BIDIR_TERMINAL_ECHO_SUPPRESSING, UAC_BIDIR_TERMINAL_ECHO_CANCELING +# The following list contains output terminal types and inout terminal types. +uac_output_terminal_types = UAC_TERMINAL_UNDEFINED, UAC_TERMINAL_STREAMING, UAC_TERMINAL_VENDOR_SPEC, UAC_OUTPUT_TERMINAL_UNDEFINED, UAC_OUTPUT_TERMINAL_SPEAKER, UAC_OUTPUT_TERMINAL_HEADPHONES, UAC_OUTPUT_TERMINAL_HEAD_MOUNTED_DISPLAY_AUDIO, UAC_OUTPUT_TERMINAL_DESKTOP_SPEAKER, UAC_OUTPUT_TERMINAL_ROOM_SPEAKER, UAC_OUTPUT_TERMINAL_COMMUNICATION_SPEAKER, UAC_OUTPUT_TERMINAL_LOW_FREQ_EFFECTS_SPEAKER, UAC_BIDIR_TERMINAL_UNDEFINED, UAC_BIDIR_TERMINAL_HANDSET, UAC_BIDIR_TERMINAL_HEADSET, UAC_BIDIR_TERMINAL_SPEAKER_PHONE, UAC_BIDIR_TERMINAL_ECHO_SUPPRESSING, UAC_BIDIR_TERMINAL_ECHO_CANCELING + +# TODO: Support the following format in syzlang: +# uac_input_terminal_types = uac_inout_terminal_types, UAC_TERMINAL_UNDEFINED, UAC_TERMINAL_STREAMING, UAC_TERMINAL_VENDOR_SPEC, UAC_INPUT_TERMINAL_UNDEFINED, UAC_INPUT_TERMINAL_MICROPHONE, UAC_INPUT_TERMINAL_DESKTOP_MICROPHONE, UAC_INPUT_TERMINAL_PERSONAL_MICROPHONE, UAC_INPUT_TERMINAL_OMNI_DIR_MICROPHONE, UAC_INPUT_TERMINAL_MICROPHONE_ARRAY, UAC_INPUT_TERMINAL_PROC_MICROPHONE_ARRAY +# uac_output_terminal_types = uac_inout_terminal_types, UAC_TERMINAL_UNDEFINED, UAC_TERMINAL_STREAMING, UAC_TERMINAL_VENDOR_SPEC, UAC_OUTPUT_TERMINAL_UNDEFINED, UAC_OUTPUT_TERMINAL_SPEAKER, UAC_OUTPUT_TERMINAL_HEADPHONES, UAC_OUTPUT_TERMINAL_HEAD_MOUNTED_DISPLAY_AUDIO, UAC_OUTPUT_TERMINAL_DESKTOP_SPEAKER, UAC_OUTPUT_TERMINAL_ROOM_SPEAKER, UAC_OUTPUT_TERMINAL_COMMUNICATION_SPEAKER, UAC_OUTPUT_TERMINAL_LOW_FREQ_EFFECTS_SPEAKER +# uac_inout_terminal_types = UAC_BIDIR_TERMINAL_UNDEFINED, UAC_BIDIR_TERMINAL_HANDSET, UAC_BIDIR_TERMINAL_HEADSET, UAC_BIDIR_TERMINAL_SPEAKER_PHONE, UAC_BIDIR_TERMINAL_ECHO_SUPPRESSING, UAC_BIDIR_TERMINAL_ECHO_CANCELING uac1_output_terminal_descriptor { bLength len[parent, int8] @@ -1155,8 +1162,6 @@ uac1_output_terminal_descriptor { iTerminal int8 } [packed] -uac_output_terminal_types = UAC_TERMINAL_UNDEFINED, UAC_TERMINAL_STREAMING, UAC_TERMINAL_VENDOR_SPEC, UAC_OUTPUT_TERMINAL_UNDEFINED, UAC_OUTPUT_TERMINAL_SPEAKER, UAC_OUTPUT_TERMINAL_HEADPHONES, UAC_OUTPUT_TERMINAL_HEAD_MOUNTED_DISPLAY_AUDIO, UAC_OUTPUT_TERMINAL_DESKTOP_SPEAKER, UAC_OUTPUT_TERMINAL_ROOM_SPEAKER, UAC_OUTPUT_TERMINAL_COMMUNICATION_SPEAKER, UAC_OUTPUT_TERMINAL_LOW_FREQ_EFFECTS_SPEAKER - uac_mixer_unit_descriptor { bLength len[parent, int8] bDescriptorType const[USB_DT_CS_INTERFACE, int8] @@ -1215,6 +1220,21 @@ uac_extension_unit_descriptor { baSourceID array[int8, 0:6] } [packed] +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # + +uac_as_iface_extra_descriptors { + others array[uac_as_iface_extra_descriptor, 0:6] +} [packed] + +uac_as_iface_extra_descriptor [ + as_header uac1_as_header_descriptor + format_type_i_continuous uac_format_type_i_continuous_descriptor + format_type_i_discrete uac_format_type_i_discrete_descriptor + format_type_ii_discrete uac_format_type_ii_discrete_descriptor + format_type_ii_ext uac_format_type_ii_ext_descriptor + format_type_i_ext uac_format_type_i_ext_descriptor +] [varlen] + uac1_as_header_descriptor { bLength len[parent, int8] bDescriptorType const[USB_DT_CS_INTERFACE, int8] @@ -1222,10 +1242,11 @@ uac1_as_header_descriptor { bTerminalLink int8 bDelay int8 - wFormatTag flags[uac_format_types, int16] + wFormatTag flags[uac_format_tags, int16] } [packed] -uac_format_types = UAC_FORMAT_TYPE_I_UNDEFINED, UAC_FORMAT_TYPE_I_PCM, UAC_FORMAT_TYPE_I_PCM8, UAC_FORMAT_TYPE_I_IEEE_FLOAT, UAC_FORMAT_TYPE_I_ALAW, UAC_FORMAT_TYPE_I_MULAW, UAC_FORMAT_TYPE_II_MPEG, UAC_FORMAT_TYPE_II_AC3 +uac_format_tags = UAC_FORMAT_TYPE_I_UNDEFINED, UAC_FORMAT_TYPE_I_PCM, UAC_FORMAT_TYPE_I_PCM8, UAC_FORMAT_TYPE_I_IEEE_FLOAT, UAC_FORMAT_TYPE_I_ALAW, UAC_FORMAT_TYPE_I_MULAW, UAC_FORMAT_TYPE_II_MPEG, UAC_FORMAT_TYPE_II_AC3 +uac_usb_format_types_i = UAC_FORMAT_TYPE_I, UAC_FORMAT_TYPE_II, UAC_FORMAT_TYPE_III, UAC_FORMAT_TYPE_UNDEFINED uac_format_type_i_continuous_descriptor { bLength len[parent, int8] @@ -1247,6 +1268,7 @@ uac_format_type_i_discrete_descriptor { bDescriptorSubType const[UAC_FORMAT_TYPE, int8] bFormatType const[UAC_FORMAT_TYPE_I, int8] +#flags[uac_usb_format_types_i, int8] bNrChannels int8 bSubframeSize int8[1:4] bBitResolution int8 @@ -1260,6 +1282,7 @@ uac_format_type_ii_discrete_descriptor { bDescriptorSubType const[UAC_FORMAT_TYPE, int8] bFormatType const[UAC_FORMAT_TYPE_II, int8] +#flags[uac_usb_format_types_i, int8] wMaxBitRate int16 wSamplesPerFrame int16 bSamFreqType int8 @@ -1280,6 +1303,8 @@ define USB_ENDPOINT_UAC1_AS_OUT_ADDRESS (1 | USB_DIR_OUT) define USB_ENDPOINT_UAC1_AS_IN_ADDRESS (2 | USB_DIR_IN) define USB_ENDPOINT_UAC1_AS_ATTRIBUTES (USB_ENDPOINT_SYNC_ADAPTIVE | USB_ENDPOINT_XFER_ISOC) +uac_iso_ep_attributes = USB_ENDPOINT_SYNCTYPE, USB_ENDPOINT_SYNC_NONE, USB_ENDPOINT_SYNC_ASYNC, USB_ENDPOINT_SYNC_ADAPTIVE, USB_ENDPOINT_SYNC_SYNC + uac_iso_endpoint_descriptor { bLength len[parent, int8] bDescriptorType const[USB_DT_CS_ENDPOINT, int8] @@ -1290,8 +1315,6 @@ uac_iso_endpoint_descriptor { wLockDelay int16 } [packed] -uac_iso_ep_attributes = UAC_EP_CS_ATTR_SAMPLE_RATE, UAC_EP_CS_ATTR_PITCH_CONTROL, UAC_EP_CS_ATTR_FILL_MAX - # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # vusb_descriptors_uac1 { @@ -1319,11 +1342,691 @@ vusb_responses_uac1 { # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # -# TODO: describe MIDI, UAC2, UAC3 +# UAC2 device class specific descriptions. +# https://www.usb.org/sites/default/files/audio10.pdf +# https://elixir.bootlin.com/linux/latest/source/drivers/usb/gadget/legacy/audio.c +# https://elixir.bootlin.com/linux/latest/source/drivers/usb/gadget/function/f_uac2.c +# https://elixir.bootlin.com/linux/latest/source/include/uapi/linux/usb/audio.h + +resource fd_usb_uac2[fd_usb] + +syz_usb_connect$uac2(speed flags[usb_device_speed], dev_len len[dev], dev ptr[in, usb_device_descriptor_uac2], conn_descs ptr[in, vusb_connect_descriptors]) fd_usb_uac2 (timeout[3000], prog_timeout[3000], remote_cover) +syz_usb_control_io$uac2(fd fd_usb_uac2, descs ptr[in, vusb_descriptors_uac1], resps ptr[in, vusb_responses_uac1]) (timeout[300], remote_cover) + +usb_device_descriptor_uac2 { + inner usb_device_descriptor_t[0, 0, 0, 0x41e, 0x3000, 64, array[usb_config_descriptor_uac2, 1]] +} [packed] + +usb_config_descriptor_uac2 { + inner usb_config_descriptor_extra_t[const[1, int8], const[3, int8], uac2_interface_assoc_descriptor, usb_interface_descriptors_uac2] +} [packed] + +uac2_interface_assoc_descriptor { + bLength len[parent, int8] + bDescriptorType const[USB_DT_INTERFACE_ASSOCIATION, int8] + + bFirstInterface int8[0:2] + bInterfaceCount int8[0:2] + bFunctionClass const[USB_CLASS_AUDIO, int8] + bFunctionSubClass flags[audio_function_category_types, int8] + bFunctionProtocol const[UAC_VERSION_2, int8] + iFunction int8 +} [packed] + +audio_function_category_types = UAC2_FUNCTION_SUBCLASS_UNDEFINED, UAC2_FUNCTION_DESKTOP_SPEAKER, UAC2_FUNCTION_HOME_THEATER, UAC2_FUNCTION_MICROPHONE, UAC2_FUNCTION_HEADSET, UAC2_FUNCTION_TELEPHONE, UAC2_FUNCTION_CONVERTER, UAC2_FUNCTION_SOUND_RECORDER, UAC2_FUNCTION_IO_BOX, UAC2_FUNCTION_MUSICAL_INSTRUMENT, UAC2_FUNCTION_PRO_AUDIO, UAC2_FUNCTION_AUDIO_VIDEO, UAC2_FUNCTION_CONTROL_PANEL, UAC2_FUNCTION_OTHER + +usb_interface_descriptors_uac2 { + inner usb_interface_descriptors_uac2_inner +} [packed] + +# Define folded-in structure to match layout expected by USB ID patching code. +usb_interface_descriptors_uac2_inner { + control usb_interface_descriptor_fixed_t[0, 0, 0, USB_CLASS_AUDIO, USB_SUBCLASS_AUDIOCONTROL, UAC_VERSION_2, uac2_control_iface_extra_descriptors, void] + as_out_alt_0 usb_interface_descriptor_fixed_t[1, 0, 0, USB_CLASS_AUDIO, USB_SUBCLASS_AUDIOSTREAMING, UAC_VERSION_2, void, void] + as_out_alt_1 usb_interface_descriptor_fixed_t[1, 1, 1, USB_CLASS_AUDIO, USB_SUBCLASS_AUDIOSTREAMING, UAC_VERSION_2, uac2_as_iface_extra_descriptors, uac2_as_out_endpoint_descriptor] + as_in_alt_0 usb_interface_descriptor_fixed_t[2, 0, 0, USB_CLASS_AUDIO, USB_SUBCLASS_AUDIOSTREAMING, UAC_VERSION_2, void, void] + as_in_alt_1 usb_interface_descriptor_fixed_t[2, 1, 1, USB_CLASS_AUDIO, USB_SUBCLASS_AUDIOSTREAMING, UAC_VERSION_2, uac2_as_iface_extra_descriptors, uac2_as_in_endpoint_descriptor] +} [packed] + +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # + +uac2_control_iface_extra_descriptors { + header uac2_ac_header_descriptor + others array[uac2_control_iface_extra_descriptor, 0:6] +} [packed] + +uac2_ac_header_descriptor { + bLength len[parent, int8] + bDescriptorType const[USB_DT_CS_INTERFACE, int8] + bDescriptorSubType const[UAC_MS_HEADER, int8] + bcdADC int16 + bCategory flags[uac2_feature_unit_controls, int8] + wTotalLength len[uac2_control_iface_extra_descriptors, int16] + bmControls int8 +} [packed] + +uac2_feature_unit_controls = UAC2_FUNCTION_SUBCLASS_UNDEFINED, UAC2_FUNCTION_DESKTOP_SPEAKER, UAC2_FUNCTION_HOME_THEATER, UAC2_FUNCTION_MICROPHONE, UAC2_FUNCTION_HEADSET, UAC2_FUNCTION_TELEPHONE, UAC2_FUNCTION_CONVERTER, UAC2_FUNCTION_SOUND_RECORDER, UAC2_FUNCTION_IO_BOX, UAC2_FUNCTION_MUSICAL_INSTRUMENT, UAC2_FUNCTION_PRO_AUDIO, UAC2_FUNCTION_AUDIO_VIDEO, UAC2_FUNCTION_CONTROL_PANEL, UAC2_FUNCTION_OTHER, uac_feature_unit_controls + +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # + +uac2_as_iface_extra_descriptors { + others array[uac2_as_iface_extra_descriptor, 0:6] +} [packed] + +uac2_as_iface_extra_descriptor [ + as_header uac2_as_header_descriptor + format_type_i_descriptor uac2_format_type_i_descriptor + format_type_i_continuous uac_format_type_i_continuous_descriptor + format_type_i_discrete uac_format_type_i_discrete_descriptor + format_type_ii_discrete uac_format_type_ii_discrete_descriptor + format_type_i_ext uac2_format_type_i_ext_descriptor + format_type_ii_ext uac_format_type_ii_ext_descriptor +] [varlen] + +uac2_as_header_descriptor { + bLength len[parent, int8] + bDescriptorType const[USB_DT_CS_INTERFACE, int8] + bDescriptorSubType const[UAC_AS_GENERAL, int8] + bTerminalLink int8 + bmControls int8 + bFormatType flags[uac_usb_format_types_i, int8] + bmFormats flags[uac_format_tags, int32] + bNrChannels int8 + bmChannelConfig int32 + iChannelNames int8 +} [packed] + +b_sub_slot_sizes = 1, 2, 3, 4 + +uac2_format_type_i_descriptor { + bLength len[parent, int8] + bDescriptorType const[USB_DT_CS_INTERFACE, int8] + bDescriptorSubType const[UAC_FORMAT_TYPE, int8] + bFormatType const[UAC_FORMAT_TYPE_I, int8] + bSubslotSize flags[b_sub_slot_sizes, int8] + bBitResolution int8 +} [packed] + +uac2_format_type_i_ext_descriptor { + bLength len[parent, int8] + bDescriptorType const[USB_DT_CS_INTERFACE, int8] + bDescriptorSubType const[UAC_FORMAT_TYPE, int8] + + bFormatType const[UAC_FORMAT_TYPE_I, int8] +#flags[uac_usb_format_types_i, int8] + bSubslotSize int8 + bBitResolution int8 + bHeaderLength int8 + bControlSize int8 + bSideBandProtocol int8 +} [packed] + +uac_format_type_ii_ext_descriptor { + bLength len[parent, int8] + bDescriptorType const[USB_DT_CS_INTERFACE, int8] + bDescriptorSubType const[UAC_FORMAT_TYPE, int8] + bFormatType const[UAC_FORMAT_TYPE_II, int8] +#flags[uac_usb_format_types_i, int8] + wMaxBitRate int16 + wSamplesPerFrame int16 + bHeaderLength int8 + bSideBandProtocol int8 +} [packed] + +uac_format_type_i_ext_descriptor { + bLength len[parent, int8] + bDescriptorType const[USB_DT_CS_INTERFACE, int8] + bDescriptorSubType const[UAC_FORMAT_TYPE, int8] + bFormatType const[UAC_FORMAT_TYPE_I, int8] +#flags[uac_usb_format_types_i, int8] + bSubslotSize int8 + bBitResolution int8 + bHeaderLength int8 + bControlSize int8 + bSideBandProtocol int8 +} [packed] + +uac2_as_out_endpoint_descriptor { + inner usb_endpoint_descriptor_t[const[USB_ENDPOINT_UAC1_AS_OUT_ADDRESS, int8], const[USB_ENDPOINT_UAC1_AS_ATTRIBUTES, int8], uac2_iso_endpoint_descriptor] +} [packed] + +uac2_as_in_endpoint_descriptor { + inner usb_endpoint_descriptor_t[const[USB_ENDPOINT_UAC1_AS_IN_ADDRESS, int8], const[USB_ENDPOINT_UAC1_AS_ATTRIBUTES, int8], uac2_iso_endpoint_descriptor] +} [packed] + +uac2_iso_endpoint_descriptor { + bLength len[parent, int8] + bDescriptorType const[USB_DT_CS_ENDPOINT, int8] + bDescriptorSubtype const[UAC_EP_GENERAL, int8] + + bmAttributes flags[csep_bm_attributes, int8] + bmControls flags[csep_bm_controls, int8] + bLockDelayUnits int8 + wLockDelay int16 +} [packed] + +csep_bm_attributes = UAC_EP_CS_ATTR_SAMPLE_RATE, UAC_EP_CS_ATTR_PITCH_CONTROL, UAC_EP_CS_ATTR_FILL_MAX +csep_bm_controls = UAC2_CONTROL_PITCH, UAC2_CONTROL_DATA_OVERRUN, UAC2_CONTROL_DATA_UNDERRUN + +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # + +uac2_control_iface_extra_descriptor [ + input_terminal uac2_input_terminal_descriptor + output_terminal uac2_output_terminal_descriptor + mixer_unit uac2_mixer_unit_descriptor + selector_unit uac2_clock_selector_descriptor + + feature_unit uac2_feature_unit_descriptor + processing_unit uac2_processing_unit_descriptor + extension_unit uac2_extension_unit_descriptor + + effect_unit uac2_effect_unit_descriptor + sample_rate uac2_sample_rate_descriptor + source_unit uac2_clock_source_descriptor + multiply_unit uac2_clock_multiplier_descriptor +] [varlen] + +uac2_input_terminal_descriptor { + bLength len[parent, int8] + bDescriptorType const[USB_DT_CS_INTERFACE, int8] + bDescriptorSubtype const[UAC_INPUT_TERMINAL, int8] + + bTerminalID uac_id + wTerminalType flags[uac_input_terminal_types, int16] + bAssocTerminal uac_id + bCSourceID int8 + bNrChannels int8 + bmChannelConfig int32 + iChannelNames int8 + bmControls int8 + iTerminal int8 +} [packed] + +uac2_output_terminal_descriptor { + bLength len[parent, int8] + bDescriptorType const[USB_DT_CS_INTERFACE, int8] + bDescriptorSubtype const[UAC_OUTPUT_TERMINAL, int8] + bTerminalID uac_id + wTerminalType flags[uac_output_terminal_types, int16] + bAssocTerminal int8 + bSourceID uac_id + bCSourceID int8 + bmControls int16 + iTerminal int8 +} [packed] + +uac2_mixer_unit_descriptor { + bLength len[parent, int8] + bDescriptorType const[USB_DT_CS_INTERFACE, int8] + bDescriptorSubType const[UAC_MIXER_UNIT, int8] + + bUnitID uac_id + bNrInPins int8 + baSourceID array[int8, 0:6] +} [packed] + +# TODO: Figure out if bmControls and iClockSelector should be a part of this structure. +uac2_clock_selector_descriptor { + bLength len[parent, int8] + bDescriptorType const[USB_DT_CS_INTERFACE, int8] + bDescriptorSubType const[UAC2_CLOCK_SELECTOR, int8] + bClockID int8 + bNrInPins len[baCSourceID, int8] + baCSourceID array[int8, 0:8] +} [packed] + +# TODO: Verify coverage. +uac2_processing_unit_descriptor { + bLength len[parent, int8] + bDescriptorType const[USB_DT_CS_INTERFACE, int8] + bDescriptorSubtype const[UAC2_PROCESSING_UNIT_V2, int8] + bUnitID uac_id + bSourceID uac_id + bmaControls array[flags[uac2_processing_unit_types, int16], 1:6] +} [packed] + +uac2_processing_unit_types = UAC2_PROCESS_UNDEFINED, UAC2_PROCESS_UP_DOWNMIX, UAC2_PROCESS_DOLBY_PROLOCIC, UAC2_PROCESS_STEREO_EXTENDER + +uac2_extension_unit_descriptor { + bLength len[parent, int8] + bDescriptorType const[USB_DT_CS_INTERFACE, int8] + bDescriptorSubType const[UAC2_EXTENSION_UNIT_V2, int8] + + bUnitID uac_id + wProcessType int16 + bNrInPins int8 + baSourceID array[int8, 0:6] +} [packed] + +# TODO: Verify coverage. +uac2_effect_unit_descriptor { + bLength len[parent, int8] + bDescriptorType const[USB_DT_CS_INTERFACE, int8] + bDescriptorSubtype const[UAC2_EFFECT_UNIT, int8] + bUnitID uac_id + wEffectType flags[uac2_effect_unit_types, int16] + bSourceID uac_id + bmaControls array[flags[uac2_processing_unit_types, int16], 1:6] +} [packed] + +uac2_effect_unit_types = UAC2_EFFECT_UNDEFINED, UAC2_EFFECT_PARAM_EQ, UAC2_EFFECT_REVERB, UAC2_EFFECT_MOD_DELAY, UAC2_EFFECT_DYN_RANGE_COMP + +uac2_sample_rate_descriptor { + bLength len[parent, int8] + bDescriptorType const[USB_DT_CS_INTERFACE, int8] + bDescriptorSubtype const[UAC2_SAMPLE_RATE_CONVERTER, int8] + bUnitID uac_id + wProcessType flags[uac2_processing_unit_types, int16] + bSourceID uac_id + bmaControls array[flags[uac2_processing_unit_types, int16], 1:6] +} [packed] + +uac2_feature_unit_descriptor { + bLength len[parent, int8] + bDescriptorType const[USB_DT_CS_INTERFACE, int8] + bDescriptorSubtype const[UAC_FEATURE_UNIT, int8] + bUnitID uac_id + bSourceID uac_id + bmaControls array[flags[uac2_feature_unit_controls, int16], 1:6] +} [packed] + +uac2_clock_source_descriptor { + bLength len[parent, int8] + bDescriptorType const[USB_DT_CS_INTERFACE, int8] + bDescriptorSubType const[UAC2_CLOCK_SOURCE, int8] + bClockID int8 + bmAttributes flags[uac2_clock_bmattribute_types, int8] + bmControls int8 + bAssocTerminal int8 + iClockSource flags[uac2_clock_source_types, int8] +} [packed] + +uac2_clock_bmattribute_types = UAC_CLOCK_SOURCE_TYPE_EXT, UAC_CLOCK_SOURCE_TYPE_INT_FIXED, UAC_CLOCK_SOURCE_TYPE_INT_VAR, UAC_CLOCK_SOURCE_TYPE_INT_PROG, UAC_CLOCK_SOURCE_SYNCED_TO_SOF +uac2_clock_source_types = UAC_CLOCK_SOURCE_TYPE_EXT, UAC_CLOCK_SOURCE_TYPE_INT_FIXED, UAC_CLOCK_SOURCE_TYPE_INT_VAR, UAC_CLOCK_SOURCE_TYPE_INT_PROG, UAC_CLOCK_SOURCE_SYNCED_TO_SOF + +uac2_clock_multiplier_descriptor { + bLength len[parent, int8] + bDescriptorType const[USB_DT_CS_INTERFACE, int8] + bDescriptorSubType const[UAC2_CLOCK_MULTIPLIER, int8] + bClockID int8 + bCSourceID int8 + bmControls int8 + iClockMultiplier int8 +} [packed] + +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # + +# UAC3 device class specific descriptions. +# https://www.usb.org/sites/default/files/audio10.pdf +# https://elixir.bootlin.com/linux/latest/source/drivers/usb/gadget/legacy/audio.c +# https://elixir.bootlin.com/linux/latest/source/drivers/usb/gadget/function/f_uac3.c +# https://elixir.bootlin.com/linux/latest/source/include/uapi/linux/usb/audio.h + +resource fd_usb_uac3[fd_usb] + +syz_usb_connect$uac3(speed flags[usb_device_speed], dev_len len[dev], dev ptr[in, usb_device_descriptor_uac3], conn_descs ptr[in, vusb_connect_descriptors]) fd_usb_uac3 (timeout[3000], prog_timeout[3000], remote_cover) +syz_usb_control_io$uac3(fd fd_usb_uac3, descs ptr[in, vusb_descriptors_uac1], resps ptr[in, vusb_responses_uac1]) (timeout[300], remote_cover) + +usb_device_descriptor_uac3 { + inner usb_device_descriptor_t[0, 0, 0, 0x582, 0x582, 64, array[usb_config_descriptor_uac3, 1]] +} [packed] + +usb_config_descriptor_uac3 { + inner usb_config_descriptor_extra_t[const[1, int8], const[3, int8], uac3_interface_assoc_descriptor, usb_interface_descriptors_uac3] +} [packed] + +uac3_interface_assoc_descriptor { + bLength len[parent, int8] + bDescriptorType const[USB_DT_INTERFACE_ASSOCIATION, int8] + + bFirstInterface int8[0:2] + bInterfaceCount int8[0:2] + bFunctionClass const[USB_CLASS_AUDIO, int8] + bFunctionSubClass flags[uac3_all_subclasses, int8] + bFunctionProtocol const[UAC_VERSION_3, int8] + iFunction int8 +} [packed] + +usb_interface_descriptors_uac3 { + inner usb_interface_descriptors_uac3_inner +} [packed] + +# Define folded-in structure to match layout expected by USB ID patching code. +usb_interface_descriptors_uac3_inner { + control usb_interface_descriptor_fixed_t[0, 0, 0, USB_CLASS_AUDIO, USB_SUBCLASS_AUDIOCONTROL, UAC_VERSION_3, uac3_control_iface_extra_descriptors, void] + as_out_alt_0 usb_interface_descriptor_fixed_t[1, 0, 0, USB_CLASS_AUDIO, USB_SUBCLASS_AUDIOSTREAMING, UAC_VERSION_3, void, void] + as_out_alt_1 usb_interface_descriptor_fixed_t[1, 1, 1, USB_CLASS_AUDIO, USB_SUBCLASS_AUDIOSTREAMING, UAC_VERSION_3, uac3_as_iface_extra_descriptors, uac3_as_out_endpoint_descriptor] + as_in_alt_0 usb_interface_descriptor_fixed_t[2, 0, 0, USB_CLASS_AUDIO, USB_SUBCLASS_AUDIOSTREAMING, UAC_VERSION_3, void, void] + as_in_alt_1 usb_interface_descriptor_fixed_t[2, 1, 1, USB_CLASS_AUDIO, USB_SUBCLASS_AUDIOSTREAMING, UAC_VERSION_3, uac3_as_iface_extra_descriptors, uac3_as_in_endpoint_descriptor] +} [packed] + +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # + +uac3_control_iface_extra_descriptors { + header uac3_ac_header_descriptor + others array[uac3_control_iface_extra_descriptor, 0:6] +} [packed] + +uac3_ac_header_descriptor { + bLength len[parent, int8] + bDescriptorType const[USB_DT_CS_INTERFACE, int8] + bDescriptorSubType const[UAC_MS_HEADER, int8] + + bCategory flags[uac3_feature_unit_controls, int8] + wTotalLength len[uac3_control_iface_extra_descriptors, int16] + bmControls int32 +} [packed] + +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # + +uac3_as_iface_extra_descriptors { + others array[uac3_as_iface_extra_descriptor, 0:6] +} [packed] + +uac3_as_iface_extra_descriptor [ + as_header uac3_as_header_descriptor + format_type_i_descriptor uac2_format_type_i_descriptor + format_type_i_continuous uac_format_type_i_continuous_descriptor + format_type_i_discrete uac_format_type_i_discrete_descriptor + format_type_ii_discrete uac_format_type_ii_discrete_descriptor + format_type_i_ext uac2_format_type_i_ext_descriptor + format_type_ii_ext uac_format_type_ii_ext_descriptor +] [varlen] + +# TODO: Figure out how wClusterDescrID is used in the kernel. +uac3_as_header_descriptor { + bLength len[parent, int8] + bDescriptorType const[USB_DT_CS_INTERFACE, int8] + bDescriptorSubType const[UAC_AS_GENERAL, int8] + bTerminalLink int8 + + bmControls int32 + wClusterDescrID int16 + + bmFormats flags[uac_format_tags, int64] + + bSubslotSize int8 + bBitResolution int8 + bmAuxProtocols int16 + bControlSize int8 +} [packed] + +uac3_as_out_endpoint_descriptor { + inner usb_endpoint_descriptor_t[const[USB_ENDPOINT_UAC1_AS_OUT_ADDRESS, int8], const[USB_ENDPOINT_UAC1_AS_ATTRIBUTES, int8], uac3_iso_endpoint_descriptor] +} [packed] + +uac3_as_in_endpoint_descriptor { + inner usb_endpoint_descriptor_t[const[USB_ENDPOINT_UAC1_AS_IN_ADDRESS, int8], const[USB_ENDPOINT_UAC1_AS_ATTRIBUTES, int8], uac3_iso_endpoint_descriptor] +} [packed] + +uac3_iso_endpoint_descriptor { + bLength len[parent, int8] + bDescriptorType const[USB_DT_CS_ENDPOINT, int8] + bDescriptorSubType const[UAC3_CS_ENDPOINT, int8] + bmControls int32 + bLockDelayUnits int8 + wLockDelay int16 +} [packed] + +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # + +uac3_control_iface_extra_descriptor [ + input_terminal uac3_input_terminal_descriptor + output_terminal uac3_output_terminal_descriptor + mixer_unit uac3_mixer_unit_descriptor + selector_unit uac3_clock_selector_descriptor + source_unit uac3_clock_source_descriptor + multiply_unit uac3_clock_multiplier_descriptor + feature_unit uac3_feature_unit_descriptor + processing_unit uac3_processing_unit_descriptor + extension_unit uac3_extension_unit_descriptor + power_domain uac3_power_domain_descriptor + cluster_info_segment uac3_cluster_information_segment_descriptor +# Only cluster information segment is currently used in the kernel.See: sound/usb/stream.c +# cluster_segment uac3_cluster_segment_descriptor +# cluster_end_segment uac3_cluster_end_segment_descriptor +# The following units are not yet supported by the kernel. +# See audio_validators[] in sound/usb/validate.c: +# effect_unit uac3_effect_unit_descriptor +# sample_rate uac3_sample_rate_descriptor +# connectors_unit uac3_connectors_unit_descriptor +# extended_term_unit uac3_extended_terminal_unit +] [varlen] + +uac3_input_terminal_descriptor { + bLength len[parent, int8] + bDescriptorType const[USB_DT_CS_INTERFACE, int8] + bDescriptorSubtype const[UAC_INPUT_TERMINAL, int8] + + bTerminalID uac_id + wTerminalType flags[uac_input_terminal_types, int16] + bAssocTerminal uac_id + bCSourceID int8 + + bmControls int32 + wClusterDescrID int16 + wExTerminalDescrID int16 + wConnectorsDescrID int16 + wTerminalDescrStr int16 +} [packed] + +uac3_output_terminal_descriptor { + bLength len[parent, int8] + bDescriptorType const[USB_DT_CS_INTERFACE, int8] + bDescriptorSubtype const[UAC_OUTPUT_TERMINAL, int8] + + bTerminalID uac_id + wTerminalType flags[uac_output_terminal_types, int16] + bAssocTerminal uac_id + bSourceID uac_id + bCSourceID int8 + + bmControls int32 + wExTerminalDescrID int16 + wConnectorsDescrID int16 + wTerminalDescrStr int16 +} [packed] + +uac3_mixer_unit_descriptor { + bLength len[parent, int8] + bDescriptorType const[USB_DT_CS_INTERFACE, int8] + bDescriptorSubType const[UAC3_MIXER_UNIT, int8] + + bUnitID uac_id + bNrInPins int8 + baSourceID array[int8, 0:6] +} [packed] + +uac3_clock_selector_descriptor { + bLength len[parent, int8] + bDescriptorType const[USB_DT_CS_INTERFACE, int8] + bDescriptorSubType const[UAC3_CLOCK_SELECTOR, int8] + bClockID int8 + bNrInPins len[baCSourceID, int8] + baCSourceID array[int8, 0:8] +} [packed] + +uac3_clock_source_descriptor { + bLength len[parent, int8] + bDescriptorType const[USB_DT_CS_INTERFACE, int8] + bDescriptorSubType const[UAC3_CLOCK_SOURCE, int8] + bClockID int8 + bmAttributes flags[uac3_clock_bmattribute_types, int8] + bmControls int32 + bReferenceTerminal int8 + wClockSourceStr int16 +} [packed] + +uac3_clock_bmattribute_types = UAC3_CLOCK_SOURCE_TYPE_EXT, UAC3_CLOCK_SOURCE_TYPE_INT, UAC3_CLOCK_SOURCE_ASYNC, UAC3_CLOCK_SOURCE_SYNCED_TO_SOF + +uac3_clock_multiplier_descriptor { + bLength len[parent, int8] + bDescriptorType const[USB_DT_CS_INTERFACE, int8] + bDescriptorSubType const[UAC3_CLOCK_MULTIPLIER, int8] + bClockID int8 + bCSourceID int8 + bmControls int32 + wCMultiplierDescrStr int16 +} [packed] + +uac3_feature_unit_descriptor { + bLength len[parent, int8] + bDescriptorType const[USB_DT_CS_INTERFACE, int8] + bDescriptorSubtype const[UAC3_FEATURE_UNIT, int8] + bUnitID uac_id + bSourceID uac_id + bmaControls array[flags[uac3_feature_unit_controls, int32], 1:6] +} [packed] + +uac3_processing_unit_descriptor { + bLength len[parent, int8] + bDescriptorType const[USB_DT_CS_INTERFACE, int8] + bDescriptorSubtype const[UAC3_PROCESSING_UNIT, int8] + bUnitID uac_id + bSourceID uac_id + bmaControls array[flags[uac3_processing_unit_types, int32], 1:6] +} [packed] + +uac3_processing_unit_types = UAC3_PROCESS_UNDEFINED, UAC3_PROCESS_UP_DOWNMIX, UAC3_PROCESS_STEREO_EXTENDER, UAC3_PROCESS_MULTI_FUNCTION + +uac3_extension_unit_descriptor { + bLength len[parent, int8] + bDescriptorType const[USB_DT_CS_INTERFACE, int8] + bDescriptorSubtype const[UAC3_EXTENSION_UNIT, int8] + bUnitID uac_id + bSourceID uac_id + bmaControls array[flags[uac3_processing_unit_types, int32], 1:6] +} [packed] + +uac3_power_domain_descriptor { + bLength len[parent, int8] + bDescriptorType const[USB_DT_CS_INTERFACE, int8] + bDescriptorSubType const[UAC3_POWER_DOMAIN, int8] + + bPowerDomainID int8 + waRecoveryTime1 int16 + waRecoveryTime2 int16 + bNrEntities int8 + baEntityID array[int8, 0:8] +} [packed] + +uac3_cluster_information_segment_descriptor { + bLength len[parent, int16] + bSegmentType const[UAC3_CHANNEL_INFORMATION, int8] + bChPurpose flags[uac3_cluster_channel_purposes, int8] + bChRelationship flags[uac3_cluster_channel_relationships, int8] + bChGroupID int8 +} [packed] + +uac3_cluster_channel_purposes = UAC3_PURPOSE_UNDEFINED, UAC3_PURPOSE_GENERIC_AUDIO, UAC3_PURPOSE_VOICE, UAC3_PURPOSE_SPEECH, UAC3_PURPOSE_AMBIENT, UAC3_PURPOSE_REFERENCE, UAC3_PURPOSE_ULTRASONIC, UAC3_PURPOSE_VIBROKINETIC, UAC3_PURPOSE_NON_AUDIO +uac3_cluster_channel_relationships = UAC3_CH_RELATIONSHIP_UNDEFINED, UAC3_CH_MONO, UAC3_CH_LEFT, UAC3_CH_RIGHT, UAC3_CH_ARRAY, UAC3_CH_PATTERN_X, UAC3_CH_PATTERN_Y, UAC3_CH_PATTERN_A, UAC3_CH_PATTERN_B, UAC3_CH_PATTERN_M, UAC3_CH_PATTERN_S, UAC3_CH_FRONT_LEFT, UAC3_CH_FRONT_RIGHT, UAC3_CH_FRONT_CENTER, UAC3_CH_FRONT_LEFT_OF_CENTER, UAC3_CH_FRONT_RIGHT_OF_CENTER, UAC3_CH_FRONT_WIDE_LEFT, UAC3_CH_FRONT_WIDE_RIGHT, UAC3_CH_SIDE_LEFT, UAC3_CH_SIDE_RIGHT, UAC3_CH_SURROUND_ARRAY_LEFT, UAC3_CH_SURROUND_ARRAY_RIGHT, UAC3_CH_BACK_LEFT, UAC3_CH_BACK_RIGHT, UAC3_CH_BACK_CENTER, UAC3_CH_BACK_LEFT_OF_CENTER, UAC3_CH_BACK_RIGHT_OF_CENTER, UAC3_CH_BACK_WIDE_LEFT, UAC3_CH_BACK_WIDE_RIGHT, UAC3_CH_TOP_CENTER, UAC3_CH_TOP_FRONT_LEFT, UAC3_CH_TOP_FRONT_RIGHT, UAC3_CH_TOP_FRONT_CENTER, UAC3_CH_TOP_FRONT_LOC, UAC3_CH_TOP_FRONT_ROC, UAC3_CH_TOP_FRONT_WIDE_LEFT, UAC3_CH_TOP_FRONT_WIDE_RIGHT, UAC3_CH_TOP_SIDE_LEFT, UAC3_CH_TOP_SIDE_RIGHT, UAC3_CH_TOP_SURR_ARRAY_LEFT, UAC3_CH_TOP_SURR_ARRAY_RIGHT, UAC3_CH_TOP_BACK_LEFT, UAC3_CH_TOP_BACK_RIGHT, UAC3_CH_TOP_BACK_CENTER, UAC3_CH_TOP_BACK_LOC, UAC3_CH_TOP_BACK_ROC, UAC3_CH_TOP_BACK_WIDE_LEFT, UAC3_CH_TOP_BACK_WIDE_RIGHT, UAC3_CH_BOTTOM_CENTER, UAC3_CH_BOTTOM_FRONT_LEFT, UAC3_CH_BOTTOM_FRONT_RIGHT, UAC3_CH_BOTTOM_FRONT_CENTER, UAC3_CH_BOTTOM_FRONT_LOC, UAC3_CH_BOTTOM_FRONT_ROC, UAC3_CH_BOTTOM_FRONT_WIDE_LEFT, UAC3_CH_BOTTOM_FRONT_WIDE_RIGHT, UAC3_CH_BOTTOM_SIDE_LEFT, UAC3_CH_BOTTOM_SIDE_RIGHT, UAC3_CH_BOTTOM_SURR_ARRAY_LEFT, UAC3_CH_BOTTOM_SURR_ARRAY_RIGHT, UAC3_CH_BOTTOM_BACK_LEFT, UAC3_CH_BOTTOM_BACK_RIGHT, UAC3_CH_BOTTOM_BACK_CENTER, UAC3_CH_BOTTOM_BACK_LOC, UAC3_CH_BOTTOM_BACK_ROC, UAC3_CH_BOTTOM_BACK_WIDE_LEFT, UAC3_CH_BOTTOM_BACK_WIDE_RIGHT, UAC3_CH_LOW_FREQUENCY_EFFECTS, UAC3_CH_LFE_LEFT, UAC3_CH_LFE_RIGHT, UAC3_CH_HEADPHONE_LEFT, UAC3_CH_HEADPHONE_RIGHT + +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # + +# This list consists of uac3_func_subclasses + uac3_badd_classes. +uac3_all_subclasses = UAC3_FUNCTION_SUBCLASS_UNDEFINED, UAC3_FUNCTION_SUBCLASS_FULL_ADC_3_0, UAC3_FUNCTION_SUBCLASS_GENERIC_IO, UAC3_FUNCTION_SUBCLASS_HEADPHONE, UAC3_FUNCTION_SUBCLASS_SPEAKER, UAC3_FUNCTION_SUBCLASS_MICROPHONE, UAC3_FUNCTION_SUBCLASS_HEADSET, UAC3_FUNCTION_SUBCLASS_HEADSET_ADAPTER, UAC3_FUNCTION_SUBCLASS_SPEAKERPHONE + +# TODO: Support the following format in syzlang: +# uac3_all_subclasses = uac3_func_subclasses, uac3_badd_classes +# uac3_func_subclasses = UAC3_FUNCTION_SUBCLASS_UNDEFINED, UAC3_FUNCTION_SUBCLASS_FULL_ADC_3_0 +# uac3_badd_classes = UAC3_FUNCTION_SUBCLASS_GENERIC_IO, UAC3_FUNCTION_SUBCLASS_HEADPHONE, UAC3_FUNCTION_SUBCLASS_SPEAKER, UAC3_FUNCTION_SUBCLASS_MICROPHONE, UAC3_FUNCTION_SUBCLASS_HEADSET, UAC3_FUNCTION_SUBCLASS_HEADSET_ADAPTER, UAC3_FUNCTION_SUBCLASS_SPEAKERPHONE + +uac3_feature_unit_controls = UAC3_FUNCTION_SUBCLASS_UNDEFINED, UAC3_FUNCTION_DESKTOP_SPEAKER, UAC3_FUNCTION_HOME_THEATER, UAC3_FUNCTION_MICROPHONE, UAC3_FUNCTION_HEADSET, UAC3_FUNCTION_TELEPHONE, UAC3_FUNCTION_CONVERTER, UAC3_FUNCTION_SOUND_RECORDER, UAC3_FUNCTION_IO_BOX, UAC3_FUNCTION_MUSICAL_INSTRUMENT, UAC3_FUNCTION_PRO_AUDIO, UAC3_FUNCTION_AUDIO_VIDEO, UAC3_FUNCTION_CONTROL_PANEL, UAC3_FUNCTION_HEADPHONE, UAC3_FUNCTION_GENERIC_SPEAKER, UAC3_FUNCTION_HEADSET_ADAPTER, UAC3_FUNCTION_SPEAKERPHONE, UAC3_FUNCTION_OTHER + +# TODO: Support uac3 badd profiles. See sound/usb/mixer.c: snd_usb_mixer_controls_badd() +# uac3_badd_endpoint_descriptor { +# inner usb_endpoint_descriptor_t[const[USB_ENDPOINT_UAC1_AS_OUT_ADDRESS, int8], const[USB_ENDPOINT_UAC1_AS_ATTRIBUTES, int8], uac3_iso_endpoint_descriptor] +# } [packed] + +#uac3_badd_maxsizes = UAC3_BADD_EP_MAXPSIZE_SYNC_MONO_16,UAC3_BADD_EP_MAXPSIZE_ASYNC_MONO_16,UAC3_BADD_EP_MAXPSIZE_SYNC_MONO_24,UAC3_BADD_EP_MAXPSIZE_ASYNC_MONO_24,UAC3_BADD_EP_MAXPSIZE_SYNC_STEREO_16,UAC3_BADD_EP_MAXPSIZE_ASYNC_STEREO_16,UAC3_BADD_EP_MAXPSIZE_SYNC_STEREO_24,UAC3_BADD_EP_MAXPSIZE_ASYNC_STEREO_24 + +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # + +# MIDI device class specific descriptions. # https://www.usb.org/sites/default/files/midi10.pdf +# https://elixir.bootlin.com/linux/latest/source/sound/usb/midi.c # https://elixir.bootlin.com/linux/latest/source/drivers/usb/gadget/function/f_midi.c -# https://elixir.bootlin.com/linux/latest/source/drivers/usb/gadget/function/f_uac2.c -# https://elixir.bootlin.com/linux/latest/source/include/linux/usb/audio-v2.h + +resource fd_usb_midi[fd_usb] +syz_usb_connect$midi(speed flags[usb_device_speed], dev_len len[dev], dev ptr[in, usb_device_descriptor_midi], conn_descs ptr[in, vusb_connect_descriptors]) fd_usb_midi (timeout[3000], prog_timeout[3000], remote_cover) +syz_usb_control_io$midi(fd fd_usb_midi, descs ptr[in, vusb_descriptors_uac1], resps ptr[in, vusb_responses_uac1]) (timeout[300], remote_cover) + +usb_device_descriptor_midi { + inner usb_device_descriptor_verbose_t[flags[usb_versions, int16], 0, 0, 0, flags[usb_device_max_packet_sizes, int8], flags[midi_vendor_ids, int16], flags[midi_device_ids, int16], 64, array[usb_config_descriptor_midi, 1]] +} [packed] + +usb_config_descriptor_midi { + inner usb_config_descriptor_t[const[1, int8], const[1, int8], usb_interface_descriptors_midi] +} [packed] + +usb_interface_descriptors_midi { + inner usb_interface_descriptors_midi_inner +} [packed] + +# Define folded-in structure to match layout expected by USB ID patching code. +usb_interface_descriptors_midi_inner { + control usb_interface_descriptor_eps_array_t[const[0, int8], const[0, int8], const[USB_CLASS_AUDIO, int8], const[USB_SUBCLASS_MIDISTREAMING, int8], flags[uac_version_types, int8], array[usb_midi_iface_extra], array[usb_endpoint_descriptor_midi, 0:8]] +} [packed] + +usb_endpoint_descriptor_midi { + inner usb_endpoint_descriptor_t[flags[usb_endpoint_addresses, int8], flags[usb_endpoint_attributes, int8], usb_ms_endpoint_descriptor] +} [packed] + +midi_vendor_ids = 0x403, 0x41e, 0x424, 0x45e, 0x499, 0x582, 0x763, 0x7cf, 0x86a, 0x9e8, 0xa12, 0xccd, 0xdba, 0x1235, 0x1395, 0x1686, 0x19b5, 0x1a86, 0x1f38, 0x200c, 0x4752, 0x7104 +midi_device_ids = 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xe, 0x10, 0x11, 0x12, 0x14, 0x16, 0x18, 0x1b, 0x1d, 0x21, 0x23, 0x25, 0x27, 0x29, 0x2d, 0x2f, 0x33, 0x35, 0x37, 0x40, 0x42, 0x44, 0x47, 0x48, 0x4c, 0x4d, 0x50, 0x52, 0x60, 0x62, 0x64, 0x65, 0x6d, 0x75, 0x7d, 0x80, 0x8b, 0x8d, 0xa3, 0xc4, 0xdd, 0x113, 0x120, 0x12f, 0x159, 0x283, 0x300, 0x1000, 0x100b, 0x1243, 0x1503, 0x1507, 0x1509, 0x150a, 0x150c, 0x2019, 0x2202, 0x3000, 0x6801, 0x6802, 0x752d, 0xb832, 0xb8d8 +midi_jack_type = USB_MS_EMBEDDED, USB_MS_EXTERNAL +uac_version_types = UAC_VERSION_1, UAC_VERSION_2, UAC_VERSION_3 + +usb_ms_endpoint_descriptor { + bLength len[parent, int8] + bDescriptorType const[USB_DT_CS_ENDPOINT, int8] + bDescriptorSubType const[USB_MS_GENERAL, int8] + bNumEmbMIDIJack len[baAssocJackID, int8] + baAssocJackID array[int8, 0:16] +} [packed] + +usb_midi_iface_extra [ + ms_header usb_ms_header_descriptor + midi_in_jack usb_midi_in_jack_descriptor + midi_out_jack usb_midi_out_jack_descriptor +] [varlen] + +usb_ms_header_descriptor { + bLength len[parent, int8] + bDescriptorType const[USB_DT_CS_INTERFACE, int8] + bDescriptorSubType const[UAC_HEADER, int8] + bcdMSC int16 + wTotalLength len[parent, int16] +} [packed] + +usb_midi_in_jack_descriptor { + bLength len[parent, int8] + bDescriptorType const[USB_DT_CS_INTERFACE, int8] + bDescriptorSubType const[UAC_MIDI_IN_JACK, int8] + bJackType flags[midi_jack_type, int8] + bJackID int8 + iJack int8 +} [packed] + +usb_midi_out_jack_descriptor { + bLength len[parent, int8] + bDescriptorType const[USB_DT_CS_INTERFACE, int8] + bDescriptorSubType const[UAC_MIDI_OUT_JACK, int8] + bJackType flags[midi_jack_type, int8] + bJackID int8 + bNrInputPins len[pins, int8] + pins array[usb_midi_source_pin] + iJack int8 +} [packed] + +usb_midi_source_pin { + baSourceID int8 + baSourcePin int8 +} [packed] # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # diff --git a/sys/linux/vusb.txt.const b/sys/linux/vusb.txt.const index b707e8dc4272..63025e268c6d 100644 --- a/sys/linux/vusb.txt.const +++ b/sys/linux/vusb.txt.const @@ -1,408 +1,590 @@ # Code generated by syz-sysgen. DO NOT EDIT. -arches = 386, amd64, arm, arm64, mips64le, ppc64le, riscv64, s390x -ATH_USB_RX_STREAM_MODE_TAG = 19968 -AX88172_CMD_READ_NODE_ID = 23 -AX_CMD_READ_EEPROM = 11 -AX_CMD_READ_GPIOS = 30 -AX_CMD_READ_MEDIUM_STATUS = 26 -AX_CMD_READ_MII_REG = 7 -AX_CMD_READ_MONITOR_MODE = 28 -AX_CMD_READ_NODE_ID = 19 -AX_CMD_READ_PHY_ID = 25 -AX_CMD_READ_RX_CTL = 15 -AX_CMD_STATMNGSTS_REG = 9 -AX_CMD_SW_PHY_STATUS = 33 -CDC_NCM_COMM_ALTSETTING_NCM = 0 -CDC_NCM_DATA_ALTSETTING_NCM = 1 -CONTAINER_ID_TYPE = 4 -F_AUDIO_NUM_INTERFACES = 2 -HID_DT_HID = 33 -HID_DT_PHYSICAL = 35 -HID_DT_REPORT = 34 -HID_GLOBAL_ITEM_TAG_LOGICAL_MAXIMUM = 2 -HID_GLOBAL_ITEM_TAG_LOGICAL_MINIMUM = 1 -HID_GLOBAL_ITEM_TAG_PHYSICAL_MAXIMUM = 4 -HID_GLOBAL_ITEM_TAG_PHYSICAL_MINIMUM = 3 -HID_GLOBAL_ITEM_TAG_POP = 11 -HID_GLOBAL_ITEM_TAG_PUSH = 10 -HID_GLOBAL_ITEM_TAG_REPORT_COUNT = 9 -HID_GLOBAL_ITEM_TAG_REPORT_ID = 8 -HID_GLOBAL_ITEM_TAG_REPORT_SIZE = 7 -HID_GLOBAL_ITEM_TAG_UNIT = 6 -HID_GLOBAL_ITEM_TAG_UNIT_EXPONENT = 5 -HID_GLOBAL_ITEM_TAG_USAGE_PAGE = 0 -HID_ITEM_TYPE_GLOBAL = 1 -HID_ITEM_TYPE_LOCAL = 2 -HID_ITEM_TYPE_MAIN = 0 -HID_LOCAL_ITEM_TAG_DELIMITER = 10 -HID_LOCAL_ITEM_TAG_DESIGNATOR_INDEX = 3 -HID_LOCAL_ITEM_TAG_DESIGNATOR_MAXIMUM = 5 -HID_LOCAL_ITEM_TAG_DESIGNATOR_MINIMUM = 4 -HID_LOCAL_ITEM_TAG_STRING_INDEX = 7 -HID_LOCAL_ITEM_TAG_STRING_MAXIMUM = 9 -HID_LOCAL_ITEM_TAG_STRING_MINIMUM = 8 -HID_LOCAL_ITEM_TAG_USAGE = 0 -HID_LOCAL_ITEM_TAG_USAGE_MAXIMUM = 2 -HID_LOCAL_ITEM_TAG_USAGE_MINIMUM = 1 -HID_MAIN_ITEM_TAG_BEGIN_COLLECTION = 10 -HID_MAIN_ITEM_TAG_END_COLLECTION = 12 -HID_MAIN_ITEM_TAG_FEATURE = 11 -HID_MAIN_ITEM_TAG_INPUT = 8 -HID_MAIN_ITEM_TAG_OUTPUT = 9 -HID_MAX_DESCRIPTOR_SIZE = 4096 -HID_REQ_GET_PROTOCOL = 3 -HID_REQ_GET_REPORT = 1 -HTC_CTRL_RSVD_SVC = 1 -HTC_FLAGS_RECV_TRAILER = 2 -HTC_LOOPBACK_RSVD_SVC = 2 -HTC_MSG_CONNECT_SERVICE_RESPONSE_ID = 3 -HTC_MSG_READY_ID = 1 -HTC_SERVICE_SUCCESS = 0 -HUB_CHANGE_LOCAL_POWER = 1 -HUB_CHANGE_OVERCURRENT = 2 -HUB_CHAR_COMMON_LPSM = 0 -HUB_CHAR_COMMON_OCPM = 0 -HUB_CHAR_COMPOUND = 4 -HUB_CHAR_INDV_PORT_LPSM = 1 -HUB_CHAR_INDV_PORT_OCPM = 8 -HUB_CHAR_LPSM = 3 -HUB_CHAR_NO_LPSM = 2 -HUB_CHAR_NO_OCPM = 16 -HUB_CHAR_OCPM = 24 -HUB_CHAR_PORTIND = 128 -HUB_CHAR_TTTT = 96 -HUB_STATUS_LOCAL_POWER = 1 -HUB_STATUS_OVERCURRENT = 2 -LAN78XX_REG_TYPE_IN = 192 -LAN78XX_REG_TYPE_OUT = 64 -RTL8150_REQT_READ = 192 -RTL8150_REQT_WRITE = 64 -RTL8150_REQ_GET_REGS = 5 -RTL8150_REQ_SET_REGS = 5 -SIERRA_CMD_TYPE_IN = 161 -SIERRA_CMD_TYPE_OUT = 33 -UAC1_EXTENSION_UNIT = 8 -UAC1_PROCESSING_UNIT = 7 -UAC_AS_GENERAL = 1 -UAC_DT_AC_HEADER_LENGTH = 10 -UAC_EP_CS_ATTR_FILL_MAX = 128 -UAC_EP_CS_ATTR_PITCH_CONTROL = 2 -UAC_EP_CS_ATTR_SAMPLE_RATE = 1 -UAC_EP_GENERAL = 1 -UAC_FEATURE_UNIT = 6 -UAC_FORMAT_TYPE = 2 -UAC_FORMAT_TYPE_I = 1 -UAC_FORMAT_TYPE_II = 2 -UAC_FORMAT_TYPE_II_AC3 = 4098 -UAC_FORMAT_TYPE_II_MPEG = 4097 -UAC_FORMAT_TYPE_I_ALAW = 4 -UAC_FORMAT_TYPE_I_IEEE_FLOAT = 3 -UAC_FORMAT_TYPE_I_MULAW = 5 -UAC_FORMAT_TYPE_I_PCM = 1 -UAC_FORMAT_TYPE_I_PCM8 = 2 -UAC_FORMAT_TYPE_I_UNDEFINED = 0 -UAC_FU_AUTOMATIC_GAIN = 7 -UAC_FU_BASS = 3 -UAC_FU_BASS_BOOST = 9 -UAC_FU_DELAY = 8 -UAC_FU_GRAPHIC_EQUALIZER = 6 -UAC_FU_LOUDNESS = 10 -UAC_FU_MID = 4 -UAC_FU_MUTE = 1 -UAC_FU_TREBLE = 5 -UAC_FU_VOLUME = 2 -UAC_GET_CUR = 129 -UAC_GET_MAX = 131 -UAC_GET_MEM = 133 -UAC_GET_MIN = 130 -UAC_GET_RES = 132 -UAC_HEADER = 1 -UAC_INPUT_TERMINAL = 2 -UAC_INPUT_TERMINAL_DESKTOP_MICROPHONE = 514 -UAC_INPUT_TERMINAL_MICROPHONE = 513 -UAC_INPUT_TERMINAL_MICROPHONE_ARRAY = 517 -UAC_INPUT_TERMINAL_OMNI_DIR_MICROPHONE = 516 -UAC_INPUT_TERMINAL_PERSONAL_MICROPHONE = 515 -UAC_INPUT_TERMINAL_PROC_MICROPHONE_ARRAY = 518 -UAC_INPUT_TERMINAL_UNDEFINED = 512 -UAC_MIXER_UNIT = 4 -UAC_OUTPUT_TERMINAL = 3 -UAC_OUTPUT_TERMINAL_COMMUNICATION_SPEAKER = 774 -UAC_OUTPUT_TERMINAL_DESKTOP_SPEAKER = 772 -UAC_OUTPUT_TERMINAL_HEADPHONES = 770 -UAC_OUTPUT_TERMINAL_HEAD_MOUNTED_DISPLAY_AUDIO = 771 -UAC_OUTPUT_TERMINAL_LOW_FREQ_EFFECTS_SPEAKER = 775 -UAC_OUTPUT_TERMINAL_ROOM_SPEAKER = 773 -UAC_OUTPUT_TERMINAL_SPEAKER = 769 -UAC_OUTPUT_TERMINAL_UNDEFINED = 768 -UAC_PROCESS_CHORUS = 5 -UAC_PROCESS_DOLBY_PROLOGIC = 2 -UAC_PROCESS_DYN_RANGE_COMP = 6 -UAC_PROCESS_REVERB = 4 -UAC_PROCESS_STEREO_EXTENDER = 3 -UAC_PROCESS_UNDEFINED = 0 -UAC_PROCESS_UP_DOWNMIX = 1 -UAC_SELECTOR_UNIT = 5 -UAC_TERMINAL_STREAMING = 257 -UAC_TERMINAL_UNDEFINED = 256 -UAC_TERMINAL_VENDOR_SPEC = 511 -USBLP_FIRST_PROTOCOL = 1 -USBLP_LAST_PROTOCOL = 3 -USBLP_REQ_GET_ID = 0 -USBLP_REQ_GET_STATUS = 1 -USBLP_REQ_HP_CHANNEL_CHANGE_REQUEST = 0 -USBLP_REQ_RESET = 2 -USB_5GBPS_OPERATION = 8 -USB_BESL_BASELINE_VALID = 8 -USB_BESL_DEEP_VALID = 16 -USB_BESL_SUPPORT = 4 -USB_CAP_TYPE_EXT = 2 -USB_CAP_TYPE_WIRELESS_USB = 1 -USB_CDC_ACM_TYPE = 2 -USB_CDC_CALL_MANAGEMENT_TYPE = 1 -USB_CDC_CALL_MGMT_CAP_CALL_MGMT = 1 -USB_CDC_CALL_MGMT_CAP_DATA_INTF = 2 -USB_CDC_CAP_BRK = 4 -USB_CDC_CAP_LINE = 2 -USB_CDC_CAP_NOTIFY = 8 -USB_CDC_COMM_FEATURE = 1 -USB_CDC_COUNTRY_TYPE = 7 -USB_CDC_DMM_TYPE = 20 -USB_CDC_ETHERNET_TYPE = 15 -USB_CDC_GET_CRC_MODE = 137 -USB_CDC_GET_ENCAPSULATED_RESPONSE = 1 -USB_CDC_GET_MAX_DATAGRAM_SIZE = 135 -USB_CDC_GET_NTB_FORMAT = 131 -USB_CDC_GET_NTB_INPUT_SIZE = 133 -USB_CDC_GET_NTB_PARAMETERS = 128 -USB_CDC_HEADER_TYPE = 0 -USB_CDC_MBIM_EXTENDED_TYPE = 28 -USB_CDC_MBIM_TYPE = 27 -USB_CDC_MDLM_DETAIL_TYPE = 19 -USB_CDC_MDLM_TYPE = 18 -USB_CDC_NCM_NCAP_CRC_MODE = 16 -USB_CDC_NCM_NCAP_ENCAP_COMMAND = 4 -USB_CDC_NCM_NCAP_ETH_FILTER = 1 -USB_CDC_NCM_NCAP_MAX_DATAGRAM_SIZE = 8 -USB_CDC_NCM_NCAP_NET_ADDRESS = 2 -USB_CDC_NCM_NCAP_NTB_INPUT_SIZE = 32 -USB_CDC_NCM_TYPE = 26 -USB_CDC_NETWORK_TERMINAL_TYPE = 10 -USB_CDC_OBEX_TYPE = 21 -USB_CDC_PROTO_NONE = 0 -USB_CDC_SEND_ENCAPSULATED_COMMAND = 0 -USB_CDC_SUBCLASS_ETHERNET = 6 -USB_CDC_SUBCLASS_NCM = 13 -USB_CDC_UNION_TYPE = 6 -USB_CLASS_AUDIO = 1 -USB_CLASS_COMM = 2 -USB_CLASS_HID = 3 -USB_CLASS_PRINTER = 7 -USB_CLASS_VENDOR_SPEC = 255 -USB_CONFIG_ATT_BATTERY = 16 -USB_CONFIG_ATT_ONE = 128 -USB_CONFIG_ATT_SELFPOWER = 64 -USB_CONFIG_ATT_WAKEUP = 32 -USB_DIR_IN = 128 -USB_DIR_OUT = 0 -USB_DT_BOS = 15 -USB_DT_BOS_SIZE = 5 -USB_DT_CONFIG = 2 -USB_DT_CONFIG_SIZE = 9 -USB_DT_CS_ENDPOINT = 37 -USB_DT_CS_INTERFACE = 36 -USB_DT_CS_RADIO_CONTROL = 35 -USB_DT_DEBUG = 10 -USB_DT_DEVICE = 1 -USB_DT_DEVICE_CAPABILITY = 16 -USB_DT_DEVICE_QUALIFIER = 6 -USB_DT_DEVICE_SIZE = 18 -USB_DT_ENCRYPTION_TYPE = 14 -USB_DT_ENDPOINT = 5 -USB_DT_ENDPOINT_AUDIO_SIZE = 9 -USB_DT_HUB = 41 -USB_DT_INTERFACE = 4 -USB_DT_INTERFACE_ASSOCIATION = 11 -USB_DT_INTERFACE_POWER = 8 -USB_DT_INTERFACE_SIZE = 9 -USB_DT_KEY = 13 -USB_DT_OTG = 9 -USB_DT_OTHER_SPEED_CONFIG = 7 -USB_DT_PIPE_USAGE = 36 -USB_DT_RPIPE = 34 -USB_DT_SECURITY = 12 -USB_DT_SSP_ISOC_ENDPOINT_COMP = 49 -USB_DT_SS_ENDPOINT_COMP = 48 -USB_DT_SS_HUB = 42 -USB_DT_STRING = 3 -USB_DT_WIRELESS_ENDPOINT_COMP = 17 -USB_DT_WIRE_ADAPTER = 33 -USB_ENDPOINT_ATH9K_BULK_ATTRIBUTES = 2 -USB_ENDPOINT_ATH9K_BULK_EXTRA1_ADDRESS = 5 -USB_ENDPOINT_ATH9K_BULK_EXTRA2_ADDRESS = 6 -USB_ENDPOINT_ATH9K_BULK_IN_ADDRESS = 130 -USB_ENDPOINT_ATH9K_BULK_OUT_ADDRESS = 1 -USB_ENDPOINT_ATH9K_INT_ATTRIBUTES = 3 -USB_ENDPOINT_ATH9K_INT_IN_ADDRESS = 131 -USB_ENDPOINT_ATH9K_INT_OUT_ADDRESS = 4 -USB_ENDPOINT_BULK_ATTR = 2 -USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES = 2 -USB_ENDPOINT_CDC_ECM_IN_ADDRESS = 130 -USB_ENDPOINT_CDC_ECM_NOTIFY_ADDRESS = 129 -USB_ENDPOINT_CDC_ECM_NOTIFY_ATTRIBUTES = 3 -USB_ENDPOINT_CDC_ECM_OUT_ADDRESS = 3 -USB_ENDPOINT_HID_ATTRIBUTES = 3 -USB_ENDPOINT_HID_IN_ADDRESS = 129 -USB_ENDPOINT_HID_OUT_ADDRESS = 2 -USB_ENDPOINT_INTR_NOTIFICATION = 16 -USB_ENDPOINT_INTR_PERIODIC = 0 -USB_ENDPOINT_INT_ATTR = 3 -USB_ENDPOINT_PRINTER_ATTRIBUTES = 2 -USB_ENDPOINT_PRINTER_IN_ADDRESS = 130 -USB_ENDPOINT_PRINTER_OUT_ADDRESS = 1 -USB_ENDPOINT_SYNC_ADAPTIVE = 8 -USB_ENDPOINT_SYNC_ASYNC = 4 -USB_ENDPOINT_SYNC_NONE = 0 -USB_ENDPOINT_SYNC_SYNC = 12 -USB_ENDPOINT_UAC1_AS_ATTRIBUTES = 9 -USB_ENDPOINT_UAC1_AS_IN_ADDRESS = 130 -USB_ENDPOINT_UAC1_AS_OUT_ADDRESS = 1 -USB_ENDPOINT_USAGE_DATA = 0 -USB_ENDPOINT_USAGE_FEEDBACK = 16 -USB_ENDPOINT_XFER_BULK = 2 -USB_ENDPOINT_XFER_CONTROL = 0 -USB_ENDPOINT_XFER_INT = 3 -USB_ENDPOINT_XFER_ISOC = 1 -USB_EXT_PORT_STAT_RX_LANES = 3840 -USB_EXT_PORT_STAT_RX_SPEED_ID = 15 -USB_EXT_PORT_STAT_TX_LANES = 61440 -USB_EXT_PORT_STAT_TX_SPEED_ID = 240 -USB_FIXED_ENDPOINT_BULK_IN_ADDR = 129 -USB_FIXED_ENDPOINT_BULK_OUT_ADDR = 2 -USB_FIXED_ENDPOINT_INT_IN_ADDR = 131 -USB_FULL_SPEED_OPERATION = 2 -USB_HIGH_SPEED_OPERATION = 4 -USB_HUB_PORTS_BITS = 4 -USB_INTERFACE_PROTOCOL_KEYBOARD = 1 -USB_INTERFACE_PROTOCOL_MOUSE = 2 -USB_INTERFACE_SUBCLASS_BOOT = 1 -USB_LOW_SPEED_OPERATION = 1 -USB_LPM_SUPPORT = 2 -USB_LTM_SUPPORT = 2 -USB_PORT_STAT_CONNECTION = 1 -USB_PORT_STAT_C_BH_RESET = 32 -USB_PORT_STAT_C_CONFIG_ERROR = 128 -USB_PORT_STAT_C_CONNECTION = 1 -USB_PORT_STAT_C_ENABLE = 2 -USB_PORT_STAT_C_L1 = 32 -USB_PORT_STAT_C_LINK_STATE = 64 -USB_PORT_STAT_C_OVERCURRENT = 8 -USB_PORT_STAT_C_RESET = 16 -USB_PORT_STAT_C_SUSPEND = 4 -USB_PORT_STAT_ENABLE = 2 -USB_PORT_STAT_HIGH_SPEED = 1024 -USB_PORT_STAT_INDICATOR = 4096 -USB_PORT_STAT_L1 = 32 -USB_PORT_STAT_LINK_STATE = 480 -USB_PORT_STAT_LOW_SPEED = 512 -USB_PORT_STAT_OVERCURRENT = 8 -USB_PORT_STAT_POWER = 256 -USB_PORT_STAT_RESET = 16 -USB_PORT_STAT_SPEED_5GBPS = 0 -USB_PORT_STAT_SUSPEND = 4 -USB_PORT_STAT_TEST = 2048 -USB_PTM_CAP_TYPE = 11 -USB_RECIP_DEVICE = 0 -USB_REQ_CLEAR_FEATURE = 1 -USB_REQ_GET_BATTERY_STATUS = 21 -USB_REQ_GET_CONFIGURATION = 8 -USB_REQ_GET_DESCRIPTOR = 6 -USB_REQ_GET_ENCRYPTION = 14 -USB_REQ_GET_HANDSHAKE = 16 -USB_REQ_GET_INTERFACE = 10 -USB_REQ_GET_PARTNER_PDO = 20 -USB_REQ_GET_SECURITY_DATA = 19 -USB_REQ_GET_STATUS = 0 -USB_REQ_GET_VDM = 23 -USB_REQ_LOOPBACK_DATA_READ = 22 -USB_REQ_LOOPBACK_DATA_WRITE = 21 -USB_REQ_RPIPE_ABORT = 14 -USB_REQ_RPIPE_RESET = 15 -USB_REQ_SEND_VDM = 24 -USB_REQ_SET_ADDRESS = 5 -USB_REQ_SET_CONFIGURATION = 9 -USB_REQ_SET_CONNECTION = 17 -USB_REQ_SET_DESCRIPTOR = 7 -USB_REQ_SET_ENCRYPTION = 13 -USB_REQ_SET_FEATURE = 3 -USB_REQ_SET_HANDSHAKE = 15 -USB_REQ_SET_INTERFACE = 11 -USB_REQ_SET_INTERFACE_DS = 23 -USB_REQ_SET_ISOCH_DELAY = 49 -USB_REQ_SET_PDO = 22 -USB_REQ_SET_SECURITY_DATA = 18 -USB_REQ_SET_SEL = 48 -USB_REQ_SET_WUSB_DATA = 20 -USB_REQ_SYNCH_FRAME = 12 -USB_SPEED_FULL = 2 -USB_SPEED_HIGH = 3 -USB_SPEED_LOW = 1 -USB_SPEED_SUPER = 5 -USB_SPEED_SUPER_PLUS = 6 -USB_SPEED_UNKNOWN = 0 -USB_SPEED_WIRELESS = 4 -USB_SSP_CAP_TYPE = 10 -USB_SSP_MIN_RX_LANE_COUNT = 3840 -USB_SSP_MIN_SUBLINK_SPEED_ATTRIBUTE_ID = 15 -USB_SSP_MIN_TX_LANE_COUNT = 61440 -USB_SSP_SUBLINK_SPEED_LP = 49152 -USB_SSP_SUBLINK_SPEED_LSE = 48 -USB_SSP_SUBLINK_SPEED_LSM = 16711680 -USB_SSP_SUBLINK_SPEED_RSVD = 16128 -USB_SSP_SUBLINK_SPEED_SSID = 15 -USB_SSP_SUBLINK_SPEED_ST = 192 -USB_SS_CAP_TYPE = 3 -USB_SS_PORT_LS_COMP_MOD = 320 -USB_SS_PORT_LS_HOT_RESET = 288 -USB_SS_PORT_LS_LOOPBACK = 352 -USB_SS_PORT_LS_POLLING = 224 -USB_SS_PORT_LS_RECOVERY = 256 -USB_SS_PORT_LS_RX_DETECT = 160 -USB_SS_PORT_LS_SS_DISABLED = 128 -USB_SS_PORT_LS_SS_INACTIVE = 192 -USB_SS_PORT_LS_U0 = 0 -USB_SS_PORT_LS_U1 = 32 -USB_SS_PORT_LS_U2 = 64 -USB_SS_PORT_LS_U3 = 96 -USB_SS_PORT_STAT_POWER = 512 -USB_SS_PORT_STAT_SPEED = 7168 -USB_SUBCLASS_AUDIOCONTROL = 1 -USB_SUBCLASS_AUDIOSTREAMING = 2 -USB_SUBCLASS_VENDOR_SPEC = 255 -USB_TYPE_CLASS = 32 -USB_TYPE_STANDARD = 0 -USB_TYPE_VENDOR = 64 -USB_VENDOR_REQUEST_GET_STATS = 162 -USB_VENDOR_REQUEST_READ_REGISTER = 161 -USB_VENDOR_REQUEST_WRITE_REGISTER = 160 -USB_WIRELESS_BEACON_DIRECTED = 8 -USB_WIRELESS_BEACON_MASK = 12 -USB_WIRELESS_BEACON_NONE = 12 -USB_WIRELESS_BEACON_SELF = 4 -USB_WIRELESS_P2P_DRD = 2 -USB_WIRELESS_PHY_107 = 4 -USB_WIRELESS_PHY_160 = 8 -USB_WIRELESS_PHY_200 = 16 -USB_WIRELESS_PHY_320 = 32 -USB_WIRELESS_PHY_400 = 64 -USB_WIRELESS_PHY_480 = 128 -USB_WIRELESS_PHY_53 = 1 -USB_WIRELESS_PHY_80 = 2 -WMI_BEACON_SVC = 257 -WMI_CAB_SVC = 258 -WMI_CONTROL_SVC = 256 -WMI_DATA_BE_SVC = 263 -WMI_DATA_VI_SVC = 262 -WMI_DATA_VO_SVC = 261 -WMI_MGMT_SVC = 260 -WMI_UAPSD_SVC = 259 +arches = arm64 +ATH_USB_RX_STREAM_MODE_TAG = arm64:19968 +AX88172_CMD_READ_NODE_ID = arm64:23 +AX_CMD_READ_EEPROM = arm64:11 +AX_CMD_READ_GPIOS = arm64:30 +AX_CMD_READ_MEDIUM_STATUS = arm64:26 +AX_CMD_READ_MII_REG = arm64:7 +AX_CMD_READ_MONITOR_MODE = arm64:28 +AX_CMD_READ_NODE_ID = arm64:19 +AX_CMD_READ_PHY_ID = arm64:25 +AX_CMD_READ_RX_CTL = arm64:15 +AX_CMD_STATMNGSTS_REG = arm64:9 +AX_CMD_SW_PHY_STATUS = arm64:33 +CDC_NCM_COMM_ALTSETTING_NCM = arm64:0 +CDC_NCM_DATA_ALTSETTING_NCM = arm64:1 +CONTAINER_ID_TYPE = arm64:4 +F_AUDIO_NUM_INTERFACES = arm64:2 +HID_DT_HID = arm64:33 +HID_DT_PHYSICAL = arm64:35 +HID_DT_REPORT = arm64:34 +HID_GLOBAL_ITEM_TAG_LOGICAL_MAXIMUM = arm64:2 +HID_GLOBAL_ITEM_TAG_LOGICAL_MINIMUM = arm64:1 +HID_GLOBAL_ITEM_TAG_PHYSICAL_MAXIMUM = arm64:4 +HID_GLOBAL_ITEM_TAG_PHYSICAL_MINIMUM = arm64:3 +HID_GLOBAL_ITEM_TAG_POP = arm64:11 +HID_GLOBAL_ITEM_TAG_PUSH = arm64:10 +HID_GLOBAL_ITEM_TAG_REPORT_COUNT = arm64:9 +HID_GLOBAL_ITEM_TAG_REPORT_ID = arm64:8 +HID_GLOBAL_ITEM_TAG_REPORT_SIZE = arm64:7 +HID_GLOBAL_ITEM_TAG_UNIT = arm64:6 +HID_GLOBAL_ITEM_TAG_UNIT_EXPONENT = arm64:5 +HID_GLOBAL_ITEM_TAG_USAGE_PAGE = arm64:0 +HID_ITEM_TYPE_GLOBAL = arm64:1 +HID_ITEM_TYPE_LOCAL = arm64:2 +HID_ITEM_TYPE_MAIN = arm64:0 +HID_LOCAL_ITEM_TAG_DELIMITER = arm64:10 +HID_LOCAL_ITEM_TAG_DESIGNATOR_INDEX = arm64:3 +HID_LOCAL_ITEM_TAG_DESIGNATOR_MAXIMUM = arm64:5 +HID_LOCAL_ITEM_TAG_DESIGNATOR_MINIMUM = arm64:4 +HID_LOCAL_ITEM_TAG_STRING_INDEX = arm64:7 +HID_LOCAL_ITEM_TAG_STRING_MAXIMUM = arm64:9 +HID_LOCAL_ITEM_TAG_STRING_MINIMUM = arm64:8 +HID_LOCAL_ITEM_TAG_USAGE = arm64:0 +HID_LOCAL_ITEM_TAG_USAGE_MAXIMUM = arm64:2 +HID_LOCAL_ITEM_TAG_USAGE_MINIMUM = arm64:1 +HID_MAIN_ITEM_TAG_BEGIN_COLLECTION = arm64:10 +HID_MAIN_ITEM_TAG_END_COLLECTION = arm64:12 +HID_MAIN_ITEM_TAG_FEATURE = arm64:11 +HID_MAIN_ITEM_TAG_INPUT = arm64:8 +HID_MAIN_ITEM_TAG_OUTPUT = arm64:9 +HID_MAX_DESCRIPTOR_SIZE = arm64:4096 +HID_REQ_GET_PROTOCOL = arm64:3 +HID_REQ_GET_REPORT = arm64:1 +HTC_CTRL_RSVD_SVC = arm64:1 +HTC_FLAGS_RECV_TRAILER = arm64:2 +HTC_LOOPBACK_RSVD_SVC = arm64:2 +HTC_MSG_CONNECT_SERVICE_RESPONSE_ID = arm64:3 +HTC_MSG_READY_ID = arm64:1 +HTC_SERVICE_SUCCESS = arm64:0 +HUB_CHANGE_LOCAL_POWER = arm64:1 +HUB_CHANGE_OVERCURRENT = arm64:2 +HUB_CHAR_COMMON_LPSM = arm64:0 +HUB_CHAR_COMMON_OCPM = arm64:0 +HUB_CHAR_COMPOUND = arm64:4 +HUB_CHAR_INDV_PORT_LPSM = arm64:1 +HUB_CHAR_INDV_PORT_OCPM = arm64:8 +HUB_CHAR_LPSM = arm64:3 +HUB_CHAR_NO_LPSM = arm64:2 +HUB_CHAR_NO_OCPM = arm64:16 +HUB_CHAR_OCPM = arm64:24 +HUB_CHAR_PORTIND = arm64:128 +HUB_CHAR_TTTT = arm64:96 +HUB_STATUS_LOCAL_POWER = arm64:1 +HUB_STATUS_OVERCURRENT = arm64:2 +LAN78XX_REG_TYPE_IN = arm64:192 +LAN78XX_REG_TYPE_OUT = arm64:64 +RTL8150_REQT_READ = arm64:192 +RTL8150_REQT_WRITE = arm64:64 +RTL8150_REQ_GET_REGS = arm64:5 +RTL8150_REQ_SET_REGS = arm64:5 +SIERRA_CMD_TYPE_IN = arm64:161 +SIERRA_CMD_TYPE_OUT = arm64:33 +UAC1_EXTENSION_UNIT = arm64:8 +UAC1_PROCESSING_UNIT = arm64:7 +UAC2_CLOCK_MULTIPLIER = arm64:12 +UAC2_CLOCK_SELECTOR = arm64:11 +UAC2_CLOCK_SOURCE = arm64:10 +UAC2_CONTROL_DATA_OVERRUN = arm64:12 +UAC2_CONTROL_DATA_UNDERRUN = arm64:48 +UAC2_CONTROL_PITCH = arm64:3 +UAC2_EFFECT_DYN_RANGE_COMP = arm64:4 +UAC2_EFFECT_MOD_DELAY = arm64:3 +UAC2_EFFECT_PARAM_EQ = arm64:1 +UAC2_EFFECT_REVERB = arm64:2 +UAC2_EFFECT_UNDEFINED = arm64:0 +UAC2_EFFECT_UNIT = arm64:7 +UAC2_EXTENSION_UNIT_V2 = arm64:9 +UAC2_FUNCTION_AUDIO_VIDEO = arm64:11 +UAC2_FUNCTION_CONTROL_PANEL = arm64:12 +UAC2_FUNCTION_CONVERTER = arm64:6 +UAC2_FUNCTION_DESKTOP_SPEAKER = arm64:1 +UAC2_FUNCTION_HEADSET = arm64:4 +UAC2_FUNCTION_HOME_THEATER = arm64:2 +UAC2_FUNCTION_IO_BOX = arm64:8 +UAC2_FUNCTION_MICROPHONE = arm64:3 +UAC2_FUNCTION_MUSICAL_INSTRUMENT = arm64:9 +UAC2_FUNCTION_OTHER = arm64:255 +UAC2_FUNCTION_PRO_AUDIO = arm64:10 +UAC2_FUNCTION_SOUND_RECORDER = arm64:7 +UAC2_FUNCTION_SUBCLASS_UNDEFINED = arm64:0 +UAC2_FUNCTION_TELEPHONE = arm64:5 +UAC2_PROCESSING_UNIT_V2 = arm64:8 +UAC2_PROCESS_DOLBY_PROLOCIC = arm64:2 +UAC2_PROCESS_STEREO_EXTENDER = arm64:3 +UAC2_PROCESS_UNDEFINED = arm64:0 +UAC2_PROCESS_UP_DOWNMIX = arm64:1 +UAC2_SAMPLE_RATE_CONVERTER = arm64:13 +UAC3_CHANNEL_INFORMATION = arm64:32 +UAC3_CH_ARRAY = arm64:4 +UAC3_CH_BACK_CENTER = arm64:141 +UAC3_CH_BACK_LEFT = arm64:139 +UAC3_CH_BACK_LEFT_OF_CENTER = arm64:142 +UAC3_CH_BACK_RIGHT = arm64:140 +UAC3_CH_BACK_RIGHT_OF_CENTER = arm64:143 +UAC3_CH_BACK_WIDE_LEFT = arm64:144 +UAC3_CH_BACK_WIDE_RIGHT = arm64:145 +UAC3_CH_BOTTOM_BACK_CENTER = arm64:179 +UAC3_CH_BOTTOM_BACK_LEFT = arm64:177 +UAC3_CH_BOTTOM_BACK_LOC = arm64:180 +UAC3_CH_BOTTOM_BACK_RIGHT = arm64:178 +UAC3_CH_BOTTOM_BACK_ROC = arm64:181 +UAC3_CH_BOTTOM_BACK_WIDE_LEFT = arm64:182 +UAC3_CH_BOTTOM_BACK_WIDE_RIGHT = arm64:183 +UAC3_CH_BOTTOM_CENTER = arm64:165 +UAC3_CH_BOTTOM_FRONT_CENTER = arm64:168 +UAC3_CH_BOTTOM_FRONT_LEFT = arm64:166 +UAC3_CH_BOTTOM_FRONT_LOC = arm64:169 +UAC3_CH_BOTTOM_FRONT_RIGHT = arm64:167 +UAC3_CH_BOTTOM_FRONT_ROC = arm64:170 +UAC3_CH_BOTTOM_FRONT_WIDE_LEFT = arm64:171 +UAC3_CH_BOTTOM_FRONT_WIDE_RIGHT = arm64:172 +UAC3_CH_BOTTOM_SIDE_LEFT = arm64:173 +UAC3_CH_BOTTOM_SIDE_RIGHT = arm64:174 +UAC3_CH_BOTTOM_SURR_ARRAY_LEFT = arm64:175 +UAC3_CH_BOTTOM_SURR_ARRAY_RIGHT = arm64:176 +UAC3_CH_FRONT_CENTER = arm64:130 +UAC3_CH_FRONT_LEFT = arm64:128 +UAC3_CH_FRONT_LEFT_OF_CENTER = arm64:131 +UAC3_CH_FRONT_RIGHT = arm64:129 +UAC3_CH_FRONT_RIGHT_OF_CENTER = arm64:132 +UAC3_CH_FRONT_WIDE_LEFT = arm64:133 +UAC3_CH_FRONT_WIDE_RIGHT = arm64:134 +UAC3_CH_HEADPHONE_LEFT = arm64:187 +UAC3_CH_HEADPHONE_RIGHT = arm64:188 +UAC3_CH_LEFT = arm64:2 +UAC3_CH_LFE_LEFT = arm64:185 +UAC3_CH_LFE_RIGHT = arm64:186 +UAC3_CH_LOW_FREQUENCY_EFFECTS = arm64:184 +UAC3_CH_MONO = arm64:1 +UAC3_CH_PATTERN_A = arm64:34 +UAC3_CH_PATTERN_B = arm64:35 +UAC3_CH_PATTERN_M = arm64:36 +UAC3_CH_PATTERN_S = arm64:37 +UAC3_CH_PATTERN_X = arm64:32 +UAC3_CH_PATTERN_Y = arm64:33 +UAC3_CH_RELATIONSHIP_UNDEFINED = arm64:0 +UAC3_CH_RIGHT = arm64:3 +UAC3_CH_SIDE_LEFT = arm64:135 +UAC3_CH_SIDE_RIGHT = arm64:136 +UAC3_CH_SURROUND_ARRAY_LEFT = arm64:137 +UAC3_CH_SURROUND_ARRAY_RIGHT = arm64:138 +UAC3_CH_TOP_BACK_CENTER = arm64:160 +UAC3_CH_TOP_BACK_LEFT = arm64:158 +UAC3_CH_TOP_BACK_LOC = arm64:161 +UAC3_CH_TOP_BACK_RIGHT = arm64:159 +UAC3_CH_TOP_BACK_ROC = arm64:162 +UAC3_CH_TOP_BACK_WIDE_LEFT = arm64:163 +UAC3_CH_TOP_BACK_WIDE_RIGHT = arm64:164 +UAC3_CH_TOP_CENTER = arm64:146 +UAC3_CH_TOP_FRONT_CENTER = arm64:149 +UAC3_CH_TOP_FRONT_LEFT = arm64:147 +UAC3_CH_TOP_FRONT_LOC = arm64:150 +UAC3_CH_TOP_FRONT_RIGHT = arm64:148 +UAC3_CH_TOP_FRONT_ROC = arm64:151 +UAC3_CH_TOP_FRONT_WIDE_LEFT = arm64:152 +UAC3_CH_TOP_FRONT_WIDE_RIGHT = arm64:153 +UAC3_CH_TOP_SIDE_LEFT = arm64:154 +UAC3_CH_TOP_SIDE_RIGHT = arm64:155 +UAC3_CH_TOP_SURR_ARRAY_LEFT = arm64:156 +UAC3_CH_TOP_SURR_ARRAY_RIGHT = arm64:157 +UAC3_CLOCK_MULTIPLIER = arm64:13 +UAC3_CLOCK_SELECTOR = arm64:12 +UAC3_CLOCK_SOURCE = arm64:11 +UAC3_CLOCK_SOURCE_ASYNC = arm64:0 +UAC3_CLOCK_SOURCE_SYNCED_TO_SOF = arm64:2 +UAC3_CLOCK_SOURCE_TYPE_EXT = arm64:0 +UAC3_CLOCK_SOURCE_TYPE_INT = arm64:1 +UAC3_CS_ENDPOINT = arm64:37 +UAC3_EXTENSION_UNIT = arm64:10 +UAC3_FEATURE_UNIT = arm64:7 +UAC3_FUNCTION_AUDIO_VIDEO = arm64:11 +UAC3_FUNCTION_CONTROL_PANEL = arm64:12 +UAC3_FUNCTION_CONVERTER = arm64:6 +UAC3_FUNCTION_DESKTOP_SPEAKER = arm64:1 +UAC3_FUNCTION_GENERIC_SPEAKER = arm64:14 +UAC3_FUNCTION_HEADPHONE = arm64:13 +UAC3_FUNCTION_HEADSET = arm64:4 +UAC3_FUNCTION_HEADSET_ADAPTER = arm64:15 +UAC3_FUNCTION_HOME_THEATER = arm64:2 +UAC3_FUNCTION_IO_BOX = arm64:8 +UAC3_FUNCTION_MICROPHONE = arm64:3 +UAC3_FUNCTION_MUSICAL_INSTRUMENT = arm64:9 +UAC3_FUNCTION_OTHER = arm64:255 +UAC3_FUNCTION_PRO_AUDIO = arm64:10 +UAC3_FUNCTION_SOUND_RECORDER = arm64:7 +UAC3_FUNCTION_SPEAKERPHONE = arm64:16 +UAC3_FUNCTION_SUBCLASS_FULL_ADC_3_0 = arm64:1 +UAC3_FUNCTION_SUBCLASS_GENERIC_IO = arm64:32 +UAC3_FUNCTION_SUBCLASS_HEADPHONE = arm64:33 +UAC3_FUNCTION_SUBCLASS_HEADSET = arm64:36 +UAC3_FUNCTION_SUBCLASS_HEADSET_ADAPTER = arm64:37 +UAC3_FUNCTION_SUBCLASS_MICROPHONE = arm64:35 +UAC3_FUNCTION_SUBCLASS_SPEAKER = arm64:34 +UAC3_FUNCTION_SUBCLASS_SPEAKERPHONE = arm64:38 +UAC3_FUNCTION_SUBCLASS_UNDEFINED = arm64:0 +UAC3_FUNCTION_TELEPHONE = arm64:5 +UAC3_MIXER_UNIT = arm64:5 +UAC3_POWER_DOMAIN = arm64:16 +UAC3_PROCESSING_UNIT = arm64:9 +UAC3_PROCESS_MULTI_FUNCTION = arm64:3 +UAC3_PROCESS_STEREO_EXTENDER = arm64:2 +UAC3_PROCESS_UNDEFINED = arm64:0 +UAC3_PROCESS_UP_DOWNMIX = arm64:1 +UAC3_PURPOSE_AMBIENT = arm64:4 +UAC3_PURPOSE_GENERIC_AUDIO = arm64:1 +UAC3_PURPOSE_NON_AUDIO = arm64:255 +UAC3_PURPOSE_REFERENCE = arm64:5 +UAC3_PURPOSE_SPEECH = arm64:3 +UAC3_PURPOSE_ULTRASONIC = arm64:6 +UAC3_PURPOSE_UNDEFINED = arm64:0 +UAC3_PURPOSE_VIBROKINETIC = arm64:7 +UAC3_PURPOSE_VOICE = arm64:2 +UAC_AS_GENERAL = arm64:1 +UAC_BIDIR_TERMINAL_ECHO_CANCELING = arm64:1029 +UAC_BIDIR_TERMINAL_ECHO_SUPPRESSING = arm64:1028 +UAC_BIDIR_TERMINAL_HANDSET = arm64:1025 +UAC_BIDIR_TERMINAL_HEADSET = arm64:1026 +UAC_BIDIR_TERMINAL_SPEAKER_PHONE = arm64:1027 +UAC_BIDIR_TERMINAL_UNDEFINED = arm64:1024 +UAC_CLOCK_SOURCE_SYNCED_TO_SOF = arm64:4 +UAC_CLOCK_SOURCE_TYPE_EXT = arm64:0 +UAC_CLOCK_SOURCE_TYPE_INT_FIXED = arm64:1 +UAC_CLOCK_SOURCE_TYPE_INT_PROG = arm64:3 +UAC_CLOCK_SOURCE_TYPE_INT_VAR = arm64:2 +UAC_DT_AC_HEADER_LENGTH = arm64:10 +UAC_EP_CS_ATTR_FILL_MAX = arm64:128 +UAC_EP_CS_ATTR_PITCH_CONTROL = arm64:2 +UAC_EP_CS_ATTR_SAMPLE_RATE = arm64:1 +UAC_EP_GENERAL = arm64:1 +UAC_FEATURE_UNIT = arm64:6 +UAC_FORMAT_TYPE = arm64:2 +UAC_FORMAT_TYPE_I = arm64:1 +UAC_FORMAT_TYPE_II = arm64:2 +UAC_FORMAT_TYPE_III = arm64:3 +UAC_FORMAT_TYPE_II_AC3 = arm64:4098 +UAC_FORMAT_TYPE_II_MPEG = arm64:4097 +UAC_FORMAT_TYPE_I_ALAW = arm64:4 +UAC_FORMAT_TYPE_I_IEEE_FLOAT = arm64:3 +UAC_FORMAT_TYPE_I_MULAW = arm64:5 +UAC_FORMAT_TYPE_I_PCM = arm64:1 +UAC_FORMAT_TYPE_I_PCM8 = arm64:2 +UAC_FORMAT_TYPE_I_UNDEFINED = arm64:0 +UAC_FORMAT_TYPE_UNDEFINED = arm64:0 +UAC_FU_AUTOMATIC_GAIN = arm64:7 +UAC_FU_BASS = arm64:3 +UAC_FU_BASS_BOOST = arm64:9 +UAC_FU_DELAY = arm64:8 +UAC_FU_GRAPHIC_EQUALIZER = arm64:6 +UAC_FU_LOUDNESS = arm64:10 +UAC_FU_MID = arm64:4 +UAC_FU_MUTE = arm64:1 +UAC_FU_TREBLE = arm64:5 +UAC_FU_VOLUME = arm64:2 +UAC_GET_CUR = arm64:129 +UAC_GET_MAX = arm64:131 +UAC_GET_MEM = arm64:133 +UAC_GET_MIN = arm64:130 +UAC_GET_RES = arm64:132 +UAC_HEADER = arm64:1 +UAC_INPUT_TERMINAL = arm64:2 +UAC_INPUT_TERMINAL_DESKTOP_MICROPHONE = arm64:514 +UAC_INPUT_TERMINAL_MICROPHONE = arm64:513 +UAC_INPUT_TERMINAL_MICROPHONE_ARRAY = arm64:517 +UAC_INPUT_TERMINAL_OMNI_DIR_MICROPHONE = arm64:516 +UAC_INPUT_TERMINAL_PERSONAL_MICROPHONE = arm64:515 +UAC_INPUT_TERMINAL_PROC_MICROPHONE_ARRAY = arm64:518 +UAC_INPUT_TERMINAL_UNDEFINED = arm64:512 +UAC_MIDI_IN_JACK = arm64:2 +UAC_MIDI_OUT_JACK = arm64:3 +UAC_MIXER_UNIT = arm64:4 +UAC_MS_HEADER = arm64:1 +UAC_OUTPUT_TERMINAL = arm64:3 +UAC_OUTPUT_TERMINAL_COMMUNICATION_SPEAKER = arm64:774 +UAC_OUTPUT_TERMINAL_DESKTOP_SPEAKER = arm64:772 +UAC_OUTPUT_TERMINAL_HEADPHONES = arm64:770 +UAC_OUTPUT_TERMINAL_HEAD_MOUNTED_DISPLAY_AUDIO = arm64:771 +UAC_OUTPUT_TERMINAL_LOW_FREQ_EFFECTS_SPEAKER = arm64:775 +UAC_OUTPUT_TERMINAL_ROOM_SPEAKER = arm64:773 +UAC_OUTPUT_TERMINAL_SPEAKER = arm64:769 +UAC_OUTPUT_TERMINAL_UNDEFINED = arm64:768 +UAC_PROCESS_CHORUS = arm64:5 +UAC_PROCESS_DOLBY_PROLOGIC = arm64:2 +UAC_PROCESS_DYN_RANGE_COMP = arm64:6 +UAC_PROCESS_REVERB = arm64:4 +UAC_PROCESS_STEREO_EXTENDER = arm64:3 +UAC_PROCESS_UNDEFINED = arm64:0 +UAC_PROCESS_UP_DOWNMIX = arm64:1 +UAC_SELECTOR_UNIT = arm64:5 +UAC_TERMINAL_STREAMING = arm64:257 +UAC_TERMINAL_UNDEFINED = arm64:256 +UAC_TERMINAL_VENDOR_SPEC = arm64:511 +UAC_VERSION_1 = arm64:0 +UAC_VERSION_2 = arm64:32 +UAC_VERSION_3 = arm64:48 +USBLP_FIRST_PROTOCOL = arm64:1 +USBLP_LAST_PROTOCOL = arm64:3 +USBLP_REQ_GET_ID = arm64:0 +USBLP_REQ_GET_STATUS = arm64:1 +USBLP_REQ_HP_CHANNEL_CHANGE_REQUEST = arm64:0 +USBLP_REQ_RESET = arm64:2 +USB_5GBPS_OPERATION = arm64:8 +USB_BESL_BASELINE_VALID = arm64:8 +USB_BESL_DEEP_VALID = arm64:16 +USB_BESL_SUPPORT = arm64:4 +USB_CAP_TYPE_EXT = arm64:2 +USB_CAP_TYPE_WIRELESS_USB = arm64:1 +USB_CDC_ACM_TYPE = arm64:2 +USB_CDC_CALL_MANAGEMENT_TYPE = arm64:1 +USB_CDC_CALL_MGMT_CAP_CALL_MGMT = arm64:1 +USB_CDC_CALL_MGMT_CAP_DATA_INTF = arm64:2 +USB_CDC_CAP_BRK = arm64:4 +USB_CDC_CAP_LINE = arm64:2 +USB_CDC_CAP_NOTIFY = arm64:8 +USB_CDC_COMM_FEATURE = arm64:1 +USB_CDC_COUNTRY_TYPE = arm64:7 +USB_CDC_DMM_TYPE = arm64:20 +USB_CDC_ETHERNET_TYPE = arm64:15 +USB_CDC_GET_CRC_MODE = arm64:137 +USB_CDC_GET_ENCAPSULATED_RESPONSE = arm64:1 +USB_CDC_GET_MAX_DATAGRAM_SIZE = arm64:135 +USB_CDC_GET_NTB_FORMAT = arm64:131 +USB_CDC_GET_NTB_INPUT_SIZE = arm64:133 +USB_CDC_GET_NTB_PARAMETERS = arm64:128 +USB_CDC_HEADER_TYPE = arm64:0 +USB_CDC_MBIM_EXTENDED_TYPE = arm64:28 +USB_CDC_MBIM_TYPE = arm64:27 +USB_CDC_MDLM_DETAIL_TYPE = arm64:19 +USB_CDC_MDLM_TYPE = arm64:18 +USB_CDC_NCM_NCAP_CRC_MODE = arm64:16 +USB_CDC_NCM_NCAP_ENCAP_COMMAND = arm64:4 +USB_CDC_NCM_NCAP_ETH_FILTER = arm64:1 +USB_CDC_NCM_NCAP_MAX_DATAGRAM_SIZE = arm64:8 +USB_CDC_NCM_NCAP_NET_ADDRESS = arm64:2 +USB_CDC_NCM_NCAP_NTB_INPUT_SIZE = arm64:32 +USB_CDC_NCM_TYPE = arm64:26 +USB_CDC_NETWORK_TERMINAL_TYPE = arm64:10 +USB_CDC_OBEX_TYPE = arm64:21 +USB_CDC_PROTO_NONE = arm64:0 +USB_CDC_SEND_ENCAPSULATED_COMMAND = arm64:0 +USB_CDC_SUBCLASS_ETHERNET = arm64:6 +USB_CDC_SUBCLASS_NCM = arm64:13 +USB_CDC_UNION_TYPE = arm64:6 +USB_CLASS_AUDIO = arm64:1 +USB_CLASS_COMM = arm64:2 +USB_CLASS_HID = arm64:3 +USB_CLASS_PRINTER = arm64:7 +USB_CLASS_VENDOR_SPEC = arm64:255 +USB_CONFIG_ATT_BATTERY = arm64:16 +USB_CONFIG_ATT_ONE = arm64:128 +USB_CONFIG_ATT_SELFPOWER = arm64:64 +USB_CONFIG_ATT_WAKEUP = arm64:32 +USB_DIR_IN = arm64:128 +USB_DIR_OUT = arm64:0 +USB_DT_BOS = arm64:15 +USB_DT_BOS_SIZE = arm64:5 +USB_DT_CONFIG = arm64:2 +USB_DT_CONFIG_SIZE = arm64:9 +USB_DT_CS_ENDPOINT = arm64:37 +USB_DT_CS_INTERFACE = arm64:36 +USB_DT_CS_RADIO_CONTROL = arm64:35 +USB_DT_DEBUG = arm64:10 +USB_DT_DEVICE = arm64:1 +USB_DT_DEVICE_CAPABILITY = arm64:16 +USB_DT_DEVICE_QUALIFIER = arm64:6 +USB_DT_DEVICE_SIZE = arm64:18 +USB_DT_ENCRYPTION_TYPE = arm64:14 +USB_DT_ENDPOINT = arm64:5 +USB_DT_ENDPOINT_AUDIO_SIZE = arm64:9 +USB_DT_HUB = arm64:41 +USB_DT_INTERFACE = arm64:4 +USB_DT_INTERFACE_ASSOCIATION = arm64:11 +USB_DT_INTERFACE_POWER = arm64:8 +USB_DT_INTERFACE_SIZE = arm64:9 +USB_DT_KEY = arm64:13 +USB_DT_OTG = arm64:9 +USB_DT_OTHER_SPEED_CONFIG = arm64:7 +USB_DT_PIPE_USAGE = arm64:36 +USB_DT_RPIPE = arm64:34 +USB_DT_SECURITY = arm64:12 +USB_DT_SSP_ISOC_ENDPOINT_COMP = arm64:49 +USB_DT_SS_ENDPOINT_COMP = arm64:48 +USB_DT_SS_HUB = arm64:42 +USB_DT_STRING = arm64:3 +USB_DT_WIRELESS_ENDPOINT_COMP = arm64:17 +USB_DT_WIRE_ADAPTER = arm64:33 +USB_ENDPOINT_ATH9K_BULK_ATTRIBUTES = arm64:2 +USB_ENDPOINT_ATH9K_BULK_EXTRA1_ADDRESS = arm64:5 +USB_ENDPOINT_ATH9K_BULK_EXTRA2_ADDRESS = arm64:6 +USB_ENDPOINT_ATH9K_BULK_IN_ADDRESS = arm64:130 +USB_ENDPOINT_ATH9K_BULK_OUT_ADDRESS = arm64:1 +USB_ENDPOINT_ATH9K_INT_ATTRIBUTES = arm64:3 +USB_ENDPOINT_ATH9K_INT_IN_ADDRESS = arm64:131 +USB_ENDPOINT_ATH9K_INT_OUT_ADDRESS = arm64:4 +USB_ENDPOINT_BULK_ATTR = arm64:2 +USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES = arm64:2 +USB_ENDPOINT_CDC_ECM_IN_ADDRESS = arm64:130 +USB_ENDPOINT_CDC_ECM_NOTIFY_ADDRESS = arm64:129 +USB_ENDPOINT_CDC_ECM_NOTIFY_ATTRIBUTES = arm64:3 +USB_ENDPOINT_CDC_ECM_OUT_ADDRESS = arm64:3 +USB_ENDPOINT_HID_ATTRIBUTES = arm64:3 +USB_ENDPOINT_HID_IN_ADDRESS = arm64:129 +USB_ENDPOINT_HID_OUT_ADDRESS = arm64:2 +USB_ENDPOINT_INTR_NOTIFICATION = arm64:16 +USB_ENDPOINT_INTR_PERIODIC = arm64:0 +USB_ENDPOINT_INT_ATTR = arm64:3 +USB_ENDPOINT_PRINTER_ATTRIBUTES = arm64:2 +USB_ENDPOINT_PRINTER_IN_ADDRESS = arm64:130 +USB_ENDPOINT_PRINTER_OUT_ADDRESS = arm64:1 +USB_ENDPOINT_SYNCTYPE = arm64:12 +USB_ENDPOINT_SYNC_ADAPTIVE = arm64:8 +USB_ENDPOINT_SYNC_ASYNC = arm64:4 +USB_ENDPOINT_SYNC_NONE = arm64:0 +USB_ENDPOINT_SYNC_SYNC = arm64:12 +USB_ENDPOINT_UAC1_AS_ATTRIBUTES = arm64:9 +USB_ENDPOINT_UAC1_AS_IN_ADDRESS = arm64:130 +USB_ENDPOINT_UAC1_AS_OUT_ADDRESS = arm64:1 +USB_ENDPOINT_USAGE_DATA = arm64:0 +USB_ENDPOINT_USAGE_FEEDBACK = arm64:16 +USB_ENDPOINT_XFER_BULK = arm64:2 +USB_ENDPOINT_XFER_CONTROL = arm64:0 +USB_ENDPOINT_XFER_INT = arm64:3 +USB_ENDPOINT_XFER_ISOC = arm64:1 +USB_EXT_PORT_STAT_RX_LANES = arm64:3840 +USB_EXT_PORT_STAT_RX_SPEED_ID = arm64:15 +USB_EXT_PORT_STAT_TX_LANES = arm64:61440 +USB_EXT_PORT_STAT_TX_SPEED_ID = arm64:240 +USB_FIXED_ENDPOINT_BULK_IN_ADDR = arm64:129 +USB_FIXED_ENDPOINT_BULK_OUT_ADDR = arm64:2 +USB_FIXED_ENDPOINT_INT_IN_ADDR = arm64:131 +USB_FULL_SPEED_OPERATION = arm64:2 +USB_HIGH_SPEED_OPERATION = arm64:4 +USB_HUB_PORTS_BITS = arm64:4 +USB_INTERFACE_PROTOCOL_KEYBOARD = arm64:1 +USB_INTERFACE_PROTOCOL_MOUSE = arm64:2 +USB_INTERFACE_SUBCLASS_BOOT = arm64:1 +USB_LOW_SPEED_OPERATION = arm64:1 +USB_LPM_SUPPORT = arm64:2 +USB_LTM_SUPPORT = arm64:2 +USB_MS_EMBEDDED = arm64:1 +USB_MS_EXTERNAL = arm64:2 +USB_MS_GENERAL = arm64:1 +USB_PORT_STAT_CONNECTION = arm64:1 +USB_PORT_STAT_C_BH_RESET = arm64:32 +USB_PORT_STAT_C_CONFIG_ERROR = arm64:128 +USB_PORT_STAT_C_CONNECTION = arm64:1 +USB_PORT_STAT_C_ENABLE = arm64:2 +USB_PORT_STAT_C_L1 = arm64:32 +USB_PORT_STAT_C_LINK_STATE = arm64:64 +USB_PORT_STAT_C_OVERCURRENT = arm64:8 +USB_PORT_STAT_C_RESET = arm64:16 +USB_PORT_STAT_C_SUSPEND = arm64:4 +USB_PORT_STAT_ENABLE = arm64:2 +USB_PORT_STAT_HIGH_SPEED = arm64:1024 +USB_PORT_STAT_INDICATOR = arm64:4096 +USB_PORT_STAT_L1 = arm64:32 +USB_PORT_STAT_LINK_STATE = arm64:480 +USB_PORT_STAT_LOW_SPEED = arm64:512 +USB_PORT_STAT_OVERCURRENT = arm64:8 +USB_PORT_STAT_POWER = arm64:256 +USB_PORT_STAT_RESET = arm64:16 +USB_PORT_STAT_SPEED_5GBPS = arm64:0 +USB_PORT_STAT_SUSPEND = arm64:4 +USB_PORT_STAT_TEST = arm64:2048 +USB_PTM_CAP_TYPE = arm64:11 +USB_RECIP_DEVICE = arm64:0 +USB_REQ_CLEAR_FEATURE = arm64:1 +USB_REQ_GET_BATTERY_STATUS = arm64:21 +USB_REQ_GET_CONFIGURATION = arm64:8 +USB_REQ_GET_DESCRIPTOR = arm64:6 +USB_REQ_GET_ENCRYPTION = arm64:14 +USB_REQ_GET_HANDSHAKE = arm64:16 +USB_REQ_GET_INTERFACE = arm64:10 +USB_REQ_GET_PARTNER_PDO = arm64:20 +USB_REQ_GET_SECURITY_DATA = arm64:19 +USB_REQ_GET_STATUS = arm64:0 +USB_REQ_GET_VDM = arm64:23 +USB_REQ_LOOPBACK_DATA_READ = arm64:22 +USB_REQ_LOOPBACK_DATA_WRITE = arm64:21 +USB_REQ_RPIPE_ABORT = arm64:14 +USB_REQ_RPIPE_RESET = arm64:15 +USB_REQ_SEND_VDM = arm64:24 +USB_REQ_SET_ADDRESS = arm64:5 +USB_REQ_SET_CONFIGURATION = arm64:9 +USB_REQ_SET_CONNECTION = arm64:17 +USB_REQ_SET_DESCRIPTOR = arm64:7 +USB_REQ_SET_ENCRYPTION = arm64:13 +USB_REQ_SET_FEATURE = arm64:3 +USB_REQ_SET_HANDSHAKE = arm64:15 +USB_REQ_SET_INTERFACE = arm64:11 +USB_REQ_SET_INTERFACE_DS = arm64:23 +USB_REQ_SET_ISOCH_DELAY = arm64:49 +USB_REQ_SET_PDO = arm64:22 +USB_REQ_SET_SECURITY_DATA = arm64:18 +USB_REQ_SET_SEL = arm64:48 +USB_REQ_SET_WUSB_DATA = arm64:20 +USB_REQ_SYNCH_FRAME = arm64:12 +USB_SPEED_FULL = arm64:2 +USB_SPEED_HIGH = arm64:3 +USB_SPEED_LOW = arm64:1 +USB_SPEED_SUPER = arm64:5 +USB_SPEED_SUPER_PLUS = arm64:6 +USB_SPEED_UNKNOWN = arm64:0 +USB_SPEED_WIRELESS = arm64:4 +USB_SSP_CAP_TYPE = arm64:10 +USB_SSP_MIN_RX_LANE_COUNT = arm64:3840 +USB_SSP_MIN_SUBLINK_SPEED_ATTRIBUTE_ID = arm64:15 +USB_SSP_MIN_TX_LANE_COUNT = arm64:61440 +USB_SSP_SUBLINK_SPEED_LP = arm64:49152 +USB_SSP_SUBLINK_SPEED_LSE = arm64:48 +USB_SSP_SUBLINK_SPEED_LSM = arm64:16711680 +USB_SSP_SUBLINK_SPEED_RSVD = arm64:16128 +USB_SSP_SUBLINK_SPEED_SSID = arm64:15 +USB_SSP_SUBLINK_SPEED_ST = arm64:192 +USB_SS_CAP_TYPE = arm64:3 +USB_SS_PORT_LS_COMP_MOD = arm64:320 +USB_SS_PORT_LS_HOT_RESET = arm64:288 +USB_SS_PORT_LS_LOOPBACK = arm64:352 +USB_SS_PORT_LS_POLLING = arm64:224 +USB_SS_PORT_LS_RECOVERY = arm64:256 +USB_SS_PORT_LS_RX_DETECT = arm64:160 +USB_SS_PORT_LS_SS_DISABLED = arm64:128 +USB_SS_PORT_LS_SS_INACTIVE = arm64:192 +USB_SS_PORT_LS_U0 = arm64:0 +USB_SS_PORT_LS_U1 = arm64:32 +USB_SS_PORT_LS_U2 = arm64:64 +USB_SS_PORT_LS_U3 = arm64:96 +USB_SS_PORT_STAT_POWER = arm64:512 +USB_SS_PORT_STAT_SPEED = arm64:7168 +USB_SUBCLASS_AUDIOCONTROL = arm64:1 +USB_SUBCLASS_AUDIOSTREAMING = arm64:2 +USB_SUBCLASS_MIDISTREAMING = arm64:3 +USB_SUBCLASS_VENDOR_SPEC = arm64:255 +USB_TYPE_CLASS = arm64:32 +USB_TYPE_STANDARD = arm64:0 +USB_TYPE_VENDOR = arm64:64 +USB_VENDOR_REQUEST_GET_STATS = arm64:162 +USB_VENDOR_REQUEST_READ_REGISTER = arm64:161 +USB_VENDOR_REQUEST_WRITE_REGISTER = arm64:160 +USB_WIRELESS_BEACON_DIRECTED = arm64:8 +USB_WIRELESS_BEACON_MASK = arm64:12 +USB_WIRELESS_BEACON_NONE = arm64:12 +USB_WIRELESS_BEACON_SELF = arm64:4 +USB_WIRELESS_P2P_DRD = arm64:2 +USB_WIRELESS_PHY_107 = arm64:4 +USB_WIRELESS_PHY_160 = arm64:8 +USB_WIRELESS_PHY_200 = arm64:16 +USB_WIRELESS_PHY_320 = arm64:32 +USB_WIRELESS_PHY_400 = arm64:64 +USB_WIRELESS_PHY_480 = arm64:128 +USB_WIRELESS_PHY_53 = arm64:1 +USB_WIRELESS_PHY_80 = arm64:2 +WMI_BEACON_SVC = arm64:257 +WMI_CAB_SVC = arm64:258 +WMI_CONTROL_SVC = arm64:256 +WMI_DATA_BE_SVC = arm64:263 +WMI_DATA_VI_SVC = arm64:262 +WMI_DATA_VO_SVC = arm64:261 +WMI_MGMT_SVC = arm64:260 +WMI_UAPSD_SVC = arm64:259