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]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&]colwidthKuh1hhhubh)}(hhh]h}(h]h ]h"]h$]h&]colwidthK uh1hhhubh)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1hhhubh)}(hhh]h}(h]h ]h"]h$]h&]colwidthK&uh1hhhubhtbody)}(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.hhKhj$ubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(hnameh]hname}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5hKhj<ubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(htypeh]htype}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5hKhjSubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(h descriptionh]h description}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5hKhjjubah}(h]h ]h"]h$]h&]uh1j"hjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j#)}(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&]uh1j"hjubj#)}(hhh]h)}(hmagich]hmagic}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(hLE32h]hLE32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(hFUNCTIONFS_DESCRIPTORS_MAGIC_V2h]hFUNCTIONFS_DESCRIPTORS_MAGIC_V2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j#)}(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&]uh1j"hjubj#)}(hhh]h)}(hlengthh]hlength}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(hLE32h]hLE32}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(hlength of the whole data chunkh]hlength of the whole data chunk}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj6ubah}(h]h ]h"]h$]h&]uh1j"hjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j#)}(hhh]h)}(h8h]h8}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhjVubah}(h]h ]h"]h$]h&]uh1j"hjSubj#)}(hhh]h)}(hflagsh]hflags}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjghKhjnubah}(h]h ]h"]h$]h&]uh1j"hjSubj#)}(hhh]h)}(hLE32h]hLE32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjghKhjubah}(h]h ]h"]h$]h&]uh1j"hjSubj#)}(hhh]h)}(hcombination of functionfs_flagsh]hcombination of functionfs_flags}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjghKhjubah}(h]h ]h"]h$]h&]uh1j"hjSubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j#)}(hhh]h}(h]h ]h"]h$]h&]uh1j"hjubj#)}(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&]uh1j"hjubj#)}(hhh]h)}(hLE32h]hLE32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(heventfd file descriptorh]heventfd file descriptor}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j#)}(hhh]h}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(hfs_counth]hfs_count}(hj hhhNhNubah}(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&]uh1j"hjubj#)}(hhh]h)}(hLE32h]hLE32}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj.hKhj5ubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(h number of full-speed descriptorsh]h number of full-speed descriptors}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj.hKhjLubah}(h]h ]h"]h$]h&]uh1j"hjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j#)}(hhh]h}(h]h ]h"]h$]h&]uh1j"hjiubj#)}(hhh]h)}(hhs_counth]hhs_count}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhjuubah}(h]h ]h"]h$]h&]uh1j"hjiubj#)}(hhh]h)}(hLE32h]hLE32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjiubj#)}(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&]uh1j"hjiubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j#)}(hhh]h}(h]h ]h"]h$]h&]uh1j"hjubj#)}(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&]uh1j"hjubj#)}(hhh]h)}(hLE32h]hLE32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(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&]uh1j"hjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j#)}(hhh]h}(h]h ]h"]h$]h&]uh1j"hjubj#)}(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.hhKhj%ubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(hLE32h]hLE32}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6hKhj=ubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(hnumber of MS OS descriptorsh]hnumber of MS OS descriptors}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6hKhjTubah}(h]h ]h"]h$]h&]uh1j"hjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j#)}(hhh]h}(h]h ]h"]h$]h&]uh1j"hjqubj#)}(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.hhKhj}ubah}(h]h ]h"]h$]h&]uh1j"hjqubj#)}(hhh]h)}(h Descriptor[]h]h Descriptor[]}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjqubj#)}(hhh]h)}(hlist of full-speed descriptorsh]hlist of full-speed descriptors}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjqubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j#)}(hhh]h}(h]h ]h"]h$]h&]uh1j"hjubj#)}(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&]uh1j"hjubj#)}(hhh]h)}(h Descriptor[]h]h Descriptor[]}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(hlist of high-speed descriptorsh]hlist of high-speed descriptors}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j#)}(hhh]h}(h]h ]h"]h$]h&]uh1j"hj!ubj#)}(hhh]h)}(h ss_descrsh]h ss_descrs}(hj0hhhNhNubah}(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&]uh1j"hj!ubj#)}(hhh]h)}(h Descriptor[]h]h Descriptor[]}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj>hKhjEubah}(h]h ]h"]h$]h&]uh1j"hj!ubj#)}(hhh]h)}(hlist of super-speed descriptorsh]hlist of super-speed descriptors}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj>hKhj\ubah}(h]h ]h"]h$]h&]uh1j"hj!ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j#)}(hhh]h}(h]h ]h"]h$]h&]uh1j"hjyubj#)}(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&]uh1j"hjyubj#)}(hhh]h)}(hOSDesc[]h]hOSDesc[]}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjyubj#)}(hhh]h)}(hlist of MS OS descriptorsh]hlist of MS OS descriptors}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjyubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhhubeh}(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](h)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1hhjubh)}(hhh]h}(h]h ]h"]h$]h&]colwidthK uh1hhjubh)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1hhjubh)}(hhh]h}(h]h ]h"]h$]h&]colwidthK&uh1hhjubj)}(hhh](j)}(hhh](j#)}(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.hhKhj7ubah}(h]h ]h"]h$]h&]uh1j"hj4ubj#)}(hhh]h)}(hnameh]hname}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHhKhjOubah}(h]h ]h"]h$]h&]uh1j"hj4ubj#)}(hhh]h)}(htypeh]htype}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHhKhjfubah}(h]h ]h"]h$]h&]uh1j"hj4ubj#)}(hhh]h)}(h descriptionh]h description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHhKhj}ubah}(h]h ]h"]h$]h&]uh1j"hj4ubeh}(h]h ]h"]h$]h&]uh1jhj1ubj)}(hhh](j#)}(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&]uh1j"hjubj#)}(hhh]h)}(hmagich]hmagic}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(hLE32h]hLE32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(hFUNCTIONFS_DESCRIPTORS_MAGICh]hFUNCTIONFS_DESCRIPTORS_MAGIC}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjubeh}(h]h ]h"]h$]h&]uh1jhj1ubj)}(hhh](j#)}(hhh]h)}(hjh]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&]uh1j"hjubj#)}(hhh]h)}(hlengthh]hlength}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(hLE32h]hLE32}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj0ubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(hlength of the whole data chunkh]hlength of the whole data chunk}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjGubah}(h]h ]h"]h$]h&]uh1j"hjubeh}(h]h ]h"]h$]h&]uh1jhj1ubj)}(hhh](j#)}(hhh]h)}(hj[h]h8}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhjgubah}(h]h ]h"]h$]h&]uh1j"hjdubj#)}(hhh]h)}(hfs_counth]hfs_count}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjwhKhj~ubah}(h]h ]h"]h$]h&]uh1j"hjdubj#)}(hhh]h)}(hLE32h]hLE32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjwhKhjubah}(h]h ]h"]h$]h&]uh1j"hjdubj#)}(hhh]h)}(h number of full-speed descriptorsh]h number of full-speed descriptors}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjwhKhjubah}(h]h ]h"]h$]h&]uh1j"hjdubeh}(h]h ]h"]h$]h&]uh1jhj1ubj)}(hhh](j#)}(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&]uh1j"hjubj#)}(hhh]h)}(hhs_counth]hhs_count}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(hLE32h]hLE32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(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&]uh1j"hjubeh}(h]h ]h"]h$]h&]uh1jhj1ubj)}(hhh](j#)}(hhh]h)}(h16h]h16}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhKhj2ubah}(h]h ]h"]h$]h&]uh1j"hj/ubj#)}(hhh]h)}(h fs_descrsh]h fs_descrs}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjChKhjJubah}(h]h ]h"]h$]h&]uh1j"hj/ubj#)}(hhh]h)}(h Descriptor[]h]h Descriptor[]}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjChKhjaubah}(h]h ]h"]h$]h&]uh1j"hj/ubj#)}(hhh]h)}(hlist of full-speed descriptorsh]hlist of full-speed descriptors}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjChKhjxubah}(h]h ]h"]h$]h&]uh1j"hj/ubeh}(h]h ]h"]h$]h&]uh1jhj1ubj)}(hhh](j#)}(hhh]h}(h]h ]h"]h$]h&]uh1j"hjubj#)}(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&]uh1j"hjubj#)}(hhh]h)}(h Descriptor[]h]h Descriptor[]}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(hlist of high-speed descriptorsh]hlist of high-speed descriptors}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjubeh}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(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](h)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1hhj! ubh)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1hhj! ubh)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1hhj! ubh)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1hhj! ubj)}(hhh](j)}(hhh](j#)}(hhh]h)}(hoffh]hoff}(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&]uh1j"hjO ubj#)}(hhh]h)}(hnameh]hname}(hjm hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjc hKhjj ubah}(h]h ]h"]h$]h&]uh1j"hjO ubj#)}(hhh]h)}(htypeh]htype}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjc hKhj ubah}(h]h ]h"]h$]h&]uh1j"hjO ubj#)}(hhh]h)}(h descriptionh]h description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjc hKhj ubah}(h]h ]h"]h$]h&]uh1j"hjO ubeh}(h]h ]h"]h$]h&]uh1jhjL ubj)}(hhh](j#)}(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&]uh1j"hj ubj#)}(hhh]h)}(hbLengthh]hbLength}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1j"hj ubj#)}(hhh]h)}(hU8h]hU8}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1j"hj ubj#)}(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&]uh1j"hj ubeh}(h]h ]h"]h$]h&]uh1jhjL ubj)}(hhh](j#)}(hhh]h)}(h1h]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&]uh1j"hj ubj#)}(hhh]h)}(hbDescriptorTypeh]hbDescriptorType}(hj8 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj. hKhj5 ubah}(h]h ]h"]h$]h&]uh1j"hj ubj#)}(hhh]h)}(hU8h]hU8}(hjO hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj. hKhjL ubah}(h]h ]h"]h$]h&]uh1j"hj ubj#)}(hhh]h)}(hdescriptor typeh]hdescriptor type}(hjf hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj. hKhjc ubah}(h]h ]h"]h$]h&]uh1j"hj ubeh}(h]h ]h"]h$]h&]uh1jhjL ubj)}(hhh](j#)}(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&]uh1j"hj ubj#)}(hhh]h)}(hpayloadh]hpayload}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1j"hj ubj#)}(hhh]h}(h]h ]h"]h$]h&]uh1j"hj ubj#)}(hhh]h)}(hdescriptor's payloadh]hdescriptor’s payload}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1j"hj ubeh}(h]h ]h"]h$]h&]uh1jhjL ubeh}(h]h ]h"]h$]h&]uh1jhj! ubeh}(h]h ]h"]h$]h&]colsKuh1hhj 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](h)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1hhj ubh)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1hhj ubh)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1hhj ubh)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1hhj ubj)}(hhh](j)}(hhh](j#)}(hhh]h)}(hoffh]hoff}(hj1 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&]uh1j"hj+ ubj#)}(hhh]h)}(hnameh]hname}(hjI hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj? hKhjF ubah}(h]h ]h"]h$]h&]uh1j"hj+ ubj#)}(hhh]h)}(htypeh]htype}(hj` hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj? hKhj] ubah}(h]h ]h"]h$]h&]uh1j"hj+ ubj#)}(hhh]h)}(h descriptionh]h description}(hjw hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj? hKhjt ubah}(h]h ]h"]h$]h&]uh1j"hj+ ubeh}(h]h ]h"]h$]h&]uh1jhj( ubj)}(hhh](j#)}(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&]uh1j"hj ubj#)}(hhh]h)}(h interfaceh]h interface}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1j"hj ubj#)}(hhh]h)}(hU8h]hU8}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1j"hj ubj#)}(hhh]h)}(hrelated interface numberh]hrelated interface number}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1j"hj ubeh}(h]h ]h"]h$]h&]uh1jhj( ubj)}(hhh](j#)}(hhh]h)}(hj" 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&]uh1j"hj ubj#)}(hhh]h)}(hdwLengthh]hdwLength}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1j"hj ubj#)}(hhh]h)}(hU32h]hU32}(hj* hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj' ubah}(h]h ]h"]h$]h&]uh1j"hj ubj#)}(hhh]h)}(hlength of the descriptorh]hlength of the descriptor}(hjA hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj> ubah}(h]h ]h"]h$]h&]uh1j"hj ubeh}(h]h ]h"]h$]h&]uh1jhj( ubj)}(hhh](j#)}(hhh]h)}(h5h]h5}(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&]uh1j"hj[ ubj#)}(hhh]h)}(h bcdVersionh]h bcdVersion}(hjy hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjo hKhjv ubah}(h]h ]h"]h$]h&]uh1j"hj[ ubj#)}(hhh]h)}(hU16h]hU16}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjo hKhj ubah}(h]h ]h"]h$]h&]uh1j"hj[ ubj#)}(hhh]h)}(hcurrently supported: 1h]hcurrently supported: 1}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjo hKhj ubah}(h]h ]h"]h$]h&]uh1j"hj[ ubeh}(h]h ]h"]h$]h&]uh1jhj( ubj)}(hhh](j#)}(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&]uh1j"hj ubj#)}(hhh]h)}(hwIndexh]hwIndex}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1j"hj ubj#)}(hhh]h)}(hU16h]hU16}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1j"hj ubj#)}(hhh]h)}(hcurrently supported: 4h]hcurrently supported: 4}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1j"hj ubeh}(h]h ]h"]h$]h&]uh1jhj( ubj)}(hhh](j#)}(hhh]h)}(h9h]h9}(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&]uh1j"hj' ubj#)}(hhh]h)}(hbCounth]hbCount}(hjE hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj; hKhjB ubah}(h]h ]h"]h$]h&]uh1j"hj' ubj#)}(hhh]h)}(hU8h]hU8}(hj\ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj; hKhjY ubah}(h]h ]h"]h$]h&]uh1j"hj' ubj#)}(hhh]h)}(hnumber of ext. compat.h]hnumber of ext. compat.}(hjs hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj; hKhjp ubah}(h]h ]h"]h$]h&]uh1j"hj' ubeh}(h]h ]h"]h$]h&]uh1jhj( ubj)}(hhh](j#)}(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&]uh1j"hj ubj#)}(hhh]h)}(hReservedh]hReserved}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1j"hj ubj#)}(hhh]h)}(hU8h]hU8}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1j"hj ubj#)}(hhh]h)}(hjh]h0}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1j"hj ubeh}(h]h ]h"]h$]h&]uh1jhj( ubj)}(hhh](j#)}(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&]uh1j"hj ubj#)}(hhh]h)}(h ExtCompat[]h]h ExtCompat[]}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1j"hj ubj#)}(hhh]h}(h]h ]h"]h$]h&]uh1j"hj ubj#)}(hhh]h)}(hlist of ext. compat. d.h]hlist of ext. compat. d.}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj-ubah}(h]h ]h"]h$]h&]uh1j"hj ubeh}(h]h ]h"]h$]h&]uh1jhj( ubeh}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]colsKuh1hhj ubah}(h]h ]h"]h$]h&]uh1hhhhhhjhNubh)}(hhh]h)}(hhh](h)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1hhj`ubh)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1hhj`ubh)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1hhj`ubh)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1hhj`ubj)}(hhh](j)}(hhh](j#)}(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&]uh1j"hjubj#)}(hhh]h)}(hnameh]hname}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(htypeh]htype}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(h descriptionh]h description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j#)}(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&]uh1j"hjubj#)}(hhh]h)}(h interfaceh]h interface}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(hU8h]hU8}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj%ubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(hrelated interface numberh]hrelated interface number}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj<ubah}(h]h ]h"]h$]h&]uh1j"hjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j#)}(hhh]h)}(hj" 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&]uh1j"hjYubj#)}(hhh]h)}(hdwLengthh]hdwLength}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjlhKhjsubah}(h]h ]h"]h$]h&]uh1j"hjYubj#)}(hhh]h)}(hU32h]hU32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjlhKhjubah}(h]h ]h"]h$]h&]uh1j"hjYubj#)}(hhh]h)}(hlength of the descriptorh]hlength of the descriptor}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjlhKhjubah}(h]h ]h"]h$]h&]uh1j"hjYubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j#)}(hhh]h)}(hjc 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&]uh1j"hjubj#)}(hhh]h)}(h bcdVersionh]h bcdVersion}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(hU16h]hU16}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(hcurrently supported: 1h]hcurrently supported: 1}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j#)}(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&]uh1j"hj#ubj#)}(hhh]h)}(hwIndexh]hwIndex}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6hKhj=ubah}(h]h ]h"]h$]h&]uh1j"hj#ubj#)}(hhh]h)}(hU16h]hU16}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6hKhjTubah}(h]h ]h"]h$]h&]uh1j"hj#ubj#)}(hhh]h)}(hcurrently supported: 5h]hcurrently supported: 5}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6hKhjkubah}(h]h ]h"]h$]h&]uh1j"hj#ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j#)}(hhh]h)}(hj/ 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&]uh1j"hjubj#)}(hhh]h)}(hwCounth]hwCount}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(hU16h]hU16}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(hnumber of ext. compat.h]hnumber of ext. compat.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j#)}(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&]uh1j"hjubj#)}(hhh]h)}(h ExtProp[]h]h ExtProp[]}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h}(h]h ]h"]h$]h&]uh1j"hjubj#)}(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&]uh1j"hjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]colsKuh1hhj]ubah}(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:}(hjXhhhNhNubah}(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](h)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1hhjjubh)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1hhjjubh)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1hhjjubh)}(hhh]h}(h]h ]h"]h$]h&]colwidthK%uh1hhjjubj)}(hhh](j)}(hhh](j#)}(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&]uh1j"hjubj#)}(hhh]h)}(hnameh]hname}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(htypeh]htype}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(h descriptionh]h description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j#)}(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&]uh1j"hjubj#)}(hhh]h)}(hbFirstInterfaceNumberh]hbFirstInterfaceNumber}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(hU8h]hU8}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj/ubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(h$index of the interface or of the 1sth]h$index of the interface or of the 1st}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjFubah}(h]h ]h"]h$]h&]uh1j"hjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j#)}(hhh]h}(h]h ]h"]h$]h&]uh1j"hjcubj#)}(hhh]h}(h]h ]h"]h$]h&]uh1j"hjcubj#)}(hhh]h}(h]h ]h"]h$]h&]uh1j"hjcubj#)}(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&]uh1j"hjcubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j#)}(hhh]h)}(hj" 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&]uh1j"hjubj#)}(hhh]h)}(hReservedh]hReserved}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(hU8h]hU8}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(hj" h]h1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j#)}(hhh]h)}(hj h]h2}(hj hhhNhNubah}(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&]uh1j"hjubj#)}(hhh]h)}(h CompatibleIDh]h CompatibleID}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(hU8[8]h]hU8[8]}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj4ubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(hcompatible ID stringh]hcompatible ID string}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjKubah}(h]h ]h"]h$]h&]uh1j"hjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j#)}(hhh]h)}(h10h]h10}(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&]uh1j"hjhubj#)}(hhh]h)}(hSubCompatibleIDh]hSubCompatibleID}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj|hKhjubah}(h]h ]h"]h$]h&]uh1j"hjhubj#)}(hhh]h)}(hU8[8]h]hU8[8]}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj|hKhjubah}(h]h ]h"]h$]h&]uh1j"hjhubj#)}(hhh]h)}(hsubcompatible ID stringh]hsubcompatible ID string}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj|hKhjubah}(h]h ]h"]h$]h&]uh1j"hjhubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j#)}(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&]uh1j"hjubj#)}(hhh]h)}(hReservedh]hReserved}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(hU8[6]h]hU8[6]}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(hjh]h0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j"hjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjjubeh}(h]h ]h"]h$]h&]colsKuh1hhjgubah}(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:}(hjFhhhNhNubah}(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](h)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1hhjXubh)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1hhjXubh)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1hhjXubh)}(hhh]h}(h]h ]h"]h$]h&]colwidthK%uh1hhjXubj)}(hhh](j)}(hhh](j#)}(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&]uh1j"hjubj#)}(hhh]h)}(hnameh]hname}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(htypeh]htype}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(h descriptionh]h description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j"hjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j#)}(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&]uh1j"hjubj#)}(hhh]h)}(hdwSizeh]hdwSize}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(hU32h]hU32}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(hlength of the descriptorh]hlength of the descriptor}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhj4ubah}(h]h ]h"]h$]h&]uh1j"hjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j#)}(hhh]h)}(hjh]h4}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:13: ./include/uapi/linux/usb/functionfs.hhM hjTubah}(h]h ]h"]h$]h&]uh1j"hjQubj#)}(hhh]h)}(hdwPropertyDataTypeh]hdwPropertyDataType}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjdhM hjkubah}(h]h ]h"]h$]h&]uh1j"hjQubj#)}(hhh]h)}(hU32h]hU32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjdhM hjubah}(h]h ]h"]h$]h&]uh1j"hjQubj#)}(hhh]h)}(h1..7h]h1..7}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjdhM hjubah}(h]h ]h"]h$]h&]uh1j"hjQubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j#)}(hhh]h)}(hj[h]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&]uh1j"hjubj#)}(hhh]h)}(hwPropertyNameLengthh]hwPropertyNameLength}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM hjubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(hU16h]hU16}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM hjubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(hbPropertyName length (NL)h]hbPropertyName length (NL)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM hjubah}(h]h ]h"]h$]h&]uh1j"hjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j#)}(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.hhM hjubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(h bPropertyNameh]h bPropertyName}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/hM hj6ubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(hU8[NL]h]hU8[NL]}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/hM hjMubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(hname of this propertyh]hname of this property}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/hM hjdubah}(h]h ]h"]h$]h&]uh1j"hjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j#)}(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&]uh1j"hjubj#)}(hhh]h)}(hdwPropertyDataLengthh]hdwPropertyDataLength}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(hU32h]hU32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(hbPropertyData length (DL)h]hbPropertyData length (DL)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j"hjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j#)}(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&]uh1j"hjubj#)}(hhh]h)}(h bPropertyh]h bProperty}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(hU8[DL]h]hU8[DL]}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j"hjubj#)}(hhh]h)}(hpayload of this propertyh]hpayload of this property}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhj0ubah}(h]h ]h"]h$]h&]uh1j"hjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]colsKuh1hhjUubah}(h]h ]h"]h$]h&]uh1hhhhhhjhNubh)}(hhh](h)}(hInterface Descriptorsh]hInterface Descriptors}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`hhhhhKubh)}(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.}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj`hhubeh}(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&]uh1jhjhhhjhKubh desc_name)}(husb_dfu_functional_descriptorh]h desc_sig_name)}(hjh]husb_dfu_functional_descriptor}(hjhhhNhNubah}(h]h ]nah"]h$]h&]uh1jhj ubah}(h]h ](sig-namedescnameeh"]h$]h&] xml:spacepreserveuh1j hjhhhjhKubeh}(h]h ]h"]h$]h&]j(j) add_permalinkuh1jsphinx_line_type declaratorhjhhhjhKubah}(h]jah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1jhjhKhjhhubh desc_content)}(hhh]h)}(hDFU Functional descriptorh]hDFU Functional descriptor}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:38: ./include/uapi/linux/usb/functionfs.hhK*hj@hhubah}(h]h ]h"]h$]h&]uh1j>hjhhhjhKubeh}(h]h ](cstructeh"]h$]h&]domainj[objtypej\desctypej\noindex 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}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jphjlubh:}(hjlhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:38: ./include/uapi/linux/usb/functionfs.hhK.hjhubh 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.hhK0hjhubh)}(h **Members**h]jq)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jphjubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:38: ./include/uapi/linux/usb/functionfs.hhK9hjhubhdefinition_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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK-hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK-hjubj)}(h ``bmAttributes`` DFU attributes h](j)}(h``bmAttributes``h]j)}(hj9h]h bmAttributes}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:38: ./include/uapi/linux/usb/functionfs.hhK.hj3ubj)}(hhh]h)}(hDFU attributesh]hDFU attributes}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjNhK.hjOubah}(h]h ]h"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]uh1jhjNhK.hjubj)}(hD``wDetachTimeOut`` Maximum time to wait after DFU_DETACH (ms, le16) h](j)}(h``wDetachTimeOut``h]j)}(hjrh]hwDetachTimeOut}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpubah}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/usb/functionfs-desc:38: ./include/uapi/linux/usb/functionfs.hhK/hjlubj)}(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&]uh1jhjlubeh}(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&]uh1jhjhK0hjubeh}(h]h ]h"]h$]h&]uh1jhjhubeh}(h]h ] kernelindentah"]h$]h&]uh1jfhjhhhNhNubeh}(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_backlinksj"footnote_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_handlerj_error_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.confafile_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}(j:j7jjj2j/j*j'u nametypes}(j:jj2j*uh}(j7hjj`j/jj'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.