/sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget'/translations/zh_CN/usb/functionfs-descmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/zh_TW/usb/functionfs-descmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/it_IT/usb/functionfs-descmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/ja_JP/usb/functionfs-descmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/ko_KR/usb/functionfs-descmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/pt_BR/usb/functionfs-descmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/sp_SP/usb/functionfs-descmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhsection)}(hhh](htitle)}(hFunctionFS Descriptorsh]hFunctionFS Descriptors}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhA/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc.rsthKubh paragraph)}(hSome of the descriptors that can be written to the FFS gadget are described below. Device and configuration descriptors are handled by the composite gadget and are not written by the user to the FFS gadget.h]hSome of the descriptors that can be written to the FFS gadget are described below. Device and configuration descriptors are handled by the composite gadget and are not written by the user to the FFS gadget.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(h\Descriptors are written to the "ep0" file in the FFS gadget following the descriptor header.h]h`Descriptors are written to the “ep0” file in the FFS gadget following the descriptor header.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(hDescriptors format:h]hDescriptors format:}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhhhhubhtable)}(hhh]htgroup)}(hhh](hcolspec)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhhubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthK uh1jhhubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhhubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthK&uh1jhhubhtbody)}(hhh](hrow)}(hhh](hentry)}(hhh]h)}(hoffh]hoff}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhj8ubah}(h]h ]h"]h$]h&]uh1j6hj3ubj7)}(hhh]h)}(hnameh]hname}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhjIhKhjPubah}(h]h ]h"]h$]h&]uh1j6hj3ubj7)}(hhh]h)}(htypeh]htype}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjIhKhjgubah}(h]h ]h"]h$]h&]uh1j6hj3ubj7)}(hhh]h)}(h descriptionh]h description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjIhKhj~ubah}(h]h ]h"]h$]h&]uh1j6hj3ubeh}(h]h ]h"]h$]h&]uh1j1hj.ubj2)}(hhh](j7)}(hhh]h)}(h0h]h0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hmagich]hmagic}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hLE32h]hLE32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hFUNCTIONFS_DESCRIPTORS_MAGIC_V2h]hFUNCTIONFS_DESCRIPTORS_MAGIC_V2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubeh}(h]h ]h"]h$]h&]uh1j1hj.ubj2)}(hhh](j7)}(hhh]h)}(h4h]h4}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hlengthh]hlength}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hLE32h]hLE32}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj3ubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hlength of the whole data chunkh]hlength of the whole data chunk}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjJubah}(h]h ]h"]h$]h&]uh1j6hjubeh}(h]h ]h"]h$]h&]uh1j1hj.ubj2)}(hhh](j7)}(hhh]h)}(h8h]h8}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhjjubah}(h]h ]h"]h$]h&]uh1j6hjgubj7)}(hhh]h)}(hflagsh]hflags}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj{hKhjubah}(h]h ]h"]h$]h&]uh1j6hjgubj7)}(hhh]h)}(hLE32h]hLE32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj{hKhjubah}(h]h ]h"]h$]h&]uh1j6hjgubj7)}(hhh]h)}(hcombination of functionfs_flagsh]hcombination of functionfs_flags}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj{hKhjubah}(h]h ]h"]h$]h&]uh1j6hjgubeh}(h]h ]h"]h$]h&]uh1j1hj.ubj2)}(hhh](j7)}(hhh]h}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(heventfdh]heventfd}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hLE32h]hLE32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(heventfd file descriptorh]heventfd file descriptor}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubeh}(h]h ]h"]h$]h&]uh1j1hj.ubj2)}(hhh](j7)}(hhh]h}(h]h ]h"]h$]h&]uh1j6hj%ubj7)}(hhh]h)}(hfs_counth]hfs_count}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhj1ubah}(h]h ]h"]h$]h&]uh1j6hj%ubj7)}(hhh]h)}(hLE32h]hLE32}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjBhKhjIubah}(h]h ]h"]h$]h&]uh1j6hj%ubj7)}(hhh]h)}(h number of full-speed descriptorsh]h number of full-speed descriptors}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhjBhKhj`ubah}(h]h ]h"]h$]h&]uh1j6hj%ubeh}(h]h ]h"]h$]h&]uh1j1hj.ubj2)}(hhh](j7)}(hhh]h}(h]h ]h"]h$]h&]uh1j6hj}ubj7)}(hhh]h)}(hhs_counth]hhs_count}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhjubah}(h]h ]h"]h$]h&]uh1j6hj}ubj7)}(hhh]h)}(hLE32h]hLE32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hj}ubj7)}(hhh]h)}(h number of high-speed descriptorsh]h number of high-speed descriptors}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hj}ubeh}(h]h ]h"]h$]h&]uh1j1hj.ubj2)}(hhh](j7)}(hhh]h}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hss_counth]hss_count}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hLE32h]hLE32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(h!number of super-speed descriptorsh]h!number of super-speed descriptors}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubeh}(h]h ]h"]h$]h&]uh1j1hj.ubj2)}(hhh](j7)}(hhh]h}(h]h ]h"]h$]h&]uh1j6hj-ubj7)}(hhh]h)}(hos_counth]hos_count}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhj9ubah}(h]h ]h"]h$]h&]uh1j6hj-ubj7)}(hhh]h)}(hLE32h]hLE32}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhjJhKhjQubah}(h]h ]h"]h$]h&]uh1j6hj-ubj7)}(hhh]h)}(hnumber of MS OS descriptorsh]hnumber of MS OS descriptors}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjJhKhjhubah}(h]h ]h"]h$]h&]uh1j6hj-ubeh}(h]h ]h"]h$]h&]uh1j1hj.ubj2)}(hhh](j7)}(hhh]h}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(h fs_descrsh]h fs_descrs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(h Descriptor[]h]h Descriptor[]}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hlist of full-speed descriptorsh]hlist of full-speed descriptors}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubeh}(h]h ]h"]h$]h&]uh1j1hj.ubj2)}(hhh](j7)}(hhh]h}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(h hs_descrsh]h hs_descrs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(h Descriptor[]h]h Descriptor[]}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hlist of high-speed descriptorsh]hlist of high-speed descriptors}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubeh}(h]h ]h"]h$]h&]uh1j1hj.ubj2)}(hhh](j7)}(hhh]h}(h]h ]h"]h$]h&]uh1j6hj5ubj7)}(hhh]h)}(h ss_descrsh]h ss_descrs}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhjAubah}(h]h ]h"]h$]h&]uh1j6hj5ubj7)}(hhh]h)}(h Descriptor[]h]h Descriptor[]}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjRhKhjYubah}(h]h ]h"]h$]h&]uh1j6hj5ubj7)}(hhh]h)}(hlist of super-speed descriptorsh]hlist of super-speed descriptors}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhjRhKhjpubah}(h]h ]h"]h$]h&]uh1j6hj5ubeh}(h]h ]h"]h$]h&]uh1j1hj.ubj2)}(hhh](j7)}(hhh]h}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(h os_descrsh]h os_descrs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hOSDesc[]h]hOSDesc[]}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hlist of MS OS descriptorsh]hlist of MS OS descriptors}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubeh}(h]h ]h"]h$]h&]uh1j1hj.ubeh}(h]h ]h"]h$]h&]uh1j,hhubeh}(h]h ]h"]h$]h&]colsKuh1hhhubah}(h]h ]h"]h$]h&]uh1hhhhhhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhNubh)}(hDepending on which flags are set, various fields may be missing in the structure. Any flags that are not recognised cause the whole block to be rejected with -ENOSYS.h]hDepending on which flags are set, various fields may be missing in the structure. Any flags that are not recognised cause the whole block to be rejected with -ENOSYS.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhhhhubh)}(h2Legacy descriptors format (deprecated as of 3.14):h]h2Legacy descriptors format (deprecated as of 3.14):}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhhhhubh)}(hhh]h)}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthK uh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthK&uh1jhjubj-)}(hhh](j2)}(hhh](j7)}(hhh]h)}(hoffh]hoff}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhjKubah}(h]h ]h"]h$]h&]uh1j6hjHubj7)}(hhh]h)}(hnameh]hname}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\hKhjcubah}(h]h ]h"]h$]h&]uh1j6hjHubj7)}(hhh]h)}(htypeh]htype}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\hKhjzubah}(h]h ]h"]h$]h&]uh1j6hjHubj7)}(hhh]h)}(h descriptionh]h description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\hKhjubah}(h]h ]h"]h$]h&]uh1j6hjHubeh}(h]h ]h"]h$]h&]uh1j1hjEubj2)}(hhh](j7)}(hhh]h)}(hjh]h0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hmagich]hmagic}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hLE32h]hLE32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hFUNCTIONFS_DESCRIPTORS_MAGICh]hFUNCTIONFS_DESCRIPTORS_MAGIC}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubeh}(h]h ]h"]h$]h&]uh1j1hjEubj2)}(hhh](j7)}(hhh]h)}(hj h]h4}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hlengthh]hlength}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&hKhj-ubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hLE32h]hLE32}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&hKhjDubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hlength of the whole data chunkh]hlength of the whole data chunk}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&hKhj[ubah}(h]h ]h"]h$]h&]uh1j6hjubeh}(h]h ]h"]h$]h&]uh1j1hjEubj2)}(hhh](j7)}(hhh]h)}(hjoh]h8}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhj{ubah}(h]h ]h"]h$]h&]uh1j6hjxubj7)}(hhh]h)}(hfs_counth]hfs_count}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjxubj7)}(hhh]h)}(hLE32h]hLE32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjxubj7)}(hhh]h)}(h number of full-speed descriptorsh]h number of full-speed descriptors}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjxubeh}(h]h ]h"]h$]h&]uh1j1hjEubj2)}(hhh](j7)}(hhh]h)}(h12h]h12}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hhs_counth]hhs_count}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hLE32h]hLE32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(h number of high-speed descriptorsh]h number of high-speed descriptors}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj&ubah}(h]h ]h"]h$]h&]uh1j6hjubeh}(h]h ]h"]h$]h&]uh1j1hjEubj2)}(hhh](j7)}(hhh]h)}(h16h]h16}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhjFubah}(h]h ]h"]h$]h&]uh1j6hjCubj7)}(hhh]h)}(h fs_descrsh]h fs_descrs}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhjWhKhj^ubah}(h]h ]h"]h$]h&]uh1j6hjCubj7)}(hhh]h)}(h Descriptor[]h]h Descriptor[]}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjWhKhjuubah}(h]h ]h"]h$]h&]uh1j6hjCubj7)}(hhh]h)}(hlist of full-speed descriptorsh]hlist of full-speed descriptors}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjWhKhjubah}(h]h ]h"]h$]h&]uh1j6hjCubeh}(h]h ]h"]h$]h&]uh1j1hjEubj2)}(hhh](j7)}(hhh]h}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(h hs_descrsh]h hs_descrs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(h Descriptor[]h]h Descriptor[]}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hlist of high-speed descriptorsh]hlist of high-speed descriptors}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubeh}(h]h ]h"]h$]h&]uh1j1hjEubeh}(h]h ]h"]h$]h&]uh1j,hjubeh}(h]h ]h"]h$]h&]colsKuh1hhjubah}(h]h ]h"]h$]h&]uh1hhhhhhjhNubh)}(h+All numbers must be in little endian order.h]h+All numbers must be in little endian order.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhhhhubh)}(hRDescriptor[] is an array of valid USB descriptors which have the following format:h]hRDescriptor[] is an array of valid USB descriptors which have the following format:}(hj# hhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhhhhubh)}(hhh]h)}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj5 ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj5 ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj5 ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj5 ubj-)}(hhh](j2)}(hhh](j7)}(hhh]h)}(hoffh]hoff}(hji hhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhjf ubah}(h]h ]h"]h$]h&]uh1j6hjc ubj7)}(hhh]h)}(hnameh]hname}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjw hKhj~ ubah}(h]h ]h"]h$]h&]uh1j6hjc ubj7)}(hhh]h)}(htypeh]htype}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjw hKhj ubah}(h]h ]h"]h$]h&]uh1j6hjc ubj7)}(hhh]h)}(h descriptionh]h description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjw hKhj ubah}(h]h ]h"]h$]h&]uh1j6hjc ubeh}(h]h ]h"]h$]h&]uh1j1hj` ubj2)}(hhh](j7)}(hhh]h)}(hjh]h0}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhj ubah}(h]h ]h"]h$]h&]uh1j6hj ubj7)}(hhh]h)}(hbLengthh]hbLength}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1j6hj ubj7)}(hhh]h)}(hU8h]hU8}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1j6hj ubj7)}(hhh]h)}(hlength of the descriptorh]hlength of the descriptor}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1j6hj ubeh}(h]h ]h"]h$]h&]uh1j1hj` ubj2)}(hhh](j7)}(hhh]h)}(h1h]h1}(hj4 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhj1 ubah}(h]h ]h"]h$]h&]uh1j6hj. ubj7)}(hhh]h)}(hbDescriptorTypeh]hbDescriptorType}(hjL hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjB hKhjI ubah}(h]h ]h"]h$]h&]uh1j6hj. ubj7)}(hhh]h)}(hU8h]hU8}(hjc hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjB hKhj` ubah}(h]h ]h"]h$]h&]uh1j6hj. ubj7)}(hhh]h)}(hdescriptor typeh]hdescriptor type}(hjz hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjB hKhjw ubah}(h]h ]h"]h$]h&]uh1j6hj. ubeh}(h]h ]h"]h$]h&]uh1j1hj` ubj2)}(hhh](j7)}(hhh]h)}(h2h]h2}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhj ubah}(h]h ]h"]h$]h&]uh1j6hj ubj7)}(hhh]h)}(hpayloadh]hpayload}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1j6hj ubj7)}(hhh]h}(h]h ]h"]h$]h&]uh1j6hj ubj7)}(hhh]h)}(hdescriptor's payloadh]hdescriptor’s payload}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1j6hj ubeh}(h]h ]h"]h$]h&]uh1j1hj` ubeh}(h]h ]h"]h$]h&]uh1j,hj5 ubeh}(h]h ]h"]h$]h&]colsKuh1hhj2 ubah}(h]h ]h"]h$]h&]uh1hhhhhhjhNubh)}(h`OSDesc[] is an array of valid MS OS Feature Descriptors which have one of the following formats:h]h`OSDesc[] is an array of valid MS OS Feature Descriptors which have one of the following formats:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhhhhubh)}(hhh]h)}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj ubj-)}(hhh](j2)}(hhh](j7)}(hhh]h)}(hoffh]hoff}(hjE hhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhjB ubah}(h]h ]h"]h$]h&]uh1j6hj? ubj7)}(hhh]h)}(hnameh]hname}(hj] hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjS hKhjZ ubah}(h]h ]h"]h$]h&]uh1j6hj? ubj7)}(hhh]h)}(htypeh]htype}(hjt hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjS hKhjq ubah}(h]h ]h"]h$]h&]uh1j6hj? ubj7)}(hhh]h)}(h descriptionh]h description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjS hKhj ubah}(h]h ]h"]h$]h&]uh1j6hj? ubeh}(h]h ]h"]h$]h&]uh1j1hj< ubj2)}(hhh](j7)}(hhh]h)}(hjh]h0}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhj ubah}(h]h ]h"]h$]h&]uh1j6hj ubj7)}(hhh]h)}(h interfaceh]h interface}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1j6hj ubj7)}(hhh]h)}(hU8h]hU8}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1j6hj ubj7)}(hhh]h)}(hrelated interface numberh]hrelated interface number}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1j6hj ubeh}(h]h ]h"]h$]h&]uh1j1hj< ubj2)}(hhh](j7)}(hhh]h)}(hj6 h]h1}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhj ubah}(h]h ]h"]h$]h&]uh1j6hj ubj7)}(hhh]h)}(hdwLengthh]hdwLength}(hj' hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj$ ubah}(h]h ]h"]h$]h&]uh1j6hj ubj7)}(hhh]h)}(hU32h]hU32}(hj> hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj; ubah}(h]h ]h"]h$]h&]uh1j6hj ubj7)}(hhh]h)}(hlength of the descriptorh]hlength of the descriptor}(hjU hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhjR ubah}(h]h ]h"]h$]h&]uh1j6hj ubeh}(h]h ]h"]h$]h&]uh1j1hj< ubj2)}(hhh](j7)}(hhh]h)}(h5h]h5}(hju hhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhjr ubah}(h]h ]h"]h$]h&]uh1j6hjo ubj7)}(hhh]h)}(h bcdVersionh]h bcdVersion}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1j6hjo ubj7)}(hhh]h)}(hU16h]hU16}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1j6hjo ubj7)}(hhh]h)}(hcurrently supported: 1h]hcurrently supported: 1}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1j6hjo ubeh}(h]h ]h"]h$]h&]uh1j1hj< ubj2)}(hhh](j7)}(hhh]h)}(h7h]h7}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhj ubah}(h]h ]h"]h$]h&]uh1j6hj ubj7)}(hhh]h)}(hwIndexh]hwIndex}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1j6hj ubj7)}(hhh]h)}(hU16h]hU16}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1j6hj ubj7)}(hhh]h)}(hcurrently supported: 4h]hcurrently supported: 4}(hj! hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1j6hj ubeh}(h]h ]h"]h$]h&]uh1j1hj< ubj2)}(hhh](j7)}(hhh]h)}(h9h]h9}(hjA hhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhj> ubah}(h]h ]h"]h$]h&]uh1j6hj; ubj7)}(hhh]h)}(hbCounth]hbCount}(hjY hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjO hKhjV ubah}(h]h ]h"]h$]h&]uh1j6hj; ubj7)}(hhh]h)}(hU8h]hU8}(hjp hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjO hKhjm ubah}(h]h ]h"]h$]h&]uh1j6hj; ubj7)}(hhh]h)}(hnumber of ext. compat.h]hnumber of ext. compat.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjO hKhj ubah}(h]h ]h"]h$]h&]uh1j6hj; ubeh}(h]h ]h"]h$]h&]uh1j1hj< ubj2)}(hhh](j7)}(hhh]h)}(h10h]h10}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhj ubah}(h]h ]h"]h$]h&]uh1j6hj ubj7)}(hhh]h)}(hReservedh]hReserved}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1j6hj ubj7)}(hhh]h)}(hU8h]hU8}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1j6hj ubj7)}(hhh]h)}(hjh]h0}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1j6hj ubeh}(h]h ]h"]h$]h&]uh1j1hj< ubj2)}(hhh](j7)}(hhh]h)}(h11h]h11}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhj ubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(h ExtCompat[]h]h ExtCompat[]}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj!ubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hlist of ext. compat. d.h]hlist of ext. compat. d.}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjAubah}(h]h ]h"]h$]h&]uh1j6hjubeh}(h]h ]h"]h$]h&]uh1j1hj< ubeh}(h]h ]h"]h$]h&]uh1j,hj ubeh}(h]h ]h"]h$]h&]colsKuh1hhj ubah}(h]h ]h"]h$]h&]uh1hhhhhhjhNubh)}(hhh]h)}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjtubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjtubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjtubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjtubj-)}(hhh](j2)}(hhh](j7)}(hhh]h)}(hoffh]hoff}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hnameh]hname}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(htypeh]htype}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(h descriptionh]h description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubeh}(h]h ]h"]h$]h&]uh1j1hjubj2)}(hhh](j7)}(hhh]h)}(hjh]h0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhj ubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(h interfaceh]h interface}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj"ubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hU8h]hU8}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj9ubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hrelated interface numberh]hrelated interface number}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjPubah}(h]h ]h"]h$]h&]uh1j6hjubeh}(h]h ]h"]h$]h&]uh1j1hjubj2)}(hhh](j7)}(hhh]h)}(hj6 h]h1}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhjpubah}(h]h ]h"]h$]h&]uh1j6hjmubj7)}(hhh]h)}(hdwLengthh]hdwLength}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjmubj7)}(hhh]h)}(hU32h]hU32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjmubj7)}(hhh]h)}(hlength of the descriptorh]hlength of the descriptor}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjmubeh}(h]h ]h"]h$]h&]uh1j1hjubj2)}(hhh](j7)}(hhh]h)}(hjw h]h5}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(h bcdVersionh]h bcdVersion}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hU16h]hU16}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hcurrently supported: 1h]hcurrently supported: 1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubeh}(h]h ]h"]h$]h&]uh1j1hjubj2)}(hhh](j7)}(hhh]h)}(hj h]h7}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhj:ubah}(h]h ]h"]h$]h&]uh1j6hj7ubj7)}(hhh]h)}(hwIndexh]hwIndex}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhjJhKhjQubah}(h]h ]h"]h$]h&]uh1j6hj7ubj7)}(hhh]h)}(hU16h]hU16}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjJhKhjhubah}(h]h ]h"]h$]h&]uh1j6hj7ubj7)}(hhh]h)}(hcurrently supported: 5h]hcurrently supported: 5}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjJhKhjubah}(h]h ]h"]h$]h&]uh1j6hj7ubeh}(h]h ]h"]h$]h&]uh1j1hjubj2)}(hhh](j7)}(hhh]h)}(hjC h]h9}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hwCounth]hwCount}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hU16h]hU16}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hnumber of ext. compat.h]hnumber of ext. compat.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubeh}(h]h ]h"]h$]h&]uh1j1hjubj2)}(hhh](j7)}(hhh]h)}(h11h]h11}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(h ExtProp[]h]h ExtProp[]}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hlist of ext. prop. d.h]hlist of ext. prop. d.}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj<ubah}(h]h ]h"]h$]h&]uh1j6hjubeh}(h]h ]h"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]uh1j,hjtubeh}(h]h ]h"]h$]h&]colsKuh1hhjqubah}(h]h ]h"]h$]h&]uh1hhhhhhjhNubh)}(hdExtCompat[] is an array of valid Extended Compatibility descriptors which have the following format:h]hdExtCompat[] is an array of valid Extended Compatibility descriptors which have the following format:}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhhhhubh)}(hhh]h)}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj~ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj~ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj~ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthK%uh1jhj~ubj-)}(hhh](j2)}(hhh](j7)}(hhh]h)}(hoffh]hoff}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hnameh]hname}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(htypeh]htype}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(h descriptionh]h description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubeh}(h]h ]h"]h$]h&]uh1j1hjubj2)}(hhh](j7)}(hhh]h)}(hjh]h0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hbFirstInterfaceNumberh]hbFirstInterfaceNumber}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%hKhj,ubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hU8h]hU8}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%hKhjCubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(h$index of the interface or of the 1sth]h$index of the interface or of the 1st}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%hKhjZubah}(h]h ]h"]h$]h&]uh1j6hjubeh}(h]h ]h"]h$]h&]uh1j1hjubj2)}(hhh](j7)}(hhh]h}(h]h ]h"]h$]h&]uh1j6hjwubj7)}(hhh]h}(h]h ]h"]h$]h&]uh1j6hjwubj7)}(hhh]h}(h]h ]h"]h$]h&]uh1j6hjwubj7)}(hhh]h)}(hinterface in an IAD grouph]hinterface in an IAD group}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhjubah}(h]h ]h"]h$]h&]uh1j6hjwubeh}(h]h ]h"]h$]h&]uh1j1hjubj2)}(hhh](j7)}(hhh]h)}(hj6 h]h1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hReservedh]hReserved}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hU8h]hU8}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hj6 h]h1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubeh}(h]h ]h"]h$]h&]uh1j1hjubj2)}(hhh](j7)}(hhh]h)}(hj h]h2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(h CompatibleIDh]h CompatibleID}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*hKhj1ubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hU8[8]h]hU8[8]}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*hKhjHubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hcompatible ID stringh]hcompatible ID string}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*hKhj_ubah}(h]h ]h"]h$]h&]uh1j6hjubeh}(h]h ]h"]h$]h&]uh1j1hjubj2)}(hhh](j7)}(hhh]h)}(h10h]h10}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhjubah}(h]h ]h"]h$]h&]uh1j6hj|ubj7)}(hhh]h)}(hSubCompatibleIDh]hSubCompatibleID}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hj|ubj7)}(hhh]h)}(hU8[8]h]hU8[8]}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hj|ubj7)}(hhh]h)}(hsubcompatible ID stringh]hsubcompatible ID string}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hj|ubeh}(h]h ]h"]h$]h&]uh1j1hjubj2)}(hhh](j7)}(hhh]h)}(h18h]h18}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hReservedh]hReserved}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hU8[6]h]hU8[6]}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hjh]h0}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj+ubah}(h]h ]h"]h$]h&]uh1j6hjubeh}(h]h ]h"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]uh1j,hj~ubeh}(h]h ]h"]h$]h&]colsKuh1hhj{ubah}(h]h ]h"]h$]h&]uh1hhhhhhjhNubh)}(h_ExtProp[] is an array of valid Extended Properties descriptors which have the following format:h]h_ExtProp[] is an array of valid Extended Properties descriptors which have the following format:}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhMhhhhubh)}(hhh]h)}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjlubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjlubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjlubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthK%uh1jhjlubj-)}(hhh](j2)}(hhh](j7)}(hhh]h)}(hoffh]hoff}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhMhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hnameh]hname}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(htypeh]htype}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(h descriptionh]h description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j6hjubeh}(h]h ]h"]h$]h&]uh1j1hjubj2)}(hhh](j7)}(hhh]h)}(hjh]h0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhMhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hdwSizeh]hdwSize}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hU32h]hU32}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhj1ubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hlength of the descriptorh]hlength of the descriptor}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjHubah}(h]h ]h"]h$]h&]uh1j6hjubeh}(h]h ]h"]h$]h&]uh1j1hjubj2)}(hhh](j7)}(hhh]h)}(hj h]h4}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhM hjhubah}(h]h ]h"]h$]h&]uh1j6hjeubj7)}(hhh]h)}(hdwPropertyDataTypeh]hdwPropertyDataType}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjxhM hjubah}(h]h ]h"]h$]h&]uh1j6hjeubj7)}(hhh]h)}(hU32h]hU32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjxhM hjubah}(h]h ]h"]h$]h&]uh1j6hjeubj7)}(hhh]h)}(h1..7h]h1..7}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjxhM hjubah}(h]h ]h"]h$]h&]uh1j6hjeubeh}(h]h ]h"]h$]h&]uh1j1hjubj2)}(hhh](j7)}(hhh]h)}(hjoh]h8}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhM hjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hwPropertyNameLengthh]hwPropertyNameLength}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM hjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hU16h]hU16}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM hjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hbPropertyName length (NL)h]hbPropertyName length (NL)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM hjubah}(h]h ]h"]h$]h&]uh1j6hjubeh}(h]h ]h"]h$]h&]uh1j1hjubj2)}(hhh](j7)}(hhh]h)}(h10h]h10}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhM hj2ubah}(h]h ]h"]h$]h&]uh1j6hj/ubj7)}(hhh]h)}(h bPropertyNameh]h bPropertyName}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjChM hjJubah}(h]h ]h"]h$]h&]uh1j6hj/ubj7)}(hhh]h)}(hU8[NL]h]hU8[NL]}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjChM hjaubah}(h]h ]h"]h$]h&]uh1j6hj/ubj7)}(hhh]h)}(hname of this propertyh]hname of this property}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjChM hjxubah}(h]h ]h"]h$]h&]uh1j6hj/ubeh}(h]h ]h"]h$]h&]uh1j1hjubj2)}(hhh](j7)}(hhh]h)}(h10+NLh]h10+NL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhMhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hdwPropertyDataLengthh]hdwPropertyDataLength}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hU32h]hU32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hbPropertyData length (DL)h]hbPropertyData length (DL)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j6hjubeh}(h]h ]h"]h$]h&]uh1j1hjubj2)}(hhh](j7)}(hhh]h)}(h14+NLh]h14+NL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhMhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(h bPropertyh]h bProperty}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hU8[DL]h]hU8[DL]}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhj-ubah}(h]h ]h"]h$]h&]uh1j6hjubj7)}(hhh]h)}(hpayload of this propertyh]hpayload of this property}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjDubah}(h]h ]h"]h$]h&]uh1j6hjubeh}(h]h ]h"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]uh1j,hjlubeh}(h]h ]h"]h$]h&]colsKuh1hhjiubah}(h]h ]h"]h$]h&]uh1hhhhhhjhNubh)}(hhh](h)}(hInterface Descriptorsh]hInterface Descriptors}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjthhhhhKubh)}(hStandard USB interface descriptors may be written. The class/subclass of the most recent interface descriptor determines what type of class-specific descriptors are accepted.h]hStandard USB interface descriptors may be written. The class/subclass of the most recent interface descriptor determines what type of class-specific descriptors are accepted.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjthhubeh}(h]interface-descriptorsah ]h"]interface descriptorsah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hClass-Specific Descriptorsh]hClass-Specific Descriptors}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hClass-specific descriptors are accepted only for the class/subclass of the most recent interface descriptor. The following are some of the class-specific descriptors that are supported.h]hClass-specific descriptors are accepted only for the class/subclass of the most recent interface descriptor. The following are some of the class-specific descriptors that are supported.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hhh](h)}(hDFU Functional Descriptorh]hDFU Functional Descriptor}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hXWhen the interface class is USB_CLASS_APP_SPEC and the interface subclass is USB_SUBCLASS_DFU, a DFU functional descriptor can be provided. The DFU functional descriptor is a described in the USB specification for Device Firmware Upgrade (DFU), version 1.1 as of this writing.h]hXWhen the interface class is USB_CLASS_APP_SPEC and the interface subclass is USB_SUBCLASS_DFU, a DFU functional descriptor can be provided. The DFU functional descriptor is a described in the USB specification for Device Firmware Upgrade (DFU), version 1.1 as of this writing.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK!hjhhubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](single(usb_dfu_functional_descriptor (C struct)c.usb_dfu_functional_descriptorhNtauh1jhjhhhNhNubhdesc)}(hhh](hdesc_signature)}(husb_dfu_functional_descriptorh]hdesc_signature_line)}(h$struct usb_dfu_functional_descriptorh](hdesc_sig_keyword)}(hstructh]hstruct}(hjhhhNhNubah}(h]h ]kah"]h$]h&]uh1jhjhhhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:38: ./include/uapi/linux/usb/functionfs.hhKubhdesc_sig_space)}(h h]h }(hjhhhNhNubah}(h]h ]wah"]h$]h&]uh1j hjhhhj hKubh desc_name)}(husb_dfu_functional_descriptorh]h desc_sig_name)}(hjh]husb_dfu_functional_descriptor}(hj&hhhNhNubah}(h]h ]nah"]h$]h&]uh1j$hj ubah}(h]h ](sig-namedescnameeh"]h$]h&] xml:spacepreserveuh1jhjhhhj hKubeh}(h]h ]h"]h$]h&]j<j= add_permalinkuh1jsphinx_line_type declaratorhjhhhj hKubah}(h]jah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1jhj hKhjhhubh desc_content)}(hhh]h)}(hDFU Functional descriptorh]hDFU Functional descriptor}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:38: ./include/uapi/linux/usb/functionfs.hhK*hjThhubah}(h]h ]h"]h$]h&]uh1jRhjhhhj hKubeh}(h]h ](cstructeh"]h$]h&]domainjoobjtypejpdesctypejpnoindex noindexentrynocontentsentryuh1jhhhjhNhNubh container)}(hX'**Definition**:: struct usb_dfu_functional_descriptor { __u8 bLength; __u8 bDescriptorType; __u8 bmAttributes; __le16 wDetachTimeOut; __le16 wTransferSize; __le16 bcdDFUVersion; }; **Members** ``bLength`` Size of the descriptor (bytes) ``bDescriptorType`` USB_DT_DFU_FUNCTIONAL ``bmAttributes`` DFU attributes ``wDetachTimeOut`` Maximum time to wait after DFU_DETACH (ms, le16) ``wTransferSize`` Maximum number of bytes per control-write (le16) ``bcdDFUVersion`` DFU Spec version (BCD, le16)h](h)}(h**Definition**::h](hstrong)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:38: ./include/uapi/linux/usb/functionfs.hhK.hj|ubh literal_block)}(hstruct usb_dfu_functional_descriptor { __u8 bLength; __u8 bDescriptorType; __u8 bmAttributes; __le16 wDetachTimeOut; __le16 wTransferSize; __le16 bcdDFUVersion; };h]hstruct usb_dfu_functional_descriptor { __u8 bLength; __u8 bDescriptorType; __u8 bmAttributes; __le16 wDetachTimeOut; __le16 wTransferSize; __le16 bcdDFUVersion; };}hjsbah}(h]h ]h"]h$]h&]j<j=uh1jhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:38: ./include/uapi/linux/usb/functionfs.hhK0hj|ubh)}(h **Members**h]j)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:38: ./include/uapi/linux/usb/functionfs.hhK9hj|ubhdefinition_list)}(hhh](hdefinition_list_item)}(h+``bLength`` Size of the descriptor (bytes) h](hterm)}(h ``bLength``h]hliteral)}(hjh]hbLength}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:38: ./include/uapi/linux/usb/functionfs.hhK,hjubh definition)}(hhh]h)}(hSize of the descriptor (bytes)h]hSize of the descriptor (bytes)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK,hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK,hjubj)}(h*``bDescriptorType`` USB_DT_DFU_FUNCTIONAL h](j)}(h``bDescriptorType``h]j)}(hjh]hbDescriptorType}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:38: ./include/uapi/linux/usb/functionfs.hhK-hjubj)}(hhh]h)}(hUSB_DT_DFU_FUNCTIONALh]hUSB_DT_DFU_FUNCTIONAL}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj)hK-hj*ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj)hK-hjubj)}(h ``bmAttributes`` DFU attributes h](j)}(h``bmAttributes``h]j)}(hjMh]h bmAttributes}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:38: ./include/uapi/linux/usb/functionfs.hhK.hjGubj)}(hhh]h)}(hDFU attributesh]hDFU attributes}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjbhK.hjcubah}(h]h ]h"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]uh1jhjbhK.hjubj)}(hD``wDetachTimeOut`` Maximum time to wait after DFU_DETACH (ms, le16) h](j)}(h``wDetachTimeOut``h]j)}(hjh]hwDetachTimeOut}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:38: ./include/uapi/linux/usb/functionfs.hhK/hjubj)}(hhh]h)}(h0Maximum time to wait after DFU_DETACH (ms, le16)h]h0Maximum time to wait after DFU_DETACH (ms, le16)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK/hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK/hjubj)}(hC``wTransferSize`` Maximum number of bytes per control-write (le16) h](j)}(h``wTransferSize``h]j)}(hjh]h wTransferSize}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:38: ./include/uapi/linux/usb/functionfs.hhK0hjubj)}(hhh]h)}(h0Maximum number of bytes per control-write (le16)h]h0Maximum number of bytes per control-write (le16)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK0hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK0hjubj)}(h.``bcdDFUVersion`` DFU Spec version (BCD, le16)h](j)}(h``bcdDFUVersion``h]j)}(hjh]h bcdDFUVersion}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:38: ./include/uapi/linux/usb/functionfs.hhK0hjubj)}(hhh]h)}(hDFU Spec version (BCD, le16)h]hDFU Spec version (BCD, le16)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:38: ./include/uapi/linux/usb/functionfs.hhK1hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hK0hjubeh}(h]h ]h"]h$]h&]uh1jhj|ubeh}(h]h ] kernelindentah"]h$]h&]uh1jzhjhhhNhNubeh}(h]dfu-functional-descriptorah ]h"]dfu functional descriptorah$]h&]uh1hhjhhhhhKubeh}(h]class-specific-descriptorsah ]h"]class-specific descriptorsah$]h&]uh1hhhhhhhhKubeh}(h]functionfs-descriptorsah ]h"]functionfs descriptorsah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksj6footnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjserror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourcehʌ _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confacfile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(jNjKjjjFjCj>j;u nametypes}(jNjjFj>uh}(jKhjjtjCjj;jjju footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.