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/gpu/imagination/uapimodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget(/translations/zh_TW/gpu/imagination/uapimodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget(/translations/it_IT/gpu/imagination/uapimodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget(/translations/ja_JP/gpu/imagination/uapimodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget(/translations/ko_KR/gpu/imagination/uapimodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget(/translations/sp_SP/gpu/imagination/uapimodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhsection)}(hhh](htitle)}(hUAPIh]hUAPI}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhB/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi.rsthKubh paragraph)}(hGThe sources associated with this section can be found in ``pvr_drm.h``.h](h9The sources associated with this section can be found in }(hhhhhNhNubhliteral)}(h ``pvr_drm.h``h]h pvr_drm.h}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhubh.}(hhhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(htThe PowerVR IOCTL argument structs have a few limitations in place, in addition to the standard kernel restrictions:h]htThe PowerVR IOCTL argument structs have a few limitations in place, in addition to the standard kernel restrictions:}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:6: ./include/uapi/drm/pvr_drm.hhKhhhhubh block_quote)}(hX- All members must be type-aligned. - The overall struct must be padded to 64-bit alignment. - Explicit padding is almost always required. This takes the form of ``_padding_[x]`` members of sufficient size to pad to the next power-of-two alignment, where [x] is the offset into the struct in hexadecimal. Arrays are never used for alignment. Padding fields must be zeroed; this is always checked. - Unions may only appear as the last member of a struct. - Individual union members may grow in the future. The space between the end of a union member and the end of its containing union is considered "implicit padding" and must be zeroed. This is always checked. h]h bullet_list)}(hhh](h list_item)}(h!All members must be type-aligned.h]h)}(hhh]h!All members must be type-aligned.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:6: ./include/uapi/drm/pvr_drm.hhKhhubah}(h]h ]h"]h$]h&]uh1hhhubh)}(h6The overall struct must be padded to 64-bit alignment.h]h)}(hjh]h6The overall struct must be padded to 64-bit alignment.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:6: ./include/uapi/drm/pvr_drm.hhKhjubah}(h]h ]h"]h$]h&]uh1hhhubh)}(hX-Explicit padding is almost always required. This takes the form of ``_padding_[x]`` members of sufficient size to pad to the next power-of-two alignment, where [x] is the offset into the struct in hexadecimal. Arrays are never used for alignment. Padding fields must be zeroed; this is always checked.h]h)}(hX-Explicit padding is almost always required. This takes the form of ``_padding_[x]`` members of sufficient size to pad to the next power-of-two alignment, where [x] is the offset into the struct in hexadecimal. Arrays are never used for alignment. Padding fields must be zeroed; this is always checked.h](hCExplicit padding is almost always required. This takes the form of }(hj+hhhNhNubh)}(h``_padding_[x]``h]h _padding_[x]}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj+ubh members of sufficient size to pad to the next power-of-two alignment, where [x] is the offset into the struct in hexadecimal. Arrays are never used for alignment. Padding fields must be zeroed; this is always checked.}(hj+hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:6: ./include/uapi/drm/pvr_drm.hhKhj'ubah}(h]h ]h"]h$]h&]uh1hhhubh)}(h6Unions may only appear as the last member of a struct.h]h)}(hjTh]h6Unions may only appear as the last member of a struct.}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:6: ./include/uapi/drm/pvr_drm.hhKhjRubah}(h]h ]h"]h$]h&]uh1hhhubh)}(hIndividual union members may grow in the future. The space between the end of a union member and the end of its containing union is considered "implicit padding" and must be zeroed. This is always checked. h]h)}(hIndividual union members may grow in the future. The space between the end of a union member and the end of its containing union is considered "implicit padding" and must be zeroed. This is always checked.h]hIndividual union members may grow in the future. The space between the end of a union member and the end of its containing union is considered “implicit padding” and must be zeroed. This is always checked.}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:6: ./include/uapi/drm/pvr_drm.hhKhjjubah}(h]h ]h"]h$]h&]uh1hhhubeh}(h]h ]h"]h$]h&]bullet-uh1hhjhKhhubah}(h]h ]h"]h$]h&]uh1hhjhKhhhhubh)}(hIn addition to the IOCTL argument structs, the PowerVR UAPI makes use of DEV_QUERY argument structs. These are used to fetch information about the device and runtime. These structs are subject to the same rules set out above.h]hIn addition to the IOCTL argument structs, the PowerVR UAPI makes use of DEV_QUERY argument structs. These are used to fetch information about the device and runtime. These structs are subject to the same rules set out above.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:6: ./include/uapi/drm/pvr_drm.hhK hhhhubh)}(hhh](h)}(h OBJECT ARRAYSh]h OBJECT ARRAYS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK ubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](singledrm_pvr_obj_array (C struct)c.drm_pvr_obj_arrayhNtauh1jhjhhh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:11: ./include/uapi/drm/pvr_drm.hhNubhdesc)}(hhh](hdesc_signature)}(hdrm_pvr_obj_arrayh]hdesc_signature_line)}(hstruct drm_pvr_obj_arrayh](hdesc_sig_keyword)}(hstructh]hstruct}(hjhhhNhNubah}(h]h ]kah"]h$]h&]uh1jhjhhh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:11: ./include/uapi/drm/pvr_drm.hhKubhdesc_sig_space)}(h h]h }(hjhhhNhNubah}(h]h ]wah"]h$]h&]uh1jhjhhhjhKubh desc_name)}(hdrm_pvr_obj_arrayh]h desc_sig_name)}(hjh]hdrm_pvr_obj_array}(hjhhhNhNubah}(h]h ]nah"]h$]h&]uh1jhjubah}(h]h ](sig-namedescnameeh"]h$]h&] xml:spacepreserveuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]jj add_permalinkuh1jsphinx_line_type declaratorhjhhhjhKubah}(h]jah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1jhjhKhjhhubh desc_content)}(hhh]h)}(h(Container used to pass arrays of objectsh]h(Container used to pass arrays of objects}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:11: ./include/uapi/drm/pvr_drm.hhK)hj-hhubah}(h]h ]h"]h$]h&]uh1j+hjhhhjhKubeh}(h]h ](cstructeh"]h$]h&]domainjHobjtypejIdesctypejInoindex noindexentrynocontentsentryuh1jhhhjhjhNubh container)}(hX**Definition**:: struct drm_pvr_obj_array { __u32 stride; __u32 count; __u64 array; }; **Members** ``stride`` Stride of object struct. Used for versioning. ``count`` Number of objects in the array. ``array`` User pointer to an array of objects.h](h)}(h**Definition**::h](hstrong)}(h**Definition**h]h Definition}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjYubh:}(hjYhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:11: ./include/uapi/drm/pvr_drm.hhK-hjUubh literal_block)}(hQstruct drm_pvr_obj_array { __u32 stride; __u32 count; __u64 array; };h]hQstruct drm_pvr_obj_array { __u32 stride; __u32 count; __u64 array; };}hjzsbah}(h]h ]h"]h$]h&]jjuh1jxh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:11: ./include/uapi/drm/pvr_drm.hhK/hjUubh)}(h **Members**h]j^)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:11: ./include/uapi/drm/pvr_drm.hhK5hjUubhdefinition_list)}(hhh](hdefinition_list_item)}(h9``stride`` Stride of object struct. Used for versioning. h](hterm)}(h ``stride``h]h)}(hjh]hstride}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:11: ./include/uapi/drm/pvr_drm.hhK8hjubh definition)}(hhh]h)}(h-Stride of object struct. Used for versioning.h]h-Stride of object struct. Used for versioning.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK8hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK8hjubj)}(h*``count`` Number of objects in the array. h](j)}(h ``count``h]h)}(hjh]hcount}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:11: ./include/uapi/drm/pvr_drm.hhKhjubj)}(hhh]h)}(hNumber of objects in the array.h]hNumber of objects in the array.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h.``array`` User pointer to an array of objects.h](j)}(h ``array``h]h)}(hj$h]harray}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:11: ./include/uapi/drm/pvr_drm.hhKhjubj)}(hhh]h)}(h$User pointer to an array of objects.h]h$User pointer to an array of objects.}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:11: ./include/uapi/drm/pvr_drm.hhKhj:ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj9hKhjubeh}(h]h ]h"]h$]h&]uh1jhjUubeh}(h]h ] kernelindentah"]h$]h&]uh1jShjhhhjhNubh)}(h**Description**h]j^)}(hjgh]h Description}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjeubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:11: ./include/uapi/drm/pvr_drm.hhKhjhhubh)}(hXaIt is not unusual to have to extend objects to pass new parameters, and the DRM ioctl infrastructure is supporting that by padding ioctl arguments with zeros when the data passed by userspace is smaller than the struct defined in the drm_ioctl_desc, thus keeping things backward compatible. This type is just applying the same concepts to indirect objects passed through arrays referenced from the main ioctl arguments structure: the stride basically defines the size of the object passed by userspace, which allows the kernel driver to pad with zeros when it's smaller than the size of the object it expects.h]hXcIt is not unusual to have to extend objects to pass new parameters, and the DRM ioctl infrastructure is supporting that by padding ioctl arguments with zeros when the data passed by userspace is smaller than the struct defined in the drm_ioctl_desc, thus keeping things backward compatible. This type is just applying the same concepts to indirect objects passed through arrays referenced from the main ioctl arguments structure: the stride basically defines the size of the object passed by userspace, which allows the kernel driver to pad with zeros when it’s smaller than the size of the object it expects.}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:11: ./include/uapi/drm/pvr_drm.hhK*hjhhubh)}(hcUse ``DRM_PVR_OBJ_ARRAY()`` to fill object array fields, unless you have a very good reason not to.h](hUse }(hjhhhNhNubh)}(h``DRM_PVR_OBJ_ARRAY()``h]hDRM_PVR_OBJ_ARRAY()}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubhH to fill object array fields, unless you have a very good reason not to.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:11: ./include/uapi/drm/pvr_drm.hhK3hjhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jDRM_PVR_OBJ_ARRAY (C macro)c.DRM_PVR_OBJ_ARRAYhNtauh1jhjhhhNhNubj)}(hhh](j)}(hDRM_PVR_OBJ_ARRAYh]j)}(hDRM_PVR_OBJ_ARRAYh]j)}(hDRM_PVR_OBJ_ARRAYh]j)}(hjh]hDRM_PVR_OBJ_ARRAY}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:14: ./include/uapi/drm/pvr_drm.hhKIubah}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhjhKIubah}(h]jah ](j#j$eh"]h$]h&]j(j))j*huh1jhjhKIhjhhubj,)}(hhh]h}(h]h ]h"]h$]h&]uh1j+hjhhhjhKIubeh}(h]h ](jHmacroeh"]h$]h&]jMjHjNjjOjjPjQjRuh1jhhhjhNhNubh)}(h ``DRM_PVR_OBJ_ARRAY (cnt, ptr)``h]h)}(hjh]hDRM_PVR_OBJ_ARRAY (cnt, ptr)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:14: ./include/uapi/drm/pvr_drm.hhKKhjhhubh)}(hQHelper macro for filling :c:type:`struct drm_pvr_obj_array `. h]h)}(hPHelper macro for filling :c:type:`struct drm_pvr_obj_array `.h](hHelper macro for filling }(hjhhhNhNubh)}(h6:c:type:`struct drm_pvr_obj_array `h]h)}(hj h]hstruct drm_pvr_obj_array}(hj"hhhNhNubah}(h]h ](xrefjHc-typeeh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdocgpu/imagination/uapi refdomainjHreftypetype refexplicitrefwarn c:parent_keysphinx.domains.c LookupKey)}data]sb reftargetdrm_pvr_obj_arrayuh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:14: ./include/uapi/drm/pvr_drm.hhKChjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjHhKChjubah}(h]h ]h"]h$]h&]uh1hhjHhKChjhhubjT)}(h**Parameters** ``cnt`` Number of elements pointed to py **ptr**. ``ptr`` Pointer to start of a C array. **Return** Literal of type :c:type:`struct drm_pvr_obj_array `.h](h)}(h**Parameters**h]j^)}(hj_h]h Parameters}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj]ubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:14: ./include/uapi/drm/pvr_drm.hhKGhjYubj)}(hhh](j)}(h2``cnt`` Number of elements pointed to py **ptr**. h](j)}(h``cnt``h]h)}(hj~h]hcnt}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj|ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:14: ./include/uapi/drm/pvr_drm.hhKDhjxubj)}(hhh]h)}(h)Number of elements pointed to py **ptr**.h](h!Number of elements pointed to py }(hjhhhNhNubj^)}(h**ptr**h]hptr}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKDhjubah}(h]h ]h"]h$]h&]uh1jhjxubeh}(h]h ]h"]h$]h&]uh1jhjhKDhjuubj)}(h'``ptr`` Pointer to start of a C array. h](j)}(h``ptr``h]h)}(hjh]hptr}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:14: ./include/uapi/drm/pvr_drm.hhKEhjubj)}(hhh]h)}(hPointer to start of a C array.h]hPointer to start of a C array.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKEhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKEhjuubeh}(h]h ]h"]h$]h&]uh1jhjYubh)}(h **Return**h]j^)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:14: ./include/uapi/drm/pvr_drm.hhKGhjYubh)}(hGLiteral of type :c:type:`struct drm_pvr_obj_array `.h](hLiteral of type }(hjhhhNhNubh)}(h6:c:type:`struct drm_pvr_obj_array `h]h)}(hj$h]hstruct drm_pvr_obj_array}(hj&hhhNhNubah}(h]h ](j,jHc-typeeh"]h$]h&]uh1hhj"ubah}(h]h ]h"]h$]h&]refdocj8 refdomainjHreftypetype refexplicitrefwarnj>jBjFdrm_pvr_obj_arrayuh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:14: ./include/uapi/drm/pvr_drm.hhKGhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjAhKGhjYubeh}(h]h ] kernelindentah"]h$]h&]uh1jShjhhhNhNubeh}(h] object-arraysah ]h"] object arraysah$]h&]uh1hhhhhhhhK ubh)}(hhh](h)}(hIOCTLSh]hIOCTLS}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj[hhhhhKubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jPVR_IOCTL (C macro) c.PVR_IOCTLhNtauh1jhj[hhhNhNubj)}(hhh](j)}(h PVR_IOCTLh]j)}(h PVR_IOCTLh]j)}(h PVR_IOCTLh]j)}(hjh]h PVR_IOCTL}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:22: ./include/uapi/drm/pvr_drm.hhK^ubah}(h]h ]h"]h$]h&]jjjuh1jjjhj}hhhjhK^ubah}(h]jxah ](j#j$eh"]h$]h&]j(j))j*huh1jhjhK^hjzhhubj,)}(hhh]h}(h]h ]h"]h$]h&]uh1j+hjzhhhjhK^ubeh}(h]h ](jHmacroeh"]h$]h&]jMjHjNjjOjjPjQjRuh1jhhhj[hNhNubh)}(h$``PVR_IOCTL (_ioctl, _mode, _data)``h]h)}(hjh]h PVR_IOCTL (_ioctl, _mode, _data)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:22: ./include/uapi/drm/pvr_drm.hhK`hj[hhubh)}(hBuild a PowerVR IOCTL number h]h)}(hBuild a PowerVR IOCTL numberh]hBuild a PowerVR IOCTL number}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:22: ./include/uapi/drm/pvr_drm.hhKQhjubah}(h]h ]h"]h$]h&]uh1hhjhKQhj[hhubjT)}(hX=**Parameters** ``_ioctl`` An incrementing id for this IOCTL. Added to ``DRM_COMMAND_BASE``. ``_mode`` Must be one of ``DRM_IOR``, ``DRM_IOW`` or ``DRM_IOWR``. ``_data`` The type of the args struct passed by this IOCTL. **Description** The struct referred to by **_data** must have a ``drm_pvr_ioctl_`` prefix and an ``_args suffix``. They are therefore omitted from **_data**. This should only be used to build the constants described below; it should never be used to call an IOCTL directly. **Return** An IOCTL number to be passed to ioctl() from userspace.h](h)}(h**Parameters**h]j^)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:22: ./include/uapi/drm/pvr_drm.hhKUhjubj)}(hhh](j)}(hM``_ioctl`` An incrementing id for this IOCTL. Added to ``DRM_COMMAND_BASE``. h](j)}(h ``_ioctl``h]h)}(hjh]h_ioctl}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:22: ./include/uapi/drm/pvr_drm.hhKRhj ubj)}(hhh]h)}(hAAn incrementing id for this IOCTL. Added to ``DRM_COMMAND_BASE``.h](h,An incrementing id for this IOCTL. Added to }(hj(hhhNhNubh)}(h``DRM_COMMAND_BASE``h]hDRM_COMMAND_BASE}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj(ubh.}(hj(hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj$hKRhj%ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj$hKRhjubj)}(hC``_mode`` Must be one of ``DRM_IOR``, ``DRM_IOW`` or ``DRM_IOWR``. h](j)}(h ``_mode``h]h)}(hjZh]h_mode}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjXubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:22: ./include/uapi/drm/pvr_drm.hhKShjTubj)}(hhh]h)}(h8Must be one of ``DRM_IOR``, ``DRM_IOW`` or ``DRM_IOWR``.h](hMust be one of }(hjshhhNhNubh)}(h ``DRM_IOR``h]hDRM_IOR}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjsubh, }(hjshhhNhNubh)}(h ``DRM_IOW``h]hDRM_IOW}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjsubh or }(hjshhhNhNubh)}(h ``DRM_IOWR``h]hDRM_IOWR}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjsubh.}(hjshhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjohKShjpubah}(h]h ]h"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]uh1jhjohKShjubj)}(h<``_data`` The type of the args struct passed by this IOCTL. h](j)}(h ``_data``h]h)}(hjh]h_data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:22: ./include/uapi/drm/pvr_drm.hhKThjubj)}(hhh]h)}(h1The type of the args struct passed by this IOCTL.h]h1The type of the args struct passed by this IOCTL.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKThjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKThjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j^)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:22: ./include/uapi/drm/pvr_drm.hhKVhjubh)}(hThe struct referred to by **_data** must have a ``drm_pvr_ioctl_`` prefix and an ``_args suffix``. They are therefore omitted from **_data**.h](hThe struct referred to by }(hjhhhNhNubj^)}(h **_data**h]h_data}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjubh must have a }(hjhhhNhNubh)}(h``drm_pvr_ioctl_``h]hdrm_pvr_ioctl_}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh prefix and an }(hjhhhNhNubh)}(h``_args suffix``h]h _args suffix}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh". They are therefore omitted from }(hjhhhNhNubj^)}(h **_data**h]h_data}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:22: ./include/uapi/drm/pvr_drm.hhKVhjubh)}(hsThis should only be used to build the constants described below; it should never be used to call an IOCTL directly.h]hsThis should only be used to build the constants described below; it should never be used to call an IOCTL directly.}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:22: ./include/uapi/drm/pvr_drm.hhKYhjubh)}(h **Return**h]j^)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:22: ./include/uapi/drm/pvr_drm.hhK\hjubh)}(h7An IOCTL number to be passed to ioctl() from userspace.h]h7An IOCTL number to be passed to ioctl() from userspace.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:22: ./include/uapi/drm/pvr_drm.hhK\hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jShj[hhhNhNubh)}(hhh](h)}(h DEV_QUERYh]h DEV_QUERY}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jdrm_pvr_dev_query (C enum)c.drm_pvr_dev_queryhNtauh1jhjhhh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:30: ./include/uapi/drm/pvr_drm.hhNubj)}(hhh](j)}(hdrm_pvr_dev_queryh]j)}(henum drm_pvr_dev_queryh](j)}(henumh]henum}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:30: ./include/uapi/drm/pvr_drm.hhK`ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhK`ubj)}(hdrm_pvr_dev_queryh]j)}(hjh]hdrm_pvr_dev_query}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhK`ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhjhK`ubah}(h]jah ](j#j$eh"]h$]h&]j(j))j*huh1jhjhK`hjhhubj,)}(hhh]h)}(hFor use with :c:type:`drm_pvr_ioctl_dev_query_args.type ` to indicate the type of the receiving container.h](h For use with }(hjhhhNhNubh)}(hJ:c:type:`drm_pvr_ioctl_dev_query_args.type `h]h)}(hj&h]h!drm_pvr_ioctl_dev_query_args.type}(hj(hhhNhNubah}(h]h ](j,jHc-typeeh"]h$]h&]uh1hhj$ubah}(h]h ]h"]h$]h&]refdocj8 refdomainjHreftypetype refexplicitrefwarnj>jA)}jD]j? ASTIdentifier)} identifierjsbc.drm_pvr_dev_queryasbjFdrm_pvr_ioctl_dev_query_argsuh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:30: ./include/uapi/drm/pvr_drm.hhK^hjubh1 to indicate the type of the receiving container.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:30: ./include/uapi/drm/pvr_drm.hhMhjhhubah}(h]h ]h"]h$]h&]uh1j+hjhhhjhK`ubeh}(h]h ](jHenumeh"]h$]h&]jMjHjNjbjOjbjPjQjRuh1jhhhjhjhNubjT)}(hX**Constants** ``DRM_PVR_DEV_QUERY_GPU_INFO_GET`` The dev query args contain a pointer to :c:type:`struct drm_pvr_dev_query_gpu_info `. ``DRM_PVR_DEV_QUERY_RUNTIME_INFO_GET`` The dev query args contain a pointer to :c:type:`struct drm_pvr_dev_query_runtime_info `. ``DRM_PVR_DEV_QUERY_QUIRKS_GET`` The dev query args contain a pointer to :c:type:`struct drm_pvr_dev_query_quirks `. ``DRM_PVR_DEV_QUERY_ENHANCEMENTS_GET`` The dev query args contain a pointer to :c:type:`struct drm_pvr_dev_query_enhancements `. ``DRM_PVR_DEV_QUERY_HEAP_INFO_GET`` The dev query args contain a pointer to :c:type:`struct drm_pvr_dev_query_heap_info `. ``DRM_PVR_DEV_QUERY_STATIC_DATA_AREAS_GET`` The dev query args contain a pointer to :c:type:`struct drm_pvr_dev_query_static_data_areas `.h](h)}(h **Constants**h]j^)}(hjlh]h Constants}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjjubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:30: ./include/uapi/drm/pvr_drm.hhMhjfubj)}(hhh](j)}(h``DRM_PVR_DEV_QUERY_GPU_INFO_GET`` The dev query args contain a pointer to :c:type:`struct drm_pvr_dev_query_gpu_info `. h](j)}(h"``DRM_PVR_DEV_QUERY_GPU_INFO_GET``h]h)}(hjh]hDRM_PVR_DEV_QUERY_GPU_INFO_GET}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:30: ./include/uapi/drm/pvr_drm.hhMhjubj)}(hhh]h)}(hqThe dev query args contain a pointer to :c:type:`struct drm_pvr_dev_query_gpu_info `.h](h(The dev query args contain a pointer to }(hjhhhNhNubh)}(hH:c:type:`struct drm_pvr_dev_query_gpu_info `h]h)}(hjh]h!struct drm_pvr_dev_query_gpu_info}(hjhhhNhNubah}(h]h ](j,jHc-typeeh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdocj8 refdomainjHreftypetype refexplicitrefwarnj>jBjFdrm_pvr_dev_query_gpu_infouh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:30: ./include/uapi/drm/pvr_drm.hhMhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h``DRM_PVR_DEV_QUERY_RUNTIME_INFO_GET`` The dev query args contain a pointer to :c:type:`struct drm_pvr_dev_query_runtime_info `. h](j)}(h&``DRM_PVR_DEV_QUERY_RUNTIME_INFO_GET``h]h)}(hjh]h"DRM_PVR_DEV_QUERY_RUNTIME_INFO_GET}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:30: ./include/uapi/drm/pvr_drm.hhMhjubj)}(hhh]h)}(hyThe dev query args contain a pointer to :c:type:`struct drm_pvr_dev_query_runtime_info `.h](h(The dev query args contain a pointer to }(hj hhhNhNubh)}(hP:c:type:`struct drm_pvr_dev_query_runtime_info `h]h)}(hj h]h%struct drm_pvr_dev_query_runtime_info}(hj hhhNhNubah}(h]h ](j,jHc-typeeh"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]refdocj8 refdomainjHreftypetype refexplicitrefwarnj>jBjFdrm_pvr_dev_query_runtime_infouh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:30: ./include/uapi/drm/pvr_drm.hhMhj ubh.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj( hMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h``DRM_PVR_DEV_QUERY_QUIRKS_GET`` The dev query args contain a pointer to :c:type:`struct drm_pvr_dev_query_quirks `. h](j)}(h ``DRM_PVR_DEV_QUERY_QUIRKS_GET``h]h)}(hjE h]hDRM_PVR_DEV_QUERY_QUIRKS_GET}(hjG hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjC ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:30: ./include/uapi/drm/pvr_drm.hhMhj? ubj)}(hhh]h)}(hmThe dev query args contain a pointer to :c:type:`struct drm_pvr_dev_query_quirks `.h](h(The dev query args contain a pointer to }(hj^ hhhNhNubh)}(hD:c:type:`struct drm_pvr_dev_query_quirks `h]h)}(hjh h]hstruct drm_pvr_dev_query_quirks}(hjj hhhNhNubah}(h]h ](j,jHc-typeeh"]h$]h&]uh1hhjf ubah}(h]h ]h"]h$]h&]refdocj8 refdomainjHreftypetype refexplicitrefwarnj>jBjFdrm_pvr_dev_query_quirksuh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:30: ./include/uapi/drm/pvr_drm.hhMhj^ ubh.}(hj^ hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj hMhj[ ubah}(h]h ]h"]h$]h&]uh1jhj? ubeh}(h]h ]h"]h$]h&]uh1jhjZ hMhjubj)}(h``DRM_PVR_DEV_QUERY_ENHANCEMENTS_GET`` The dev query args contain a pointer to :c:type:`struct drm_pvr_dev_query_enhancements `. h](j)}(h&``DRM_PVR_DEV_QUERY_ENHANCEMENTS_GET``h]h)}(hj h]h"DRM_PVR_DEV_QUERY_ENHANCEMENTS_GET}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:30: ./include/uapi/drm/pvr_drm.hhMhj ubj)}(hhh]h)}(hyThe dev query args contain a pointer to :c:type:`struct drm_pvr_dev_query_enhancements `.h](h(The dev query args contain a pointer to }(hj hhhNhNubh)}(hP:c:type:`struct drm_pvr_dev_query_enhancements `h]h)}(hj h]h%struct drm_pvr_dev_query_enhancements}(hj hhhNhNubah}(h]h ](j,jHc-typeeh"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]refdocj8 refdomainjHreftypetype refexplicitrefwarnj>jBjFdrm_pvr_dev_query_enhancementsuh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:30: ./include/uapi/drm/pvr_drm.hhMhj ubh.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj hMhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hMhjubj)}(h``DRM_PVR_DEV_QUERY_HEAP_INFO_GET`` The dev query args contain a pointer to :c:type:`struct drm_pvr_dev_query_heap_info `. h](j)}(h#``DRM_PVR_DEV_QUERY_HEAP_INFO_GET``h]h)}(hj h]hDRM_PVR_DEV_QUERY_HEAP_INFO_GET}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:30: ./include/uapi/drm/pvr_drm.hhMhj ubj)}(hhh]h)}(hsThe dev query args contain a pointer to :c:type:`struct drm_pvr_dev_query_heap_info `.h](h(The dev query args contain a pointer to }(hj hhhNhNubh)}(hJ:c:type:`struct drm_pvr_dev_query_heap_info `h]h)}(hj" h]h"struct drm_pvr_dev_query_heap_info}(hj$ hhhNhNubah}(h]h ](j,jHc-typeeh"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]refdocj8 refdomainjHreftypetype refexplicitrefwarnj>jBjFdrm_pvr_dev_query_heap_infouh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:30: ./include/uapi/drm/pvr_drm.hhMhj ubh.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj? hMhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hMhjubj)}(h``DRM_PVR_DEV_QUERY_STATIC_DATA_AREAS_GET`` The dev query args contain a pointer to :c:type:`struct drm_pvr_dev_query_static_data_areas `.h](j)}(h+``DRM_PVR_DEV_QUERY_STATIC_DATA_AREAS_GET``h]h)}(hj\ h]h'DRM_PVR_DEV_QUERY_STATIC_DATA_AREAS_GET}(hj^ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjZ ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:30: ./include/uapi/drm/pvr_drm.hhMhjV ubj)}(hhh]h)}(hThe dev query args contain a pointer to :c:type:`struct drm_pvr_dev_query_static_data_areas `.h](h(The dev query args contain a pointer to }(hju hhhNhNubh)}(hZ:c:type:`struct drm_pvr_dev_query_static_data_areas `h]h)}(hj h]h*struct drm_pvr_dev_query_static_data_areas}(hj hhhNhNubah}(h]h ](j,jHc-typeeh"]h$]h&]uh1hhj} ubah}(h]h ]h"]h$]h&]refdocj8 refdomainjHreftypetype refexplicitrefwarnj>jBjF#drm_pvr_dev_query_static_data_areasuh1hhjq hMhju ubh.}(hju hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjq hMhjr ubah}(h]h ]h"]h$]h&]uh1jhjV ubeh}(h]h ]h"]h$]h&]uh1jhjq hMhjubeh}(h]h ]h"]h$]h&]uh1jhjfubeh}(h]h ] kernelindentah"]h$]h&]uh1jShjhhhjhNubh)}(h**Description**h]j^)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj ubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:30: ./include/uapi/drm/pvr_drm.hhMhjhhubh)}(hAppend only. Do not reorder.h]hAppend only. Do not reorder.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:30: ./include/uapi/drm/pvr_drm.hhMhjhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j'drm_pvr_ioctl_dev_query_args (C struct)c.drm_pvr_ioctl_dev_query_argshNtauh1jhjhhhNhNubj)}(hhh](j)}(hdrm_pvr_ioctl_dev_query_argsh]j)}(h#struct drm_pvr_ioctl_dev_query_argsh](j)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:33: ./include/uapi/drm/pvr_drm.hhK`ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhj hK`ubj)}(hdrm_pvr_ioctl_dev_query_argsh]j)}(hj h]hdrm_pvr_ioctl_dev_query_args}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj hhhj hK`ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj hhhj hK`ubah}(h]j ah ](j#j$eh"]h$]h&]j(j))j*huh1jhj hK`hj hhubj,)}(hhh]h)}(h*Arguments for ``DRM_IOCTL_PVR_DEV_QUERY``.h](hArguments for }(hjA hhhNhNubh)}(h``DRM_IOCTL_PVR_DEV_QUERY``h]hDRM_IOCTL_PVR_DEV_QUERY}(hjI hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjA ubh.}(hjA hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:33: ./include/uapi/drm/pvr_drm.hhMhj> hhubah}(h]h ]h"]h$]h&]uh1j+hj hhhj hK`ubeh}(h]h ](jHstructeh"]h$]h&]jMjHjNjk jOjk jPjQjRuh1jhhhjhNhNubjT)}(hX**Definition**:: struct drm_pvr_ioctl_dev_query_args { __u32 type; __u32 size; __u64 pointer; }; **Members** ``type`` Type of query and output struct. See :c:type:`enum drm_pvr_dev_query `. ``size`` Size of the receiving struct, see **type**. After a successful call this will be updated to the written byte length. Can also be used to get the minimum byte length (see **pointer**). This allows additional fields to be appended to the structs in future. ``pointer`` Pointer to struct **type**. Must be large enough to contain **size** bytes. If pointer is NULL, the expected size will be returned in the **size** field, but no other data will be written.h](h)}(h**Definition**::h](j^)}(h**Definition**h]h Definition}(hjw hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjs ubh:}(hjs hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:33: ./include/uapi/drm/pvr_drm.hhMhjo ubjy)}(h[struct drm_pvr_ioctl_dev_query_args { __u32 type; __u32 size; __u64 pointer; };h]h[struct drm_pvr_ioctl_dev_query_args { __u32 type; __u32 size; __u64 pointer; };}hj sbah}(h]h ]h"]h$]h&]jjuh1jxh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:33: ./include/uapi/drm/pvr_drm.hhMhjo ubh)}(h **Members**h]j^)}(hj h]hMembers}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj ubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:33: ./include/uapi/drm/pvr_drm.hhMhjo ubj)}(hhh](j)}(hd``type`` Type of query and output struct. See :c:type:`enum drm_pvr_dev_query `. h](j)}(h``type``h]h)}(hj h]htype}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:33: ./include/uapi/drm/pvr_drm.hhMhj ubj)}(hhh]h)}(hZType of query and output struct. See :c:type:`enum drm_pvr_dev_query `.h](h%Type of query and output struct. See }(hj hhhNhNubh)}(h4:c:type:`enum drm_pvr_dev_query `h]h)}(hj h]henum drm_pvr_dev_query}(hj hhhNhNubah}(h]h ](j,jHc-typeeh"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]refdocj8 refdomainjHreftypetype refexplicitrefwarnj>jBjFdrm_pvr_dev_queryuh1hhj hMhj ubh.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj hMhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hMhj ubj)}(hX ``size`` Size of the receiving struct, see **type**. After a successful call this will be updated to the written byte length. Can also be used to get the minimum byte length (see **pointer**). This allows additional fields to be appended to the structs in future. h](j)}(h``size``h]h)}(hj h]hsize}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:33: ./include/uapi/drm/pvr_drm.hhMhj ubj)}(hhh](h)}(h+Size of the receiving struct, see **type**.h](h"Size of the receiving struct, see }(hj5 hhhNhNubj^)}(h**type**h]htype}(hj= hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj5 ubh.}(hj5 hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:33: ./include/uapi/drm/pvr_drm.hhMhj2 ubh)}(hAfter a successful call this will be updated to the written byte length. Can also be used to get the minimum byte length (see **pointer**). This allows additional fields to be appended to the structs in future.h](h~After a successful call this will be updated to the written byte length. Can also be used to get the minimum byte length (see }(hjV hhhNhNubj^)}(h **pointer**h]hpointer}(hj^ hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjV ubhI). This allows additional fields to be appended to the structs in future.}(hjV hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:33: ./include/uapi/drm/pvr_drm.hhMhj2 ubeh}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj1 hMhj ubj)}(h``pointer`` Pointer to struct **type**. Must be large enough to contain **size** bytes. If pointer is NULL, the expected size will be returned in the **size** field, but no other data will be written.h](j)}(h ``pointer``h]h)}(hj h]hpointer}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:33: ./include/uapi/drm/pvr_drm.hhMhj ubj)}(hhh](h)}(hPointer to struct **type**.h](hPointer to struct }(hj hhhNhNubj^)}(h**type**h]htype}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj ubh.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:33: ./include/uapi/drm/pvr_drm.hhMhj ubh)}(hMust be large enough to contain **size** bytes. If pointer is NULL, the expected size will be returned in the **size** field, but no other data will be written.h](h Must be large enough to contain }(hj hhhNhNubj^)}(h**size**h]hsize}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj ubhF bytes. If pointer is NULL, the expected size will be returned in the }(hj hhhNhNubj^)}(h**size**h]hsize}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj ubh* field, but no other data will be written.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:33: ./include/uapi/drm/pvr_drm.hhMhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hMhj ubeh}(h]h ]h"]h$]h&]uh1jhjo ubeh}(h]h ] kernelindentah"]h$]h&]uh1jShjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j%drm_pvr_dev_query_gpu_info (C struct)c.drm_pvr_dev_query_gpu_infohNtauh1jhjhhh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhNubj)}(hhh](j)}(hdrm_pvr_dev_query_gpu_infoh]j)}(h!struct drm_pvr_dev_query_gpu_infoh](j)}(hjh]hstruct}(hj) hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj% hhh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhK`ubj)}(h h]h }(hj7 hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj% hhhj6 hK`ubj)}(hdrm_pvr_dev_query_gpu_infoh]j)}(hj# h]hdrm_pvr_dev_query_gpu_info}(hjI hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjE ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj% hhhj6 hK`ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj! hhhj6 hK`ubah}(h]j ah ](j#j$eh"]h$]h&]j(j))j*huh1jhj6 hK`hj hhubj,)}(hhh]h)}(hAContainer used to fetch information about the graphics processor.h]hAContainer used to fetch information about the graphics processor.}(hjk hhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKuhjh hhubah}(h]h ]h"]h$]h&]uh1j+hj hhhj6 hK`ubeh}(h]h ](jHstructeh"]h$]h&]jMjHjNj jOj jPjQjRuh1jhhhjhj hNubjT)}(hXD**Definition**:: struct drm_pvr_dev_query_gpu_info { __u64 gpu_id; __u32 num_phantoms; __u32 _padding_c; }; **Members** ``gpu_id`` GPU identifier. For all currently supported GPUs this is the BVNC encoded as a 64-bit value as follows: +--------+--------+--------+-------+ | 63..48 | 47..32 | 31..16 | 15..0 | +========+========+========+=======+ | B | V | N | C | +--------+--------+--------+-------+ ``num_phantoms`` Number of Phantoms present. ``_padding_c`` Reserved. This field must be zeroed.h](h)}(h**Definition**::h](j^)}(h**Definition**h]h Definition}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj ubh:}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKyhj ubjy)}(hfstruct drm_pvr_dev_query_gpu_info { __u64 gpu_id; __u32 num_phantoms; __u32 _padding_c; };h]hfstruct drm_pvr_dev_query_gpu_info { __u64 gpu_id; __u32 num_phantoms; __u32 _padding_c; };}hj sbah}(h]h ]h"]h$]h&]jjuh1jxh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhK{hj ubh)}(h **Members**h]j^)}(hj h]hMembers}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj ubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhj ubj)}(hhh](j)}(hX=``gpu_id`` GPU identifier. For all currently supported GPUs this is the BVNC encoded as a 64-bit value as follows: +--------+--------+--------+-------+ | 63..48 | 47..32 | 31..16 | 15..0 | +========+========+========+=======+ | B | V | N | C | +--------+--------+--------+-------+ h](j)}(h ``gpu_id``h]h)}(hj h]hgpu_id}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhj ubj)}(hhh](h)}(hGPU identifier.h]hGPU identifier.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhK~hj ubh)}(hWFor all currently supported GPUs this is the BVNC encoded as a 64-bit value as follows:h]hWFor all currently supported GPUs this is the BVNC encoded as a 64-bit value as follows:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhj ubh)}(h+--------+--------+--------+-------+ | 63..48 | 47..32 | 31..16 | 15..0 | +========+========+========+=======+ | B | V | N | C | +--------+--------+--------+-------+ h]htable)}(hhh]htgroup)}(hhh](hcolspec)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubhthead)}(hhh]hrow)}(hhh](hentry)}(hhh]h)}(h63..48h]h63..48}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhjSubah}(h]h ]h"]h$]h&]uh1jQhjNubjR)}(hhh]h)}(h47..32h]h47..32}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjdhKhjkubah}(h]h ]h"]h$]h&]uh1jQhjNubjR)}(hhh]h)}(h31..16h]h31..16}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjdhKhjubah}(h]h ]h"]h$]h&]uh1jQhjNubjR)}(hhh]h)}(h15..0h]h15..0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjdhKhjubah}(h]h ]h"]h$]h&]uh1jQhjNubeh}(h]h ]h"]h$]h&]uh1jLhjIubah}(h]h ]h"]h$]h&]uh1jGhjubhtbody)}(hhh]jM)}(hhh](jR)}(hhh]h)}(hBh]hB}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhjubah}(h]h ]h"]h$]h&]uh1jQhjubjR)}(hhh]h)}(hVh]hV}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jQhjubjR)}(hhh]h)}(hNh]hN}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jQhjubjR)}(hhh]h)}(hCh]hC}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jQhjubeh}(h]h ]h"]h$]h&]uh1jLhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]colsKuh1jhjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj ubj)}(h-``num_phantoms`` Number of Phantoms present. h](j)}(h``num_phantoms``h]h)}(hjSh]h num_phantoms}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjQubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhjMubj)}(hhh]h)}(hNumber of Phantoms present.h]hNumber of Phantoms present.}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhKhjiubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jhjhhKhj ubj)}(h3``_padding_c`` Reserved. This field must be zeroed.h](j)}(h``_padding_c``h]h)}(hjh]h _padding_c}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhjubj)}(hhh]h)}(h$Reserved. This field must be zeroed.h]h$Reserved. This field must be zeroed.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jShjhhhj hNubh)}(h**Description**h]j^)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhjhhubh)}(hWhen fetching this type :c:type:`struct drm_pvr_ioctl_dev_query_args `.type must be set to ``DRM_PVR_DEV_QUERY_GPU_INFO_GET``.h](hWhen fetching this type }(hjhhhNhNubh)}(hL:c:type:`struct drm_pvr_ioctl_dev_query_args `h]h)}(hjh]h#struct drm_pvr_ioctl_dev_query_args}(hjhhhNhNubah}(h]h ](j,jHc-typeeh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdocj8 refdomainjHreftypetype refexplicitrefwarnj>jBjFdrm_pvr_ioctl_dev_query_argsuh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKvhjubh.type must be set to }(hjhhhNhNubh)}(h"``DRM_PVR_DEV_QUERY_GPU_INFO_GET``h]hDRM_PVR_DEV_QUERY_GPU_INFO_GET}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj hKvhjhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j)drm_pvr_dev_query_runtime_info (C struct) c.drm_pvr_dev_query_runtime_infohNtauh1jhjhhhj hNubj)}(hhh](j)}(hdrm_pvr_dev_query_runtime_infoh]j)}(h%struct drm_pvr_dev_query_runtime_infoh](j)}(hjh]hstruct}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>hhh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhK|ubj)}(h h]h }(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>hhhjOhK|ubj)}(hdrm_pvr_dev_query_runtime_infoh]j)}(hj<h]hdrm_pvr_dev_query_runtime_info}(hjbhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj^ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj>hhhjOhK|ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj:hhhjOhK|ubah}(h]j5ah ](j#j$eh"]h$]h&]j(j))j*huh1jhjOhK|hj7hhubj,)}(hhh]h)}(h?Container used to fetch information about the graphics runtime.h]h?Container used to fetch information about the graphics runtime.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhjhhubah}(h]h ]h"]h$]h&]uh1j+hj7hhhjOhK|ubeh}(h]h ](jHstructeh"]h$]h&]jMjHjNjjOjjPjQjRuh1jhhhjhj hNubjT)}(hX**Definition**:: struct drm_pvr_dev_query_runtime_info { __u64 free_list_min_pages; __u64 free_list_max_pages; __u32 common_store_alloc_region_size; __u32 common_store_partition_space_size; __u32 max_coeffs; __u32 cdm_max_local_mem_size_regs; }; **Members** ``free_list_min_pages`` Minimum allowed free list size, in PM physical pages. ``free_list_max_pages`` Maximum allowed free list size, in PM physical pages. ``common_store_alloc_region_size`` Size of the Allocation Region within the Common Store used for coefficient and shared registers, in dwords. ``common_store_partition_space_size`` Size of the Partition Space within the Common Store for output buffers, in dwords. ``max_coeffs`` Maximum coefficients, in dwords. ``cdm_max_local_mem_size_regs`` Maximum amount of local memory available to a compute kernel, in dwords.h](h)}(h**Definition**::h](j^)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhjubjy)}(hstruct drm_pvr_dev_query_runtime_info { __u64 free_list_min_pages; __u64 free_list_max_pages; __u32 common_store_alloc_region_size; __u32 common_store_partition_space_size; __u32 max_coeffs; __u32 cdm_max_local_mem_size_regs; };h]hstruct drm_pvr_dev_query_runtime_info { __u64 free_list_min_pages; __u64 free_list_max_pages; __u32 common_store_alloc_region_size; __u32 common_store_partition_space_size; __u32 max_coeffs; __u32 cdm_max_local_mem_size_regs; };}hjsbah}(h]h ]h"]h$]h&]jjuh1jxh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhjubh)}(h **Members**h]j^)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhjubj)}(hhh](j)}(hN``free_list_min_pages`` Minimum allowed free list size, in PM physical pages. h](j)}(h``free_list_min_pages``h]h)}(hjh]hfree_list_min_pages}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhjubj)}(hhh]h)}(h5Minimum allowed free list size, in PM physical pages.h]h5Minimum allowed free list size, in PM physical pages.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(hN``free_list_max_pages`` Maximum allowed free list size, in PM physical pages. h](j)}(h``free_list_max_pages``h]h)}(hj+h]hfree_list_max_pages}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj)ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhj%ubj)}(hhh]h)}(h5Maximum allowed free list size, in PM physical pages.h]h5Maximum allowed free list size, in PM physical pages.}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhjAubah}(h]h ]h"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]uh1jhj@hKhjubj)}(h``common_store_alloc_region_size`` Size of the Allocation Region within the Common Store used for coefficient and shared registers, in dwords. h](j)}(h"``common_store_alloc_region_size``h]h)}(hjeh]hcommon_store_alloc_region_size}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhjcubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhj_ubj)}(hhh]h)}(hkSize of the Allocation Region within the Common Store used for coefficient and shared registers, in dwords.h]hkSize of the Allocation Region within the Common Store used for coefficient and shared registers, in dwords.}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhj{ubah}(h]h ]h"]h$]h&]uh1jhj_ubeh}(h]h ]h"]h$]h&]uh1jhjzhKhjubj)}(hy``common_store_partition_space_size`` Size of the Partition Space within the Common Store for output buffers, in dwords. h](j)}(h%``common_store_partition_space_size``h]h)}(hjh]h!common_store_partition_space_size,}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhjubj)}(hhh]h)}(hRSize of the Partition Space within the Common Store for output buffers, in dwords.h]hRSize of the Partition Space within the Common Store for output buffers, in dwords.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h0``max_coeffs`` Maximum coefficients, in dwords. h](j)}(h``max_coeffs``h]h)}(hjh]h max_coeffs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhjubj)}(hhh]h)}(h Maximum coefficients, in dwords.h]h Maximum coefficients, in dwords.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(hh``cdm_max_local_mem_size_regs`` Maximum amount of local memory available to a compute kernel, in dwords.h](j)}(h``cdm_max_local_mem_size_regs``h]h)}(hjh]hcdm_max_local_mem_size_regs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhj ubj)}(hhh]h)}(hHMaximum amount of local memory available to a compute kernel, in dwords.h]hHMaximum amount of local memory available to a compute kernel, in dwords.}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj'hKhj(ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj'hKhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jShjhhhj hNubh)}(h**Description**h]j^)}(hjTh]h Description}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjRubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhjhhubh)}(hWhen fetching this type :c:type:`struct drm_pvr_ioctl_dev_query_args `.type must be set to ``DRM_PVR_DEV_QUERY_RUNTIME_INFO_GET``.h](hWhen fetching this type }(hjjhhhNhNubh)}(hL:c:type:`struct drm_pvr_ioctl_dev_query_args `h]h)}(hjth]h#struct drm_pvr_ioctl_dev_query_args}(hjvhhhNhNubah}(h]h ](j,jHc-typeeh"]h$]h&]uh1hhjrubah}(h]h ]h"]h$]h&]refdocj8 refdomainjHreftypetype refexplicitrefwarnj>jBjFdrm_pvr_ioctl_dev_query_argsuh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhjjubh.type must be set to }(hjjhhhNhNubh)}(h&``DRM_PVR_DEV_QUERY_RUNTIME_INFO_GET``h]h"DRM_PVR_DEV_QUERY_RUNTIME_INFO_GET}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjjubh.}(hjjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j#drm_pvr_dev_query_quirks (C struct)c.drm_pvr_dev_query_quirkshNtauh1jhjhhhj hNubj)}(hhh](j)}(hdrm_pvr_dev_query_quirksh]j)}(hstruct drm_pvr_dev_query_quirksh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKubj)}(hdrm_pvr_dev_query_quirksh]j)}(hjh]hdrm_pvr_dev_query_quirks}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhjhKubah}(h]jah ](j#j$eh"]h$]h&]j(j))j*huh1jhjhKhjhhubj,)}(hhh]h)}(hzContainer used to fetch information about hardware fixes for which the device may require support in the user mode driver.h]hzContainer used to fetch information about hardware fixes for which the device may require support in the user mode driver.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhjhhubah}(h]h ]h"]h$]h&]uh1j+hjhhhjhKubeh}(h]h ](jHstructeh"]h$]h&]jMjHjNj!jOj!jPjQjRuh1jhhhjhj hNubjT)}(hXa**Definition**:: struct drm_pvr_dev_query_quirks { __u64 quirks; __u16 count; __u16 musthave_count; __u32 _padding_c; }; **Members** ``quirks`` A userspace address for the hardware quirks __u32 array. The first **musthave_count** items in the list are quirks that the client must support for this device. If userspace does not support all these quirks then functionality is not guaranteed and client initialisation must fail. The remaining quirks in the list affect userspace and the kernel or firmware. They are disabled by default and require userspace to opt-in. The opt-in mechanism depends on the quirk. ``count`` Length of **quirks** (number of __u32). ``musthave_count`` The number of entries in **quirks** that are mandatory, starting at index 0. ``_padding_c`` Reserved. This field must be zeroed.h](h)}(h**Definition**::h](j^)}(h**Definition**h]h Definition}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj)ubh:}(hj)hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhj%ubjy)}(hwstruct drm_pvr_dev_query_quirks { __u64 quirks; __u16 count; __u16 musthave_count; __u32 _padding_c; };h]hwstruct drm_pvr_dev_query_quirks { __u64 quirks; __u16 count; __u16 musthave_count; __u32 _padding_c; };}hjFsbah}(h]h ]h"]h$]h&]jjuh1jxh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhj%ubh)}(h **Members**h]j^)}(hjWh]hMembers}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjUubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhj%ubj)}(hhh](j)}(hX``quirks`` A userspace address for the hardware quirks __u32 array. The first **musthave_count** items in the list are quirks that the client must support for this device. If userspace does not support all these quirks then functionality is not guaranteed and client initialisation must fail. The remaining quirks in the list affect userspace and the kernel or firmware. They are disabled by default and require userspace to opt-in. The opt-in mechanism depends on the quirk. h](j)}(h ``quirks``h]h)}(hjvh]hquirks}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjtubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhjpubj)}(hhh](h)}(h8A userspace address for the hardware quirks __u32 array.h]h8A userspace address for the hardware quirks __u32 array.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhjubh)}(hXThe first **musthave_count** items in the list are quirks that the client must support for this device. If userspace does not support all these quirks then functionality is not guaranteed and client initialisation must fail. The remaining quirks in the list affect userspace and the kernel or firmware. They are disabled by default and require userspace to opt-in. The opt-in mechanism depends on the quirk.h](h The first }(hjhhhNhNubj^)}(h**musthave_count**h]hmusthave_count}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjubhX{ items in the list are quirks that the client must support for this device. If userspace does not support all these quirks then functionality is not guaranteed and client initialisation must fail. The remaining quirks in the list affect userspace and the kernel or firmware. They are disabled by default and require userspace to opt-in. The opt-in mechanism depends on the quirk.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhjubeh}(h]h ]h"]h$]h&]uh1jhjpubeh}(h]h ]h"]h$]h&]uh1jhjhKhjmubj)}(h2``count`` Length of **quirks** (number of __u32). h](j)}(h ``count``h]h)}(hjh]hcount}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhjubj)}(hhh]h)}(h'Length of **quirks** (number of __u32).h](h Length of }(hjhhhNhNubj^)}(h **quirks**h]hquirks}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjubh (number of __u32).}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjmubj)}(h```musthave_count`` The number of entries in **quirks** that are mandatory, starting at index 0. h](j)}(h``musthave_count``h]h)}(hjh]hmusthave_count}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhjubj)}(hhh]h)}(hLThe number of entries in **quirks** that are mandatory, starting at index 0.h](hThe number of entries in }(hj5hhhNhNubj^)}(h **quirks**h]hquirks}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj5ubh) that are mandatory, starting at index 0.}(hj5hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhj2ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj1hKhjmubj)}(h3``_padding_c`` Reserved. This field must be zeroed.h](j)}(h``_padding_c``h]h)}(hjhh]h _padding_c}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjfubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhjbubj)}(hhh]h)}(h$Reserved. This field must be zeroed.h]h$Reserved. This field must be zeroed.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhj~ubah}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]uh1jhj}hKhjmubeh}(h]h ]h"]h$]h&]uh1jhj%ubeh}(h]h ] kernelindentah"]h$]h&]uh1jShjhhhj hNubh)}(h**Description**h]j^)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhjhhubh)}(hWhen fetching this type :c:type:`struct drm_pvr_ioctl_dev_query_args `.type must be set to ``DRM_PVR_DEV_QUERY_QUIRKS_GET``.h](hWhen fetching this type }(hjhhhNhNubh)}(hL:c:type:`struct drm_pvr_ioctl_dev_query_args `h]h)}(hjh]h#struct drm_pvr_ioctl_dev_query_args}(hjhhhNhNubah}(h]h ](j,jHc-typeeh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdocj8 refdomainjHreftypetype refexplicitrefwarnj>jBjFdrm_pvr_ioctl_dev_query_argsuh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhjubh.type must be set to }(hjhhhNhNubh)}(h ``DRM_PVR_DEV_QUERY_QUIRKS_GET``h]hDRM_PVR_DEV_QUERY_QUIRKS_GET}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j)drm_pvr_dev_query_enhancements (C struct) c.drm_pvr_dev_query_enhancementshNtauh1jhjhhhj hNubj)}(hhh](j)}(hdrm_pvr_dev_query_enhancementsh]j)}(h%struct drm_pvr_dev_query_enhancementsh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhj+hKubj)}(hdrm_pvr_dev_query_enhancementsh]j)}(hjh]hdrm_pvr_dev_query_enhancements}(hj>hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj:ubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhj+hKubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhj+hKubah}(h]jah ](j#j$eh"]h$]h&]j(j))j*huh1jhj+hKhjhhubj,)}(hhh]h)}(hContainer used to fetch information about optional enhancements supported by the device that require support in the user mode driver.h]hContainer used to fetch information about optional enhancements supported by the device that require support in the user mode driver.}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhj]hhubah}(h]h ]h"]h$]h&]uh1j+hjhhhj+hKubeh}(h]h ](jHstructeh"]h$]h&]jMjHjNjxjOjxjPjQjRuh1jhhhjhj hNubjT)}(hX^**Definition**:: struct drm_pvr_dev_query_enhancements { __u64 enhancements; __u16 count; __u16 _padding_a; __u32 _padding_c; }; **Members** ``enhancements`` A userspace address for the hardware enhancements __u32 array. These enhancements affect userspace and the kernel or firmware. They are disabled by default and require userspace to opt-in. The opt-in mechanism depends on the enhancement. ``count`` Length of **enhancements** (number of __u32). ``_padding_a`` Reserved. This field must be zeroed. ``_padding_c`` Reserved. This field must be zeroed.h](h)}(h**Definition**::h](j^)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhj|ubjy)}(hstruct drm_pvr_dev_query_enhancements { __u64 enhancements; __u16 count; __u16 _padding_a; __u32 _padding_c; };h]hstruct drm_pvr_dev_query_enhancements { __u64 enhancements; __u16 count; __u16 _padding_a; __u32 _padding_c; };}hjsbah}(h]h ]h"]h$]h&]jjuh1jxh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhj|ubh)}(h **Members**h]j^)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhj|ubj)}(hhh](j)}(hX``enhancements`` A userspace address for the hardware enhancements __u32 array. These enhancements affect userspace and the kernel or firmware. They are disabled by default and require userspace to opt-in. The opt-in mechanism depends on the enhancement. h](j)}(h``enhancements``h]h)}(hjh]h enhancements}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhjubj)}(hhh](h)}(h>A userspace address for the hardware enhancements __u32 array.h]h>A userspace address for the hardware enhancements __u32 array.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhjubh)}(hThese enhancements affect userspace and the kernel or firmware. They are disabled by default and require userspace to opt-in. The opt-in mechanism depends on the enhancement.h]hThese enhancements affect userspace and the kernel or firmware. They are disabled by default and require userspace to opt-in. The opt-in mechanism depends on the enhancement.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h8``count`` Length of **enhancements** (number of __u32). h](j)}(h ``count``h]h)}(hjh]hcount}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhjubj)}(hhh]h)}(h-Length of **enhancements** (number of __u32).h](h Length of }(hj/hhhNhNubj^)}(h**enhancements**h]h enhancements}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj/ubh (number of __u32).}(hj/hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj+hKhj,ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj+hKhjubj)}(h4``_padding_a`` Reserved. This field must be zeroed. h](j)}(h``_padding_a``h]h)}(hjah]h _padding_a}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhj[ubj)}(hhh]h)}(h$Reserved. This field must be zeroed.h]h$Reserved. This field must be zeroed.}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjvhKhjwubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1jhjvhKhjubj)}(h3``_padding_c`` Reserved. This field must be zeroed.h](j)}(h``_padding_c``h]h)}(hjh]h _padding_c}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhjubj)}(hhh]h)}(h$Reserved. This field must be zeroed.h]h$Reserved. This field must be zeroed.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubeh}(h]h ]h"]h$]h&]uh1jhj|ubeh}(h]h ] kernelindentah"]h$]h&]uh1jShjhhhj hNubh)}(h**Description**h]j^)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhjhhubh)}(hWhen fetching this type :c:type:`struct drm_pvr_ioctl_dev_query_args `.type must be set to ``DRM_PVR_DEV_ENHANCEMENTS_GET``.h](hWhen fetching this type }(hjhhhNhNubh)}(hL:c:type:`struct drm_pvr_ioctl_dev_query_args `h]h)}(hjh]h#struct drm_pvr_ioctl_dev_query_args}(hjhhhNhNubah}(h]h ](j,jHc-typeeh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdocj8 refdomainjHreftypetype refexplicitrefwarnj>jBjFdrm_pvr_ioctl_dev_query_argsuh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:36: ./include/uapi/drm/pvr_drm.hhKhjubh.type must be set to }(hjhhhNhNubh)}(h ``DRM_PVR_DEV_ENHANCEMENTS_GET``h]hDRM_PVR_DEV_ENHANCEMENTS_GET}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jdrm_pvr_heap_id (C enum)c.drm_pvr_heap_idhNtauh1jhjhhh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:43: ./include/uapi/drm/pvr_drm.hhNubj)}(hhh](j)}(hdrm_pvr_heap_idh]j)}(henum drm_pvr_heap_idh](j)}(hjh]henum}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMhhh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:43: ./include/uapi/drm/pvr_drm.hhK`ubj)}(h h]h }(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMhhhj^hK`ubj)}(hdrm_pvr_heap_idh]j)}(hjKh]hdrm_pvr_heap_id}(hjqhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjmubah}(h]h ](jjeh"]h$]h&]jjuh1jhjMhhhj^hK`ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjIhhhj^hK`ubah}(h]jCah ](j#j$eh"]h$]h&]j(j))j*huh1jhj^hK`hjFhhubj,)}(hhh]h)}(hOArray index for heap info data returned by ``DRM_PVR_DEV_QUERY_HEAP_INFO_GET``.h](h+Array index for heap info data returned by }(hjhhhNhNubh)}(h#``DRM_PVR_DEV_QUERY_HEAP_INFO_GET``h]hDRM_PVR_DEV_QUERY_HEAP_INFO_GET}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:43: ./include/uapi/drm/pvr_drm.hhMhjhhubah}(h]h ]h"]h$]h&]uh1j+hjFhhhj^hK`ubeh}(h]h ](jHenumeh"]h$]h&]jMjHjNjjOjjPjQjRuh1jhhhjhjEhNubjT)}(hX**Constants** ``DRM_PVR_HEAP_GENERAL`` General purpose heap. ``DRM_PVR_HEAP_PDS_CODE_DATA`` PDS code and data heap. ``DRM_PVR_HEAP_USC_CODE`` USC code heap. ``DRM_PVR_HEAP_RGNHDR`` Region header heap. Only used if GPU has BRN63142. ``DRM_PVR_HEAP_VIS_TEST`` Visibility test heap. ``DRM_PVR_HEAP_TRANSFER_FRAG`` Transfer fragment heap. ``DRM_PVR_HEAP_COUNT`` The number of heaps returned by ``DRM_PVR_DEV_QUERY_HEAP_INFO_GET``. More heaps may be added, so this also serves as the copy limit when sent by the caller.h](h)}(h **Constants**h]j^)}(hjh]h Constants}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:43: ./include/uapi/drm/pvr_drm.hhMhjubj)}(hhh](j)}(h/``DRM_PVR_HEAP_GENERAL`` General purpose heap. h](j)}(h``DRM_PVR_HEAP_GENERAL``h]h)}(hjh]hDRM_PVR_HEAP_GENERAL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:43: ./include/uapi/drm/pvr_drm.hhM hjubj)}(hhh]h)}(hGeneral purpose heap.h]hGeneral purpose heap.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubj)}(h7``DRM_PVR_HEAP_PDS_CODE_DATA`` PDS code and data heap. h](j)}(h``DRM_PVR_HEAP_PDS_CODE_DATA``h]h)}(hjh]hDRM_PVR_HEAP_PDS_CODE_DATA}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:43: ./include/uapi/drm/pvr_drm.hhM hjubj)}(hhh]h)}(hPDS code and data heap.h]hPDS code and data heap.}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4hM hj5ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj4hM hjubj)}(h)``DRM_PVR_HEAP_USC_CODE`` USC code heap. h](j)}(h``DRM_PVR_HEAP_USC_CODE``h]h)}(hjXh]hDRM_PVR_HEAP_USC_CODE}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjVubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:43: ./include/uapi/drm/pvr_drm.hhMhjRubj)}(hhh]h)}(hUSC code heap.h]hUSC code heap.}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjmhMhjnubah}(h]h ]h"]h$]h&]uh1jhjRubeh}(h]h ]h"]h$]h&]uh1jhjmhMhjubj)}(hK``DRM_PVR_HEAP_RGNHDR`` Region header heap. Only used if GPU has BRN63142. h](j)}(h``DRM_PVR_HEAP_RGNHDR``h]h)}(hjh]hDRM_PVR_HEAP_RGNHDR}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:43: ./include/uapi/drm/pvr_drm.hhMhjubj)}(hhh]h)}(h2Region header heap. Only used if GPU has BRN63142.h]h2Region header heap. Only used if GPU has BRN63142.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h0``DRM_PVR_HEAP_VIS_TEST`` Visibility test heap. h](j)}(h``DRM_PVR_HEAP_VIS_TEST``h]h)}(hjh]hDRM_PVR_HEAP_VIS_TEST}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:43: ./include/uapi/drm/pvr_drm.hhMhjubj)}(hhh]h)}(hVisibility test heap.h]hVisibility test heap.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h7``DRM_PVR_HEAP_TRANSFER_FRAG`` Transfer fragment heap. h](j)}(h``DRM_PVR_HEAP_TRANSFER_FRAG``h]h)}(hjh]hDRM_PVR_HEAP_TRANSFER_FRAG}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:43: ./include/uapi/drm/pvr_drm.hhMhjubj)}(hhh]h)}(hTransfer fragment heap.h]hTransfer fragment heap.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h``DRM_PVR_HEAP_COUNT`` The number of heaps returned by ``DRM_PVR_DEV_QUERY_HEAP_INFO_GET``. More heaps may be added, so this also serves as the copy limit when sent by the caller.h](j)}(h``DRM_PVR_HEAP_COUNT``h]h)}(hj<h]hDRM_PVR_HEAP_COUNT}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj:ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:43: ./include/uapi/drm/pvr_drm.hhMhj6ubj)}(hhh](h)}(hDThe number of heaps returned by ``DRM_PVR_DEV_QUERY_HEAP_INFO_GET``.h](h The number of heaps returned by }(hjUhhhNhNubh)}(h#``DRM_PVR_DEV_QUERY_HEAP_INFO_GET``h]hDRM_PVR_DEV_QUERY_HEAP_INFO_GET}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjUubh.}(hjUhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:43: ./include/uapi/drm/pvr_drm.hhMhjRubh)}(hWMore heaps may be added, so this also serves as the copy limit when sent by the caller.h]hWMore heaps may be added, so this also serves as the copy limit when sent by the caller.}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjQhMhjRubeh}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1jhjQhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jShjhhhjEhNubh)}(h**Description**h]j^)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:43: ./include/uapi/drm/pvr_drm.hhM"hjhhubh)}(hFor compatibility reasons all indices will be present in the returned array, however some heaps may not be present. These are indicated where :c:type:`struct drm_pvr_heap `.size is set to zero.h](hFor compatibility reasons all indices will be present in the returned array, however some heaps may not be present. These are indicated where }(hjhhhNhNubh)}(h,:c:type:`struct drm_pvr_heap `h]h)}(hjh]hstruct drm_pvr_heap}(hjhhhNhNubah}(h]h ](j,jHc-typeeh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdocj8 refdomainjHreftypetype refexplicitrefwarnj>jBjF drm_pvr_heapuh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:43: ./include/uapi/drm/pvr_drm.hhMhjubh.size is set to zero.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhjhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jdrm_pvr_heap (C struct)c.drm_pvr_heaphNtauh1jhjhhhjEhNubj)}(hhh](j)}(h drm_pvr_heaph]j)}(hstruct drm_pvr_heaph](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:43: ./include/uapi/drm/pvr_drm.hhM ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhj hM ubj)}(h drm_pvr_heaph]j)}(hjh]h drm_pvr_heap}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhj hM ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhj hM ubah}(h]jah ](j#j$eh"]h$]h&]j(j))j*huh1jhj hM hjhhubj,)}(hhh]h)}(h2Container holding information about a single heap.h]h2Container holding information about a single heap.}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:43: ./include/uapi/drm/pvr_drm.hhM#hj?hhubah}(h]h ]h"]h$]h&]uh1j+hjhhhj hM ubeh}(h]h ](jHstructeh"]h$]h&]jMjHjNjZjOjZjPjQjRuh1jhhhjhjEhNubjT)}(hXY**Definition**:: struct drm_pvr_heap { __u64 base; __u64 size; __u32 flags; __u32 page_size_log2; }; **Members** ``base`` Base address of heap. ``size`` Size of heap, in bytes. Will be 0 if the heap is not present. ``flags`` Flags for this heap. Currently always 0. ``page_size_log2`` Log2 of page size.h](h)}(h**Definition**::h](j^)}(h**Definition**h]h Definition}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjbubh:}(hjbhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:43: ./include/uapi/drm/pvr_drm.hhM'hj^ubjy)}(hcstruct drm_pvr_heap { __u64 base; __u64 size; __u32 flags; __u32 page_size_log2; };h]hcstruct drm_pvr_heap { __u64 base; __u64 size; __u32 flags; __u32 page_size_log2; };}hjsbah}(h]h ]h"]h$]h&]jjuh1jxh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:43: ./include/uapi/drm/pvr_drm.hhM)hj^ubh)}(h **Members**h]j^)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:43: ./include/uapi/drm/pvr_drm.hhM0hj^ubj)}(hhh](j)}(h``base`` Base address of heap. h](j)}(h``base``h]h)}(hjh]hbase}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:43: ./include/uapi/drm/pvr_drm.hhM(hjubj)}(hhh]h)}(hBase address of heap.h]hBase address of heap.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM(hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM(hjubj)}(hG``size`` Size of heap, in bytes. Will be 0 if the heap is not present. h](j)}(h``size``h]h)}(hjh]hsize}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:43: ./include/uapi/drm/pvr_drm.hhKhjubj)}(hhh]h)}(h=Size of heap, in bytes. Will be 0 if the heap is not present.h]h=Size of heap, in bytes. Will be 0 if the heap is not present.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h3``flags`` Flags for this heap. Currently always 0. h](j)}(h ``flags``h]h)}(hj!h]hflags}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:43: ./include/uapi/drm/pvr_drm.hhKhjubj)}(hhh]h)}(h(Flags for this heap. Currently always 0.h]h(Flags for this heap. Currently always 0.}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6hKhj7ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj6hKhjubj)}(h%``page_size_log2`` Log2 of page size.h](j)}(h``page_size_log2``h]h)}(hjZh]hpage_size_log2}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjXubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:43: ./include/uapi/drm/pvr_drm.hhKhjTubj)}(hhh]h)}(hLog2 of page size.h]hLog2 of page size.}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:43: ./include/uapi/drm/pvr_drm.hhKhjpubah}(h]h ]h"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]uh1jhjohKhjubeh}(h]h ]h"]h$]h&]uh1jhj^ubeh}(h]h ] kernelindentah"]h$]h&]uh1jShjhhhjEhNubh)}(h**Description**h]j^)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:43: ./include/uapi/drm/pvr_drm.hhKhjhhubh)}(h(This will always be fetched as an array.h]h(This will always be fetched as an array.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:43: ./include/uapi/drm/pvr_drm.hhM$hjhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j&drm_pvr_dev_query_heap_info (C struct)c.drm_pvr_dev_query_heap_infohNtauh1jhjhhhjEhNubj)}(hhh](j)}(hdrm_pvr_dev_query_heap_infoh]j)}(h"struct drm_pvr_dev_query_heap_infoh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:43: ./include/uapi/drm/pvr_drm.hhM)ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhM)ubj)}(hdrm_pvr_dev_query_heap_infoh]j)}(hjh]hdrm_pvr_dev_query_heap_info}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhM)ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhjhM)ubah}(h]jah ](j#j$eh"]h$]h&]j(j))j*huh1jhjhM)hjhhubj,)}(hhh]h)}(hOContainer used to fetch information about heaps supported by the device driver.h]hOContainer used to fetch information about heaps supported by the device driver.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:43: ./include/uapi/drm/pvr_drm.hhM6hjhhubah}(h]h ]h"]h$]h&]uh1j+hjhhhjhM)ubeh}(h]h ](jHstructeh"]h$]h&]jMjHjNj5jOj5jPjQjRuh1jhhhjhjEhNubjT)}(hXA**Definition**:: struct drm_pvr_dev_query_heap_info { struct drm_pvr_obj_array heaps; }; **Members** ``heaps`` Array of :c:type:`struct drm_pvr_heap `. If pointer is NULL, the count and stride will be updated with those known to the driver version, to facilitate allocation by the caller.h](h)}(h**Definition**::h](j^)}(h**Definition**h]h Definition}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj=ubh:}(hj=hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:43: ./include/uapi/drm/pvr_drm.hhM:hj9ubjy)}(hKstruct drm_pvr_dev_query_heap_info { struct drm_pvr_obj_array heaps; };h]hKstruct drm_pvr_dev_query_heap_info { struct drm_pvr_obj_array heaps; };}hjZsbah}(h]h ]h"]h$]h&]jjuh1jxh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:43: ./include/uapi/drm/pvr_drm.hhM<hj9ubh)}(h **Members**h]j^)}(hjkh]hMembers}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjiubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:43: ./include/uapi/drm/pvr_drm.hhM@hj9ubj)}(hhh]j)}(h``heaps`` Array of :c:type:`struct drm_pvr_heap `. If pointer is NULL, the count and stride will be updated with those known to the driver version, to facilitate allocation by the caller.h](j)}(h ``heaps``h]h)}(hjh]hheaps}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:43: ./include/uapi/drm/pvr_drm.hhMDhjubj)}(hhh]h)}(hArray of :c:type:`struct drm_pvr_heap `. If pointer is NULL, the count and stride will be updated with those known to the driver version, to facilitate allocation by the caller.h](h Array of }(hjhhhNhNubh)}(h,:c:type:`struct drm_pvr_heap `h]h)}(hjh]hstruct drm_pvr_heap}(hjhhhNhNubah}(h]h ](j,jHc-typeeh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdocj8 refdomainjHreftypetype refexplicitrefwarnj>jBjF drm_pvr_heapuh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:43: ./include/uapi/drm/pvr_drm.hhMChjubh. If pointer is NULL, the count and stride will be updated with those known to the driver version, to facilitate allocation by the caller.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMChjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMDhjubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ] kernelindentah"]h$]h&]uh1jShjhhhjEhNubh)}(h**Description**h]j^)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:43: ./include/uapi/drm/pvr_drm.hhMHhjhhubh)}(hPlease note all driver-supported heaps will be returned up to :c:type:`heaps.count `. Some heaps will not be present in all devices, which will be indicated by :c:type:`struct drm_pvr_heap `.size being set to zero.h](h>Please note all driver-supported heaps will be returned up to }(hjhhhNhNubh)}(h:c:type:`heaps.count `h]h)}(hjh]h heaps.count}(hjhhhNhNubah}(h]h ](j,jHc-typeeh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdocj8 refdomainjHreftypetype refexplicitrefwarnj>jBjFheapsuh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:43: ./include/uapi/drm/pvr_drm.hhM7hjubhL. Some heaps will not be present in all devices, which will be indicated by }(hjhhhNhNubh)}(h,:c:type:`struct drm_pvr_heap `h]h)}(hj4h]hstruct drm_pvr_heap}(hj6hhhNhNubah}(h]h ](j,jHc-typeeh"]h$]h&]uh1hhj2ubah}(h]h ]h"]h$]h&]refdocj8 refdomainjHreftypetype refexplicitrefwarnj>jBjF drm_pvr_heapuh1hhj-hM7hjubh.size being set to zero.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj-hM7hjhhubh)}(hWhen fetching this type :c:type:`struct drm_pvr_ioctl_dev_query_args `.type must be set to ``DRM_PVR_DEV_QUERY_HEAP_INFO_GET``.h](hWhen fetching this type }(hj[hhhNhNubh)}(hL:c:type:`struct drm_pvr_ioctl_dev_query_args `h]h)}(hjeh]h#struct drm_pvr_ioctl_dev_query_args}(hjghhhNhNubah}(h]h ](j,jHc-typeeh"]h$]h&]uh1hhjcubah}(h]h ]h"]h$]h&]refdocj8 refdomainjHreftypetype refexplicitrefwarnj>jBjFdrm_pvr_ioctl_dev_query_argsuh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:43: ./include/uapi/drm/pvr_drm.hhM;hj[ubh.type must be set to }(hj[hhhNhNubh)}(h#``DRM_PVR_DEV_QUERY_HEAP_INFO_GET``h]hDRM_PVR_DEV_QUERY_HEAP_INFO_GET}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj[ubh.}(hj[hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhM;hjhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j'drm_pvr_static_data_area_usage (C enum) c.drm_pvr_static_data_area_usagehNtauh1jhjhhh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:48: ./include/uapi/drm/pvr_drm.hhNubj)}(hhh](j)}(hdrm_pvr_static_data_area_usageh]j)}(h#enum drm_pvr_static_data_area_usageh](j)}(hjh]henum}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:48: ./include/uapi/drm/pvr_drm.hhK`ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhK`ubj)}(hdrm_pvr_static_data_area_usageh]j)}(hjh]hdrm_pvr_static_data_area_usage}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhK`ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhjhK`ubah}(h]jah ](j#j$eh"]h$]h&]j(j))j*huh1jhjhK`hjhhubj,)}(hhh]h)}(h^Array index for static data area info returned by ``DRM_PVR_DEV_QUERY_STATIC_DATA_AREAS_GET``.h](h2Array index for static data area info returned by }(hjhhhNhNubh)}(h+``DRM_PVR_DEV_QUERY_STATIC_DATA_AREAS_GET``h]h'DRM_PVR_DEV_QUERY_STATIC_DATA_AREAS_GET}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:48: ./include/uapi/drm/pvr_drm.hhMJhjhhubah}(h]h ]h"]h$]h&]uh1j+hjhhhjhK`ubeh}(h]h ](jHenumeh"]h$]h&]jMjHjNj%jOj%jPjQjRuh1jhhhjhjhNubjT)}(hX**Constants** ``DRM_PVR_STATIC_DATA_AREA_EOT`` End of Tile PDS program code segment. The End of Tile PDS task runs at completion of a tile during a fragment job, and is responsible for emitting the tile to the Pixel Back End. ``DRM_PVR_STATIC_DATA_AREA_FENCE`` MCU fence area, used during cache flush and invalidation. This must point to valid physical memory but the contents otherwise are not used. ``DRM_PVR_STATIC_DATA_AREA_VDM_SYNC`` VDM sync program. The VDM sync program is used to synchronise multiple areas of the GPU hardware. ``DRM_PVR_STATIC_DATA_AREA_YUV_CSC`` YUV coefficients. Area contains up to 16 slots with stride of 64 bytes. Each is a 3x4 matrix of u16 fixed point numbers, with 1 sign bit, 2 integer bits and 13 fractional bits. The slots are : 0 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR 1 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR (full range) 2 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR (conformant range) 3 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR (full range) 4 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR (conformant range) 5 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR (full range) 6 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR (conformant range) 7 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR (full range) 8 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR (conformant range) 9 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR (conformant range, 10 bit) 10 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR (conformant range, 10 bit) 11 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR (conformant range, 10 bit) 14 = Identity (biased) 15 = Identityh](h)}(h **Constants**h]j^)}(hj/h]h Constants}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj-ubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:48: ./include/uapi/drm/pvr_drm.hhMNhj)ubj)}(hhh](j)}(h``DRM_PVR_STATIC_DATA_AREA_EOT`` End of Tile PDS program code segment. The End of Tile PDS task runs at completion of a tile during a fragment job, and is responsible for emitting the tile to the Pixel Back End. h](j)}(h ``DRM_PVR_STATIC_DATA_AREA_EOT``h]h)}(hjNh]hDRM_PVR_STATIC_DATA_AREA_EOT}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjLubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:48: ./include/uapi/drm/pvr_drm.hhMThjHubj)}(hhh](h)}(h%End of Tile PDS program code segment.h]h%End of Tile PDS program code segment.}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:48: ./include/uapi/drm/pvr_drm.hhMQhjdubh)}(hThe End of Tile PDS task runs at completion of a tile during a fragment job, and is responsible for emitting the tile to the Pixel Back End.h]hThe End of Tile PDS task runs at completion of a tile during a fragment job, and is responsible for emitting the tile to the Pixel Back End.}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:48: ./include/uapi/drm/pvr_drm.hhMShjdubeh}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhjchMThjEubj)}(h``DRM_PVR_STATIC_DATA_AREA_FENCE`` MCU fence area, used during cache flush and invalidation. This must point to valid physical memory but the contents otherwise are not used. h](j)}(h"``DRM_PVR_STATIC_DATA_AREA_FENCE``h]h)}(hjh]hDRM_PVR_STATIC_DATA_AREA_FENCE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:48: ./include/uapi/drm/pvr_drm.hhMZhjubj)}(hhh](h)}(h9MCU fence area, used during cache flush and invalidation.h]h9MCU fence area, used during cache flush and invalidation.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:48: ./include/uapi/drm/pvr_drm.hhMWhjubh)}(hQThis must point to valid physical memory but the contents otherwise are not used.h]hQThis must point to valid physical memory but the contents otherwise are not used.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMZhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMZhjEubj)}(h``DRM_PVR_STATIC_DATA_AREA_VDM_SYNC`` VDM sync program. The VDM sync program is used to synchronise multiple areas of the GPU hardware. h](j)}(h%``DRM_PVR_STATIC_DATA_AREA_VDM_SYNC``h]h)}(hjh]h!DRM_PVR_STATIC_DATA_AREA_VDM_SYNC}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:48: ./include/uapi/drm/pvr_drm.hhM_hjubj)}(hhh](h)}(hVDM sync program.h]hVDM sync program.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:48: ./include/uapi/drm/pvr_drm.hhM]hjubh)}(hOThe VDM sync program is used to synchronise multiple areas of the GPU hardware.h]hOThe VDM sync program is used to synchronise multiple areas of the GPU hardware.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM_hjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM_hjEubj)}(hX_``DRM_PVR_STATIC_DATA_AREA_YUV_CSC`` YUV coefficients. Area contains up to 16 slots with stride of 64 bytes. Each is a 3x4 matrix of u16 fixed point numbers, with 1 sign bit, 2 integer bits and 13 fractional bits. The slots are : 0 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR 1 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR (full range) 2 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR (conformant range) 3 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR (full range) 4 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR (conformant range) 5 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR (full range) 6 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR (conformant range) 7 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR (full range) 8 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR (conformant range) 9 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR (conformant range, 10 bit) 10 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR (conformant range, 10 bit) 11 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR (conformant range, 10 bit) 14 = Identity (biased) 15 = Identityh](j)}(h$``DRM_PVR_STATIC_DATA_AREA_YUV_CSC``h]h)}(hj'h]h DRM_PVR_STATIC_DATA_AREA_YUV_CSC}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:48: ./include/uapi/drm/pvr_drm.hhMthj!ubj)}(hhh](h)}(hYUV coefficients.h]hYUV coefficients.}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:48: ./include/uapi/drm/pvr_drm.hhMbhj=ubh)}(hArea contains up to 16 slots with stride of 64 bytes. Each is a 3x4 matrix of u16 fixed point numbers, with 1 sign bit, 2 integer bits and 13 fractional bits.h]hArea contains up to 16 slots with stride of 64 bytes. Each is a 3x4 matrix of u16 fixed point numbers, with 1 sign bit, 2 integer bits and 13 fractional bits.}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:48: ./include/uapi/drm/pvr_drm.hhMdhj=ubh)}(hXThe slots are : 0 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR 1 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR (full range) 2 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR (conformant range) 3 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR (full range) 4 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR (conformant range) 5 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR (full range) 6 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR (conformant range) 7 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR (full range) 8 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR (conformant range) 9 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR (conformant range, 10 bit) 10 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR (conformant range, 10 bit) 11 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR (conformant range, 10 bit) 14 = Identity (biased) 15 = Identityh]hXThe slots are : 0 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR 1 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR (full range) 2 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR (conformant range) 3 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR (full range) 4 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR (conformant range) 5 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR (full range) 6 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR (conformant range) 7 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR (full range) 8 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR (conformant range) 9 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR (conformant range, 10 bit) 10 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR (conformant range, 10 bit) 11 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR (conformant range, 10 bit) 14 = Identity (biased) 15 = Identity}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:48: ./include/uapi/drm/pvr_drm.hhMghj=ubeh}(h]h ]h"]h$]h&]uh1jhj!ubeh}(h]h ]h"]h$]h&]uh1jhj<hMthjEubeh}(h]h ]h"]h$]h&]uh1jhj)ubeh}(h]h ] kernelindentah"]h$]h&]uh1jShjhhhjhNubh)}(h**Description**h]j^)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:48: ./include/uapi/drm/pvr_drm.hhMxhjhhubh)}(hFor compatibility reasons all indices will be present in the returned array, however some areas may not be present. These are indicated where :c:type:`struct drm_pvr_static_data_area `.size is set to zero.h](hFor compatibility reasons all indices will be present in the returned array, however some areas may not be present. These are indicated where }(hjhhhNhNubh)}(hD:c:type:`struct drm_pvr_static_data_area `h]h)}(hjh]hstruct drm_pvr_static_data_area}(hjhhhNhNubah}(h]h ](j,jHc-typeeh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdocj8 refdomainjHreftypetype refexplicitrefwarnj>jBjFdrm_pvr_static_data_areauh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:48: ./include/uapi/drm/pvr_drm.hhMKhjubh.size is set to zero.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMKhjhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j#drm_pvr_static_data_area (C struct)c.drm_pvr_static_data_areahNtauh1jhjhhhjhNubj)}(hhh](j)}(hdrm_pvr_static_data_areah]j)}(hstruct drm_pvr_static_data_areah](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:48: ./include/uapi/drm/pvr_drm.hhMRubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMRubj)}(hdrm_pvr_static_data_areah]j)}(hjh]hdrm_pvr_static_data_area}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhMRubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhjhMRubah}(h]jah ](j#j$eh"]h$]h&]j(j))j*huh1jhjhMRhjhhubj,)}(hhh]h)}(h>Container holding information about a single static data area.h]h>Container holding information about a single static data area.}(hj+ hhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:48: ./include/uapi/drm/pvr_drm.hhMhj( hhubah}(h]h ]h"]h$]h&]uh1j+hjhhhjhMRubeh}(h]h ](jHstructeh"]h$]h&]jMjHjNjC jOjC jPjQjRuh1jhhhjhjhNubjT)}(hXA**Definition**:: struct drm_pvr_static_data_area { __u16 area_usage; __u16 location_heap_id; __u32 size; __u64 offset; }; **Members** ``area_usage`` Usage of static data area. See :c:type:`enum drm_pvr_static_data_area_usage `. ``location_heap_id`` Array index of heap where this of static data area is located. This array is fetched using ``DRM_PVR_DEV_QUERY_HEAP_INFO_GET``. ``size`` Size of static data area. Not present if set to zero. ``offset`` Offset of static data area from start of heap.h](h)}(h**Definition**::h](j^)}(h**Definition**h]h Definition}(hjO hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjK ubh:}(hjK hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:48: ./include/uapi/drm/pvr_drm.hhMhjG ubjy)}(hxstruct drm_pvr_static_data_area { __u16 area_usage; __u16 location_heap_id; __u32 size; __u64 offset; };h]hxstruct drm_pvr_static_data_area { __u16 area_usage; __u16 location_heap_id; __u32 size; __u64 offset; };}hjh sbah}(h]h ]h"]h$]h&]jjuh1jxh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:48: ./include/uapi/drm/pvr_drm.hhMhjG ubh)}(h **Members**h]j^)}(hjy h]hMembers}(hj{ hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjw ubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:48: ./include/uapi/drm/pvr_drm.hhMhjG ubj)}(hhh](j)}(h~``area_usage`` Usage of static data area. See :c:type:`enum drm_pvr_static_data_area_usage `. h](j)}(h``area_usage``h]h)}(hj h]h area_usage}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:48: ./include/uapi/drm/pvr_drm.hhMhj ubj)}(hhh]h)}(hnUsage of static data area. See :c:type:`enum drm_pvr_static_data_area_usage `.h](hUsage of static data area. See }(hj hhhNhNubh)}(hN:c:type:`enum drm_pvr_static_data_area_usage `h]h)}(hj h]h#enum drm_pvr_static_data_area_usage}(hj hhhNhNubah}(h]h ](j,jHc-typeeh"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]refdocj8 refdomainjHreftypetype refexplicitrefwarnj>jBjFdrm_pvr_static_data_area_usageuh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:48: ./include/uapi/drm/pvr_drm.hhMhj ubh.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj hMhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hMhj ubj)}(h``location_heap_id`` Array index of heap where this of static data area is located. This array is fetched using ``DRM_PVR_DEV_QUERY_HEAP_INFO_GET``. h](j)}(h``location_heap_id``h]h)}(hj h]hlocation_heap_id}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:48: ./include/uapi/drm/pvr_drm.hhMhj ubj)}(hhh]h)}(hArray index of heap where this of static data area is located. This array is fetched using ``DRM_PVR_DEV_QUERY_HEAP_INFO_GET``.h](h[Array index of heap where this of static data area is located. This array is fetched using }(hj!hhhNhNubh)}(h#``DRM_PVR_DEV_QUERY_HEAP_INFO_GET``h]hDRM_PVR_DEV_QUERY_HEAP_INFO_GET}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj!ubh.}(hj!hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:48: ./include/uapi/drm/pvr_drm.hhMhj !ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj !hMhj ubj)}(h?``size`` Size of static data area. Not present if set to zero. h](j)}(h``size``h]h)}(hjA!h]hsize}(hjC!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj?!ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:48: ./include/uapi/drm/pvr_drm.hhKhj;!ubj)}(hhh]h)}(h5Size of static data area. Not present if set to zero.h]h5Size of static data area. Not present if set to zero.}(hjZ!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjV!hKhjW!ubah}(h]h ]h"]h$]h&]uh1jhj;!ubeh}(h]h ]h"]h$]h&]uh1jhjV!hKhj ubj)}(h9``offset`` Offset of static data area from start of heap.h](j)}(h ``offset``h]h)}(hjz!h]hoffset}(hj|!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjx!ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:48: ./include/uapi/drm/pvr_drm.hhKhjt!ubj)}(hhh]h)}(h.Offset of static data area from start of heap.h]h.Offset of static data area from start of heap.}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:48: ./include/uapi/drm/pvr_drm.hhKhj!ubah}(h]h ]h"]h$]h&]uh1jhjt!ubeh}(h]h ]h"]h$]h&]uh1jhj!hKhj ubeh}(h]h ]h"]h$]h&]uh1jhjG ubeh}(h]h ] kernelindentah"]h$]h&]uh1jShjhhhjhNubh)}(h**Description**h]j^)}(hj!h]h Description}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj!ubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:48: ./include/uapi/drm/pvr_drm.hhKhjhhubh)}(h(This will always be fetched as an array.h]h(This will always be fetched as an array.}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:48: ./include/uapi/drm/pvr_drm.hhMhjhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j.drm_pvr_dev_query_static_data_areas (C struct)%c.drm_pvr_dev_query_static_data_areashNtauh1jhjhhhjhNubj)}(hhh](j)}(h#drm_pvr_dev_query_static_data_areash]j)}(h*struct drm_pvr_dev_query_static_data_areash](j)}(hjh]hstruct}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!hhh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:48: ./include/uapi/drm/pvr_drm.hhMubj)}(h h]h }(hj "hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!hhhj"hMubj)}(h#drm_pvr_dev_query_static_data_areash]j)}(hj!h]h#drm_pvr_dev_query_static_data_areas}(hj"hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj"ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj!hhhj"hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj!hhhj"hMubah}(h]j!ah ](j#j$eh"]h$]h&]j(j))j*huh1jhj"hMhj!hhubj,)}(hhh]h)}(hhContainer used to fetch information about the static data areas in heaps supported by the device driver.h]hhContainer used to fetch information about the static data areas in heaps supported by the device driver.}(hj="hhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:48: ./include/uapi/drm/pvr_drm.hhMhj:"hhubah}(h]h ]h"]h$]h&]uh1j+hj!hhhj"hMubeh}(h]h ](jHstructeh"]h$]h&]jMjHjNjU"jOjU"jPjQjRuh1jhhhjhjhNubjT)}(hXy**Definition**:: struct drm_pvr_dev_query_static_data_areas { struct drm_pvr_obj_array static_data_areas; }; **Members** ``static_data_areas`` Array of :c:type:`struct drm_pvr_static_data_area `. If pointer is NULL, the count and stride will be updated with those known to the driver version, to facilitate allocation by the caller.h](h)}(h**Definition**::h](j^)}(h**Definition**h]h Definition}(hja"hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj]"ubh:}(hj]"hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:48: ./include/uapi/drm/pvr_drm.hhMhjY"ubjy)}(h_struct drm_pvr_dev_query_static_data_areas { struct drm_pvr_obj_array static_data_areas; };h]h_struct drm_pvr_dev_query_static_data_areas { struct drm_pvr_obj_array static_data_areas; };}hjz"sbah}(h]h ]h"]h$]h&]jjuh1jxh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:48: ./include/uapi/drm/pvr_drm.hhMhjY"ubh)}(h **Members**h]j^)}(hj"h]hMembers}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj"ubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:48: ./include/uapi/drm/pvr_drm.hhMhjY"ubj)}(hhh]j)}(h``static_data_areas`` Array of :c:type:`struct drm_pvr_static_data_area `. If pointer is NULL, the count and stride will be updated with those known to the driver version, to facilitate allocation by the caller.h](j)}(h``static_data_areas``h]h)}(hj"h]hstatic_data_areas}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:48: ./include/uapi/drm/pvr_drm.hhMhj"ubj)}(hhh]h)}(hArray of :c:type:`struct drm_pvr_static_data_area `. If pointer is NULL, the count and stride will be updated with those known to the driver version, to facilitate allocation by the caller.h](h Array of }(hj"hhhNhNubh)}(hD:c:type:`struct drm_pvr_static_data_area `h]h)}(hj"h]hstruct drm_pvr_static_data_area}(hj"hhhNhNubah}(h]h ](j,jHc-typeeh"]h$]h&]uh1hhj"ubah}(h]h ]h"]h$]h&]refdocj8 refdomainjHreftypetype refexplicitrefwarnj>jBjFdrm_pvr_static_data_areauh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:48: ./include/uapi/drm/pvr_drm.hhMhj"ubh. If pointer is NULL, the count and stride will be updated with those known to the driver version, to facilitate allocation by the caller.}(hj"hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj"hMhj"ubah}(h]h ]h"]h$]h&]uh1jhj"ubeh}(h]h ]h"]h$]h&]uh1jhj"hMhj"ubah}(h]h ]h"]h$]h&]uh1jhjY"ubeh}(h]h ] kernelindentah"]h$]h&]uh1jShjhhhjhNubh)}(h**Description**h]j^)}(hj#h]h Description}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj#ubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:48: ./include/uapi/drm/pvr_drm.hhMhjhhubh)}(hX"Please note all driver-supported static data areas will be returned up to :c:type:`static_data_areas.count `. Some will not be present for all devices which, will be indicated by :c:type:`struct drm_pvr_static_data_area `.size being set to zero.h](hJPlease note all driver-supported static data areas will be returned up to }(hj&#hhhNhNubh)}(h5:c:type:`static_data_areas.count `h]h)}(hj0#h]hstatic_data_areas.count}(hj2#hhhNhNubah}(h]h ](j,jHc-typeeh"]h$]h&]uh1hhj.#ubah}(h]h ]h"]h$]h&]refdocj8 refdomainjHreftypetype refexplicitrefwarnj>jBjFstatic_data_areasuh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:48: ./include/uapi/drm/pvr_drm.hhMhj&#ubhG. Some will not be present for all devices which, will be indicated by }(hj&#hhhNhNubh)}(hD:c:type:`struct drm_pvr_static_data_area `h]h)}(hjT#h]hstruct drm_pvr_static_data_area}(hjV#hhhNhNubah}(h]h ](j,jHc-typeeh"]h$]h&]uh1hhjR#ubah}(h]h ]h"]h$]h&]refdocj8 refdomainjHreftypetype refexplicitrefwarnj>jBjFdrm_pvr_static_data_areauh1hhjM#hMhj&#ubh.size being set to zero.}(hj&#hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjM#hMhjhhubh)}(hFurther, some heaps will not be present either. See :c:type:`struct drm_pvr_dev_query_heap_info `.h](h4Further, some heaps will not be present either. See }(hj{#hhhNhNubh)}(hJ:c:type:`struct drm_pvr_dev_query_heap_info `h]h)}(hj#h]h"struct drm_pvr_dev_query_heap_info}(hj#hhhNhNubah}(h]h ](j,jHc-typeeh"]h$]h&]uh1hhj#ubah}(h]h ]h"]h$]h&]refdocj8 refdomainjHreftypetype refexplicitrefwarnj>jBjFdrm_pvr_dev_query_heap_infouh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:48: ./include/uapi/drm/pvr_drm.hhMhj{#ubh.}(hj{#hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj#hMhjhhubh)}(hWhen fetching this type :c:type:`struct drm_pvr_ioctl_dev_query_args `.type must be set to ``DRM_PVR_DEV_QUERY_STATIC_DATA_AREAS_GET``.h](hWhen fetching this type }(hj#hhhNhNubh)}(hL:c:type:`struct drm_pvr_ioctl_dev_query_args `h]h)}(hj#h]h#struct drm_pvr_ioctl_dev_query_args}(hj#hhhNhNubah}(h]h ](j,jHc-typeeh"]h$]h&]uh1hhj#ubah}(h]h ]h"]h$]h&]refdocj8 refdomainjHreftypetype refexplicitrefwarnj>jBjFdrm_pvr_ioctl_dev_query_argsuh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:48: ./include/uapi/drm/pvr_drm.hhMhj#ubh.type must be set to }(hj#hhhNhNubh)}(h+``DRM_PVR_DEV_QUERY_STATIC_DATA_AREAS_GET``h]h'DRM_PVR_DEV_QUERY_STATIC_DATA_AREAS_GET}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#ubh.}(hj#hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj#hMhjhhubeh}(h] dev-queryah ]h"] dev_queryah$]h&]uh1hhj[hhhhhKubh)}(hhh](h)}(h CREATE_BOh]h CREATE_BO}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#hhhhhK6ubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j'drm_pvr_ioctl_create_bo_args (C struct)c.drm_pvr_ioctl_create_bo_argshNtauh1jhj#hhhNhNubj)}(hhh](j)}(hdrm_pvr_ioctl_create_bo_argsh]j)}(h#struct drm_pvr_ioctl_create_bo_argsh](j)}(hjh]hstruct}(hj#$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$hhh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:58: ./include/uapi/drm/pvr_drm.hhK`ubj)}(h h]h }(hj1$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$hhhj0$hK`ubj)}(hdrm_pvr_ioctl_create_bo_argsh]j)}(hj$h]hdrm_pvr_ioctl_create_bo_args}(hjC$hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj?$ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj$hhhj0$hK`ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj$hhhj0$hK`ubah}(h]j$ah ](j#j$eh"]h$]h&]j(j))j*huh1jhj0$hK`hj$hhubj,)}(hhh]h)}(h)Arguments for ``DRM_IOCTL_PVR_CREATE_BO``h](hArguments for }(hje$hhhNhNubh)}(h``DRM_IOCTL_PVR_CREATE_BO``h]hDRM_IOCTL_PVR_CREATE_BO}(hjm$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhje$ubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:58: ./include/uapi/drm/pvr_drm.hhM!hjb$hhubah}(h]h ]h"]h$]h&]uh1j+hj$hhhj0$hK`ubeh}(h]h ](jHstructeh"]h$]h&]jMjHjNj$jOj$jPjQjRuh1jhhhj#hNhNubjT)}(hXx**Definition**:: struct drm_pvr_ioctl_create_bo_args { __u64 size; __u32 handle; __u32 _padding_c; __u64 flags; }; **Members** ``size`` [IN] Size of buffer object to create. This must be page size aligned. ``handle`` [OUT] GEM handle of the new buffer object for use in userspace. ``_padding_c`` Reserved. This field must be zeroed. ``flags`` [IN] Options which will affect the behaviour of this creation operation and future mapping operations on the created object. This field must be a valid combination of ``DRM_PVR_BO_*`` values, with all bits marked as reserved set to zero.h](h)}(h**Definition**::h](j^)}(h**Definition**h]h Definition}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj$ubh:}(hj$hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:58: ./include/uapi/drm/pvr_drm.hhM%hj$ubjy)}(hqstruct drm_pvr_ioctl_create_bo_args { __u64 size; __u32 handle; __u32 _padding_c; __u64 flags; };h]hqstruct drm_pvr_ioctl_create_bo_args { __u64 size; __u32 handle; __u32 _padding_c; __u64 flags; };}hj$sbah}(h]h ]h"]h$]h&]jjuh1jxh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:58: ./include/uapi/drm/pvr_drm.hhM'hj$ubh)}(h **Members**h]j^)}(hj$h]hMembers}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj$ubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:58: ./include/uapi/drm/pvr_drm.hhM.hj$ubj)}(hhh](j)}(hO``size`` [IN] Size of buffer object to create. This must be page size aligned. h](j)}(h``size``h]h)}(hj$h]hsize}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:58: ./include/uapi/drm/pvr_drm.hhM'hj$ubj)}(hhh]h)}(hE[IN] Size of buffer object to create. This must be page size aligned.h]hE[IN] Size of buffer object to create. This must be page size aligned.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:58: ./include/uapi/drm/pvr_drm.hhM&hj$ubah}(h]h ]h"]h$]h&]uh1jhj$ubeh}(h]h ]h"]h$]h&]uh1jhj$hM'hj$ubj)}(hK``handle`` [OUT] GEM handle of the new buffer object for use in userspace. h](j)}(h ``handle``h]h)}(hj%h]hhandle}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:58: ./include/uapi/drm/pvr_drm.hhM-hj%ubj)}(hhh]h)}(h?[OUT] GEM handle of the new buffer object for use in userspace.h]h?[OUT] GEM handle of the new buffer object for use in userspace.}(hj3%hhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:58: ./include/uapi/drm/pvr_drm.hhM,hj0%ubah}(h]h ]h"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]uh1jhj/%hM-hj$ubj)}(h4``_padding_c`` Reserved. This field must be zeroed. h](j)}(h``_padding_c``h]h)}(hjT%h]h _padding_c}(hjV%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjR%ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:58: ./include/uapi/drm/pvr_drm.hhKhjN%ubj)}(hhh]h)}(h$Reserved. This field must be zeroed.h]h$Reserved. This field must be zeroed.}(hjm%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhji%hKhjj%ubah}(h]h ]h"]h$]h&]uh1jhjN%ubeh}(h]h ]h"]h$]h&]uh1jhji%hKhj$ubj)}(h``flags`` [IN] Options which will affect the behaviour of this creation operation and future mapping operations on the created object. This field must be a valid combination of ``DRM_PVR_BO_*`` values, with all bits marked as reserved set to zero.h](j)}(h ``flags``h]h)}(hj%h]hflags}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:58: ./include/uapi/drm/pvr_drm.hhM7hj%ubj)}(hhh]h)}(h[IN] Options which will affect the behaviour of this creation operation and future mapping operations on the created object. This field must be a valid combination of ``DRM_PVR_BO_*`` values, with all bits marked as reserved set to zero.h](h[IN] Options which will affect the behaviour of this creation operation and future mapping operations on the created object. This field must be a valid combination of }(hj%hhhNhNubh)}(h``DRM_PVR_BO_*``h]h DRM_PVR_BO_*}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%ubh6 values, with all bits marked as reserved set to zero.}(hj%hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:58: ./include/uapi/drm/pvr_drm.hhM5hj%ubah}(h]h ]h"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]uh1jhj%hM7hj$ubeh}(h]h ]h"]h$]h&]uh1jhj$ubeh}(h]h ] kernelindentah"]h$]h&]uh1jShj#hhhNhNubh)}(hdWe use "device" to refer to the GPU here because of the ambiguity between CPU and GPU in some fonts.h]hhWe use “device” to refer to the GPU here because of the ambiguity between CPU and GPU in some fonts.}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:61: ./include/uapi/drm/pvr_drm.hhMhj#hhubj)}(hhh](j)}(hXDevice mapping options :DRM_PVR_BO_BYPASS_DEVICE_CACHE: Specify that device accesses to this memory will bypass the cache. This is used for buffers that will either be regularly updated by the CPU (eg free lists) or will be accessed only once and therefore isn't worth caching (eg partial render buffers). By default, the device flushes its memory caches after every job, so this is not normally required for coherency. :DRM_PVR_BO_PM_FW_PROTECT: Specify that only the Parameter Manager (PM) and/or firmware processor should be allowed to access this memory when mapped to the device. It is not valid to specify this flag with DRM_PVR_BO_ALLOW_CPU_USERSPACE_ACCESS. h](j)}(hDevice mapping optionsh]hDevice mapping options}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:61: ./include/uapi/drm/pvr_drm.hhMhj%ubj)}(hhh]h field_list)}(hhh](hfield)}(hhh](h field_name)}(hDRM_PVR_BO_BYPASS_DEVICE_CACHEh]hDRM_PVR_BO_BYPASS_DEVICE_CACHE}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1j&hj&h_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:61: ./include/uapi/drm/pvr_drm.hhKubh field_body)}(hXkSpecify that device accesses to this memory will bypass the cache. This is used for buffers that will either be regularly updated by the CPU (eg free lists) or will be accessed only once and therefore isn't worth caching (eg partial render buffers). By default, the device flushes its memory caches after every job, so this is not normally required for coherency.h]h)}(hXkSpecify that device accesses to this memory will bypass the cache. This is used for buffers that will either be regularly updated by the CPU (eg free lists) or will be accessed only once and therefore isn't worth caching (eg partial render buffers). By default, the device flushes its memory caches after every job, so this is not normally required for coherency.h]hXmSpecify that device accesses to this memory will bypass the cache. This is used for buffers that will either be regularly updated by the CPU (eg free lists) or will be accessed only once and therefore isn’t worth caching (eg partial render buffers). By default, the device flushes its memory caches after every job, so this is not normally required for coherency.}(hj)&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"&hMhj%&ubah}(h]h ]h"]h$]h&]uh1j#&hj&ubeh}(h]h ]h"]h$]h&]uh1j &hj"&hMhj &ubj&)}(hhh](j&)}(hDRM_PVR_BO_PM_FW_PROTECTh]hDRM_PVR_BO_PM_FW_PROTECT}(hjF&hhhNhNubah}(h]h ]h"]h$]h&]uh1j&hjC&h_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:61: ./include/uapi/drm/pvr_drm.hhKubj$&)}(hSpecify that only the Parameter Manager (PM) and/or firmware processor should be allowed to access this memory when mapped to the device. It is not valid to specify this flag with DRM_PVR_BO_ALLOW_CPU_USERSPACE_ACCESS. h]h)}(hSpecify that only the Parameter Manager (PM) and/or firmware processor should be allowed to access this memory when mapped to the device. It is not valid to specify this flag with DRM_PVR_BO_ALLOW_CPU_USERSPACE_ACCESS.h]hSpecify that only the Parameter Manager (PM) and/or firmware processor should be allowed to access this memory when mapped to the device. It is not valid to specify this flag with DRM_PVR_BO_ALLOW_CPU_USERSPACE_ACCESS.}(hjY&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjT&hMhjU&ubah}(h]h ]h"]h$]h&]uh1j#&hjC&ubeh}(h]h ]h"]h$]h&]uh1j &hjT&hMhj &ubeh}(h]h ]h"]h$]h&]uh1j&hj&ubah}(h]h ]h"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]uh1jhj&hMhj%ubj)}(hCPU mapping options :DRM_PVR_BO_ALLOW_CPU_USERSPACE_ACCESS: Allow userspace to map and access the contents of this memory. It is not valid to specify this flag with DRM_PVR_BO_PM_FW_PROTECT. h](j)}(hCPU mapping optionsh]hCPU mapping options}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:61: ./include/uapi/drm/pvr_drm.hhMhj&ubj)}(hhh]j &)}(hhh]j&)}(hhh](j&)}(h%DRM_PVR_BO_ALLOW_CPU_USERSPACE_ACCESSh]h%DRM_PVR_BO_ALLOW_CPU_USERSPACE_ACCESS}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1j&hj&h_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:61: ./include/uapi/drm/pvr_drm.hhKubj$&)}(hAllow userspace to map and access the contents of this memory. It is not valid to specify this flag with DRM_PVR_BO_PM_FW_PROTECT. h]h)}(hAllow userspace to map and access the contents of this memory. It is not valid to specify this flag with DRM_PVR_BO_PM_FW_PROTECT.h]hAllow userspace to map and access the contents of this memory. It is not valid to specify this flag with DRM_PVR_BO_PM_FW_PROTECT.}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&hMhj&ubah}(h]h ]h"]h$]h&]uh1j#&hj&ubeh}(h]h ]h"]h$]h&]uh1j &hj&hMhj&ubah}(h]h ]h"]h$]h&]uh1j&hj&ubah}(h]h ]h"]h$]h&]uh1jhj&ubeh}(h]h ]h"]h$]h&]uh1jhj&hMhj%ubeh}(h]h ]h"]h$]h&]uh1jhj#hhhNhNubeh}(h] create-boah ]h"] create_boah$]h&]uh1hhj[hhhhhK6ubh)}(hhh](h)}(hGET_BO_MMAP_OFFSETh]hGET_BO_MMAP_OFFSET}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&hhhhhKAubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j0drm_pvr_ioctl_get_bo_mmap_offset_args (C struct)'c.drm_pvr_ioctl_get_bo_mmap_offset_argshNtauh1jhj&hhh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:69: ./include/uapi/drm/pvr_drm.hhNubj)}(hhh](j)}(h%drm_pvr_ioctl_get_bo_mmap_offset_argsh]j)}(h,struct drm_pvr_ioctl_get_bo_mmap_offset_argsh](j)}(hjh]hstruct}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'hhh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:69: ./include/uapi/drm/pvr_drm.hhK`ubj)}(h h]h }(hj''hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'hhhj&'hK`ubj)}(h%drm_pvr_ioctl_get_bo_mmap_offset_argsh]j)}(hj'h]h%drm_pvr_ioctl_get_bo_mmap_offset_args}(hj9'hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj5'ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj'hhhj&'hK`ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj'hhhj&'hK`ubah}(h]j 'ah ](j#j$eh"]h$]h&]j(j))j*huh1jhj&'hK`hj'hhubj,)}(hhh]h)}(h2Arguments for ``DRM_IOCTL_PVR_GET_BO_MMAP_OFFSET``h](hArguments for }(hj['hhhNhNubh)}(h$``DRM_IOCTL_PVR_GET_BO_MMAP_OFFSET``h]h DRM_IOCTL_PVR_GET_BO_MMAP_OFFSET}(hjc'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj['ubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:69: ./include/uapi/drm/pvr_drm.hhMAhjX'hhubah}(h]h ]h"]h$]h&]uh1j+hj'hhhj&'hK`ubeh}(h]h ](jHstructeh"]h$]h&]jMjHjNj'jOj'jPjQjRuh1jhhhj&hj 'hNubjT)}(hXJ**Definition**:: struct drm_pvr_ioctl_get_bo_mmap_offset_args { __u32 handle; __u32 _padding_4; __u64 offset; }; **Members** ``handle`` [IN] GEM handle of the buffer object to be mapped. ``_padding_4`` Reserved. This field must be zeroed. ``offset`` [OUT] Fake offset to use in the real mmap call.h](h)}(h**Definition**::h](j^)}(h**Definition**h]h Definition}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj'ubh:}(hj'hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:69: ./include/uapi/drm/pvr_drm.hhMEhj'ubjy)}(hkstruct drm_pvr_ioctl_get_bo_mmap_offset_args { __u32 handle; __u32 _padding_4; __u64 offset; };h]hkstruct drm_pvr_ioctl_get_bo_mmap_offset_args { __u32 handle; __u32 _padding_4; __u64 offset; };}hj'sbah}(h]h ]h"]h$]h&]jjuh1jxh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:69: ./include/uapi/drm/pvr_drm.hhMGhj'ubh)}(h **Members**h]j^)}(hj'h]hMembers}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj'ubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:69: ./include/uapi/drm/pvr_drm.hhMMhj'ubj)}(hhh](j)}(h>``handle`` [IN] GEM handle of the buffer object to be mapped. h](j)}(h ``handle``h]h)}(hj'h]hhandle}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj'ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:69: ./include/uapi/drm/pvr_drm.hhMJhj'ubj)}(hhh]h)}(h2[IN] GEM handle of the buffer object to be mapped.h]h2[IN] GEM handle of the buffer object to be mapped.}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj'hMJhj'ubah}(h]h ]h"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]uh1jhj'hMJhj'ubj)}(h4``_padding_4`` Reserved. This field must be zeroed. h](j)}(h``_padding_4``h]h)}(hj(h]h _padding_4}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj (ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:69: ./include/uapi/drm/pvr_drm.hhKhj (ubj)}(hhh]h)}(h$Reserved. This field must be zeroed.h]h$Reserved. This field must be zeroed.}(hj((hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$(hKhj%(ubah}(h]h ]h"]h$]h&]uh1jhj (ubeh}(h]h ]h"]h$]h&]uh1jhj$(hKhj'ubj)}(h:``offset`` [OUT] Fake offset to use in the real mmap call.h](j)}(h ``offset``h]h)}(hjH(h]hoffset}(hjJ(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjF(ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:69: ./include/uapi/drm/pvr_drm.hhKhjB(ubj)}(hhh]h)}(h/[OUT] Fake offset to use in the real mmap call.h]h/[OUT] Fake offset to use in the real mmap call.}(hja(hhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:69: ./include/uapi/drm/pvr_drm.hhKhj^(ubah}(h]h ]h"]h$]h&]uh1jhjB(ubeh}(h]h ]h"]h$]h&]uh1jhj](hKhj'ubeh}(h]h ]h"]h$]h&]uh1jhj'ubeh}(h]h ] kernelindentah"]h$]h&]uh1jShj&hhhj 'hNubh)}(h**Description**h]j^)}(hj(h]h Description}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj(ubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:69: ./include/uapi/drm/pvr_drm.hhKhj&hhubh)}(hLike other DRM drivers, the "mmap" IOCTL doesn't actually map any memory. Instead, it allocates a fake offset which refers to the specified buffer object. This offset can be used with a real mmap call on the DRM device itself.h]hLike other DRM drivers, the “mmap” IOCTL doesn’t actually map any memory. Instead, it allocates a fake offset which refers to the specified buffer object. This offset can be used with a real mmap call on the DRM device itself.}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:69: ./include/uapi/drm/pvr_drm.hhMBhj&hhubeh}(h]get-bo-mmap-offsetah ]h"]get_bo_mmap_offsetah$]h&]uh1hhj[hhhhhKAubh)}(hhh](h)}(h(CREATE_VM_CONTEXT and DESTROY_VM_CONTEXTh]h(CREATE_VM_CONTEXT and DESTROY_VM_CONTEXT}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj(hhhhhKIubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j/drm_pvr_ioctl_create_vm_context_args (C struct)&c.drm_pvr_ioctl_create_vm_context_argshNtauh1jhj(hhhNhNubj)}(hhh](j)}(h$drm_pvr_ioctl_create_vm_context_argsh]j)}(h+struct drm_pvr_ioctl_create_vm_context_argsh](j)}(hjh]hstruct}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(hhh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:77: ./include/uapi/drm/pvr_drm.hhK`ubj)}(h h]h }(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(hhhj(hK`ubj)}(h$drm_pvr_ioctl_create_vm_context_argsh]j)}(hj(h]h$drm_pvr_ioctl_create_vm_context_args}(hj)hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj(ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj(hhhj(hK`ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj(hhhj(hK`ubah}(h]j(ah ](j#j$eh"]h$]h&]j(j))j*huh1jhj(hK`hj(hhubj,)}(hhh]h)}(h1Arguments for ``DRM_IOCTL_PVR_CREATE_VM_CONTEXT``h](hArguments for }(hj$)hhhNhNubh)}(h#``DRM_IOCTL_PVR_CREATE_VM_CONTEXT``h]hDRM_IOCTL_PVR_CREATE_VM_CONTEXT}(hj,)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$)ubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:77: ./include/uapi/drm/pvr_drm.hhMYhj!)hhubah}(h]h ]h"]h$]h&]uh1j+hj(hhhj(hK`ubeh}(h]h ](jHstructeh"]h$]h&]jMjHjNjJ)jOjJ)jPjQjRuh1jhhhj(hNhNubjT)}(h**Definition**:: struct drm_pvr_ioctl_create_vm_context_args { __u32 handle; __u32 _padding_4; }; **Members** ``handle`` [OUT] Handle for new VM context. ``_padding_4`` Reserved. This field must be zeroed.h](h)}(h**Definition**::h](j^)}(h**Definition**h]h Definition}(hjV)hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjR)ubh:}(hjR)hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:77: ./include/uapi/drm/pvr_drm.hhM]hjN)ubjy)}(hXstruct drm_pvr_ioctl_create_vm_context_args { __u32 handle; __u32 _padding_4; };h]hXstruct drm_pvr_ioctl_create_vm_context_args { __u32 handle; __u32 _padding_4; };}hjo)sbah}(h]h ]h"]h$]h&]jjuh1jxh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:77: ./include/uapi/drm/pvr_drm.hhM_hjN)ubh)}(h **Members**h]j^)}(hj)h]hMembers}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj~)ubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:77: ./include/uapi/drm/pvr_drm.hhMdhjN)ubj)}(hhh](j)}(h,``handle`` [OUT] Handle for new VM context. h](j)}(h ``handle``h]h)}(hj)h]hhandle}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj)ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:77: ./include/uapi/drm/pvr_drm.hhM]hj)ubj)}(hhh]h)}(h [OUT] Handle for new VM context.h]h [OUT] Handle for new VM context.}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj)hM]hj)ubah}(h]h ]h"]h$]h&]uh1jhj)ubeh}(h]h ]h"]h$]h&]uh1jhj)hM]hj)ubj)}(h3``_padding_4`` Reserved. This field must be zeroed.h](j)}(h``_padding_4``h]h)}(hj)h]h _padding_4}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj)ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:77: ./include/uapi/drm/pvr_drm.hhKhj)ubj)}(hhh]h)}(h$Reserved. This field must be zeroed.h]h$Reserved. This field must be zeroed.}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:77: ./include/uapi/drm/pvr_drm.hhKhj)ubah}(h]h ]h"]h$]h&]uh1jhj)ubeh}(h]h ]h"]h$]h&]uh1jhj)hKhj)ubeh}(h]h ]h"]h$]h&]uh1jhjN)ubeh}(h]h ] kernelindentah"]h$]h&]uh1jShj(hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j0drm_pvr_ioctl_destroy_vm_context_args (C struct)'c.drm_pvr_ioctl_destroy_vm_context_argshNtauh1jhj(hhhNhNubj)}(hhh](j)}(h%drm_pvr_ioctl_destroy_vm_context_argsh]j)}(h,struct drm_pvr_ioctl_destroy_vm_context_argsh](j)}(hjh]hstruct}(hj2*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.*hhh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:77: ./include/uapi/drm/pvr_drm.hhKubj)}(h h]h }(hj@*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.*hhhj?*hKubj)}(h%drm_pvr_ioctl_destroy_vm_context_argsh]j)}(hj,*h]h%drm_pvr_ioctl_destroy_vm_context_args}(hjR*hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjN*ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj.*hhhj?*hKubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj**hhhj?*hKubah}(h]j%*ah ](j#j$eh"]h$]h&]j(j))j*huh1jhj?*hKhj'*hhubj,)}(hhh]h)}(h2Arguments for ``DRM_IOCTL_PVR_DESTROY_VM_CONTEXT``h](hArguments for }(hjt*hhhNhNubh)}(h$``DRM_IOCTL_PVR_DESTROY_VM_CONTEXT``h]h DRM_IOCTL_PVR_DESTROY_VM_CONTEXT}(hj|*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjt*ubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:77: ./include/uapi/drm/pvr_drm.hhMehjq*hhubah}(h]h ]h"]h$]h&]uh1j+hj'*hhhj?*hKubeh}(h]h ](jHstructeh"]h$]h&]jMjHjNj*jOj*jPjQjRuh1jhhhj(hNhNubjT)}(h**Definition**:: struct drm_pvr_ioctl_destroy_vm_context_args { __u32 handle; __u32 _padding_4; }; **Members** ``handle`` [IN] Handle for VM context to be destroyed. ``_padding_4`` Reserved. This field must be zeroed.h](h)}(h**Definition**::h](j^)}(h**Definition**h]h Definition}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj*ubh:}(hj*hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:77: ./include/uapi/drm/pvr_drm.hhMihj*ubjy)}(hYstruct drm_pvr_ioctl_destroy_vm_context_args { __u32 handle; __u32 _padding_4; };h]hYstruct drm_pvr_ioctl_destroy_vm_context_args { __u32 handle; __u32 _padding_4; };}hj*sbah}(h]h ]h"]h$]h&]jjuh1jxh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:77: ./include/uapi/drm/pvr_drm.hhMkhj*ubh)}(h **Members**h]j^)}(hj*h]hMembers}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj*ubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:77: ./include/uapi/drm/pvr_drm.hhMphj*ubj)}(hhh](j)}(h7``handle`` [IN] Handle for VM context to be destroyed. h](j)}(h ``handle``h]h)}(hj*h]hhandle}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:77: ./include/uapi/drm/pvr_drm.hhMkhj*ubj)}(hhh]h)}(h+[IN] Handle for VM context to be destroyed.h]h+[IN] Handle for VM context to be destroyed.}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj+hMkhj+ubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jhj+hMkhj*ubj)}(h3``_padding_4`` Reserved. This field must be zeroed.h](j)}(h``_padding_4``h]h)}(hj(+h]h _padding_4}(hj*+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&+ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:77: ./include/uapi/drm/pvr_drm.hhKhj"+ubj)}(hhh]h)}(h$Reserved. This field must be zeroed.h]h$Reserved. This field must be zeroed.}(hjA+hhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:77: ./include/uapi/drm/pvr_drm.hhKhj>+ubah}(h]h ]h"]h$]h&]uh1jhj"+ubeh}(h]h ]h"]h$]h&]uh1jhj=+hKhj*ubeh}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ] kernelindentah"]h$]h&]uh1jShj(hhhNhNubeh}(h](create-vm-context-and-destroy-vm-contextah ]h"](create_vm_context and destroy_vm_contextah$]h&]uh1hhj[hhhhhKIubh)}(hhh](h)}(hVM_MAP and VM_UNMAPh]hVM_MAP and VM_UNMAP}(hjt+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjq+hhhhhKRubh)}(h[The VM UAPI allows userspace to create buffer object mappings in GPU virtual address space.h]h[The VM UAPI allows userspace to create buffer object mappings in GPU virtual address space.}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:83: ./include/uapi/drm/pvr_drm.hhMshjq+hhubh)}(hThe client is responsible for managing GPU address space. It should allocate mappings within the heaps returned by ``DRM_PVR_DEV_QUERY_HEAP_INFO_GET``.h](hsThe client is responsible for managing GPU address space. It should allocate mappings within the heaps returned by }(hj+hhhNhNubh)}(h#``DRM_PVR_DEV_QUERY_HEAP_INFO_GET``h]hDRM_PVR_DEV_QUERY_HEAP_INFO_GET}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj+ubh.}(hj+hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:83: ./include/uapi/drm/pvr_drm.hhMuhjq+hhubh)}(h``DRM_IOCTL_PVR_VM_MAP`` creates a new mapping. The client provides the target virtual address for the mapping. Size and offset within the mapped buffer object can be specified, so the client can partially map a buffer.h](h)}(h``DRM_IOCTL_PVR_VM_MAP``h]hDRM_IOCTL_PVR_VM_MAP}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj+ubh creates a new mapping. The client provides the target virtual address for the mapping. Size and offset within the mapped buffer object can be specified, so the client can partially map a buffer.}(hj+hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:83: ./include/uapi/drm/pvr_drm.hhMxhjq+hhubh)}(h``DRM_IOCTL_PVR_VM_UNMAP`` removes a mapping. The entire mapping will be removed from GPU address space only if the size of the mapping matches that known to the driver.h](h)}(h``DRM_IOCTL_PVR_VM_UNMAP``h]hDRM_IOCTL_PVR_VM_UNMAP}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj+ubh removes a mapping. The entire mapping will be removed from GPU address space only if the size of the mapping matches that known to the driver.}(hj+hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:83: ./include/uapi/drm/pvr_drm.hhM|hjq+hhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j$drm_pvr_ioctl_vm_map_args (C struct)c.drm_pvr_ioctl_vm_map_argshNtauh1jhjq+hhhNhNubj)}(hhh](j)}(hdrm_pvr_ioctl_vm_map_argsh]j)}(h struct drm_pvr_ioctl_vm_map_argsh](j)}(hjh]hstruct}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,hhh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:86: ./include/uapi/drm/pvr_drm.hhK`ubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,hhhj,hK`ubj)}(hdrm_pvr_ioctl_vm_map_argsh]j)}(hj+h]hdrm_pvr_ioctl_vm_map_args}(hj%,hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj!,ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj,hhhj,hK`ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj+hhhj,hK`ubah}(h]j+ah ](j#j$eh"]h$]h&]j(j))j*huh1jhj,hK`hj+hhubj,)}(hhh]h)}(h'Arguments for ``DRM_IOCTL_PVR_VM_MAP``.h](hArguments for }(hjG,hhhNhNubh)}(h``DRM_IOCTL_PVR_VM_MAP``h]hDRM_IOCTL_PVR_VM_MAP}(hjO,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjG,ubh.}(hjG,hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:86: ./include/uapi/drm/pvr_drm.hhMhjD,hhubah}(h]h ]h"]h$]h&]uh1j+hj+hhhj,hK`ubeh}(h]h ](jHstructeh"]h$]h&]jMjHjNjq,jOjq,jPjQjRuh1jhhhjq+hNhNubjT)}(hX|**Definition**:: struct drm_pvr_ioctl_vm_map_args { __u32 vm_context_handle; __u32 flags; __u64 device_addr; __u32 handle; __u32 _padding_14; __u64 offset; __u64 size; }; **Members** ``vm_context_handle`` [IN] Handle for VM context for this mapping to exist in. ``flags`` [IN] Flags which affect this mapping. Currently always 0. ``device_addr`` [IN] Requested device-virtual address for the mapping. This must be non-zero and aligned to the device page size for the heap containing the requested address. It is an error to specify an address which is not contained within one of the heaps returned by ``DRM_PVR_DEV_QUERY_HEAP_INFO_GET``. ``handle`` [IN] Handle of the target buffer object. This must be a valid handle returned by ``DRM_IOCTL_PVR_CREATE_BO``. ``_padding_14`` Reserved. This field must be zeroed. ``offset`` [IN] Offset into the target bo from which to begin the mapping. ``size`` [IN] Size of the requested mapping. Must be aligned to the device page size for the heap containing the requested address, as well as the host page size. When added to **device_addr**, the result must not overflow the heap which contains **device_addr** (i.e. the range specified by **device_addr** and **size** must be completely contained within a single heap specified by ``DRM_PVR_DEV_QUERY_HEAP_INFO_GET``).h](h)}(h**Definition**::h](j^)}(h**Definition**h]h Definition}(hj},hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjy,ubh:}(hjy,hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:86: ./include/uapi/drm/pvr_drm.hhMhju,ubjy)}(hstruct drm_pvr_ioctl_vm_map_args { __u32 vm_context_handle; __u32 flags; __u64 device_addr; __u32 handle; __u32 _padding_14; __u64 offset; __u64 size; };h]hstruct drm_pvr_ioctl_vm_map_args { __u32 vm_context_handle; __u32 flags; __u64 device_addr; __u32 handle; __u32 _padding_14; __u64 offset; __u64 size; };}hj,sbah}(h]h ]h"]h$]h&]jjuh1jxh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:86: ./include/uapi/drm/pvr_drm.hhMhju,ubh)}(h **Members**h]j^)}(hj,h]hMembers}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj,ubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:86: ./include/uapi/drm/pvr_drm.hhMhju,ubj)}(hhh](j)}(hO``vm_context_handle`` [IN] Handle for VM context for this mapping to exist in. h](j)}(h``vm_context_handle``h]h)}(hj,h]hvm_context_handle}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:86: ./include/uapi/drm/pvr_drm.hhMhj,ubj)}(hhh]h)}(h8[IN] Handle for VM context for this mapping to exist in.h]h8[IN] Handle for VM context for this mapping to exist in.}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:86: ./include/uapi/drm/pvr_drm.hhMhj,ubah}(h]h ]h"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]uh1jhj,hMhj,ubj)}(hD``flags`` [IN] Flags which affect this mapping. Currently always 0. h](j)}(h ``flags``h]h)}(hj-h]hflags}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:86: ./include/uapi/drm/pvr_drm.hhKhj,ubj)}(hhh]h)}(h9[IN] Flags which affect this mapping. Currently always 0.h]h9[IN] Flags which affect this mapping. Currently always 0.}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-hKhj-ubah}(h]h ]h"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]uh1jhj-hKhj,ubj)}(hX5``device_addr`` [IN] Requested device-virtual address for the mapping. This must be non-zero and aligned to the device page size for the heap containing the requested address. It is an error to specify an address which is not contained within one of the heaps returned by ``DRM_PVR_DEV_QUERY_HEAP_INFO_GET``. h](j)}(h``device_addr``h]h)}(hj9-h]h device_addr}(hj;-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7-ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:86: ./include/uapi/drm/pvr_drm.hhMhj3-ubj)}(hhh]h)}(hX$[IN] Requested device-virtual address for the mapping. This must be non-zero and aligned to the device page size for the heap containing the requested address. It is an error to specify an address which is not contained within one of the heaps returned by ``DRM_PVR_DEV_QUERY_HEAP_INFO_GET``.h](hX[IN] Requested device-virtual address for the mapping. This must be non-zero and aligned to the device page size for the heap containing the requested address. It is an error to specify an address which is not contained within one of the heaps returned by }(hjR-hhhNhNubh)}(h#``DRM_PVR_DEV_QUERY_HEAP_INFO_GET``h]hDRM_PVR_DEV_QUERY_HEAP_INFO_GET}(hjZ-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjR-ubh.}(hjR-hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:86: ./include/uapi/drm/pvr_drm.hhMhjO-ubah}(h]h ]h"]h$]h&]uh1jhj3-ubeh}(h]h ]h"]h$]h&]uh1jhjN-hMhj,ubj)}(hy``handle`` [IN] Handle of the target buffer object. This must be a valid handle returned by ``DRM_IOCTL_PVR_CREATE_BO``. h](j)}(h ``handle``h]h)}(hj-h]hhandle}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:86: ./include/uapi/drm/pvr_drm.hhMhj-ubj)}(hhh]h)}(hm[IN] Handle of the target buffer object. This must be a valid handle returned by ``DRM_IOCTL_PVR_CREATE_BO``.h](hQ[IN] Handle of the target buffer object. This must be a valid handle returned by }(hj-hhhNhNubh)}(h``DRM_IOCTL_PVR_CREATE_BO``h]hDRM_IOCTL_PVR_CREATE_BO}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-ubh.}(hj-hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:86: ./include/uapi/drm/pvr_drm.hhMhj-ubah}(h]h ]h"]h$]h&]uh1jhj-ubeh}(h]h ]h"]h$]h&]uh1jhj-hMhj,ubj)}(h5``_padding_14`` Reserved. This field must be zeroed. h](j)}(h``_padding_14``h]h)}(hj-h]h _padding_14}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:86: ./include/uapi/drm/pvr_drm.hhKhj-ubj)}(hhh]h)}(h$Reserved. This field must be zeroed.h]h$Reserved. This field must be zeroed.}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-hKhj-ubah}(h]h ]h"]h$]h&]uh1jhj-ubeh}(h]h ]h"]h$]h&]uh1jhj-hKhj,ubj)}(hK``offset`` [IN] Offset into the target bo from which to begin the mapping. h](j)}(h ``offset``h]h)}(hj .h]hoffset}(hj .hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj.ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:86: ./include/uapi/drm/pvr_drm.hhMhj.ubj)}(hhh]h)}(h?[IN] Offset into the target bo from which to begin the mapping.h]h?[IN] Offset into the target bo from which to begin the mapping.}(hj#.hhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:86: ./include/uapi/drm/pvr_drm.hhMhj .ubah}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]uh1jhj.hMhj,ubj)}(hX``size`` [IN] Size of the requested mapping. Must be aligned to the device page size for the heap containing the requested address, as well as the host page size. When added to **device_addr**, the result must not overflow the heap which contains **device_addr** (i.e. the range specified by **device_addr** and **size** must be completely contained within a single heap specified by ``DRM_PVR_DEV_QUERY_HEAP_INFO_GET``).h](j)}(h``size``h]h)}(hjD.h]hsize}(hjF.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjB.ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:86: ./include/uapi/drm/pvr_drm.hhMhj>.ubj)}(hhh]h)}(hX[IN] Size of the requested mapping. Must be aligned to the device page size for the heap containing the requested address, as well as the host page size. When added to **device_addr**, the result must not overflow the heap which contains **device_addr** (i.e. the range specified by **device_addr** and **size** must be completely contained within a single heap specified by ``DRM_PVR_DEV_QUERY_HEAP_INFO_GET``).h](h[IN] Size of the requested mapping. Must be aligned to the device page size for the heap containing the requested address, as well as the host page size. When added to }(hj].hhhNhNubj^)}(h**device_addr**h]h device_addr}(hje.hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj].ubh7, the result must not overflow the heap which contains }(hj].hhhNhNubj^)}(h**device_addr**h]h device_addr}(hjw.hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj].ubh (i.e. the range specified by }(hj].hhhNhNubj^)}(h**device_addr**h]h device_addr}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj].ubh and }(hj].hhhNhNubj^)}(h**size**h]hsize}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj].ubh@ must be completely contained within a single heap specified by }(hj].hhhNhNubh)}(h#``DRM_PVR_DEV_QUERY_HEAP_INFO_GET``h]hDRM_PVR_DEV_QUERY_HEAP_INFO_GET}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj].ubh).}(hj].hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:86: ./include/uapi/drm/pvr_drm.hhMhjZ.ubah}(h]h ]h"]h$]h&]uh1jhj>.ubeh}(h]h ]h"]h$]h&]uh1jhjY.hMhj,ubeh}(h]h ]h"]h$]h&]uh1jhju,ubeh}(h]h ] kernelindentah"]h$]h&]uh1jShjq+hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j&drm_pvr_ioctl_vm_unmap_args (C struct)c.drm_pvr_ioctl_vm_unmap_argshNtauh1jhjq+hhhNhNubj)}(hhh](j)}(hdrm_pvr_ioctl_vm_unmap_argsh]j)}(h"struct drm_pvr_ioctl_vm_unmap_argsh](j)}(hjh]hstruct}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.hhh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:86: ./include/uapi/drm/pvr_drm.hhMubj)}(h h]h }(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.hhhj/hMubj)}(hdrm_pvr_ioctl_vm_unmap_argsh]j)}(hj.h]hdrm_pvr_ioctl_vm_unmap_args}(hj/hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj/ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj.hhhj/hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj.hhhj/hMubah}(h]j.ah ](j#j$eh"]h$]h&]j(j))j*huh1jhj/hMhj.hhubj,)}(hhh]h)}(h)Arguments for ``DRM_IOCTL_PVR_VM_UNMAP``.h](hArguments for }(hj:/hhhNhNubh)}(h``DRM_IOCTL_PVR_VM_UNMAP``h]hDRM_IOCTL_PVR_VM_UNMAP}(hjB/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj:/ubh.}(hj:/hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:86: ./include/uapi/drm/pvr_drm.hhMhj7/hhubah}(h]h ]h"]h$]h&]uh1j+hj.hhhj/hMubeh}(h]h ](jHstructeh"]h$]h&]jMjHjNjd/jOjd/jPjQjRuh1jhhhjq+hNhNubjT)}(hX**Definition**:: struct drm_pvr_ioctl_vm_unmap_args { __u32 vm_context_handle; __u32 _padding_4; __u64 device_addr; __u64 size; }; **Members** ``vm_context_handle`` [IN] Handle for VM context that this mapping exists in. ``_padding_4`` Reserved. This field must be zeroed. ``device_addr`` [IN] Device-virtual address at the start of the target mapping. This must be non-zero. ``size`` Size in bytes of the target mapping. This must be non-zero.h](h)}(h**Definition**::h](j^)}(h**Definition**h]h Definition}(hjp/hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjl/ubh:}(hjl/hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:86: ./include/uapi/drm/pvr_drm.hhMhjh/ubjy)}(hstruct drm_pvr_ioctl_vm_unmap_args { __u32 vm_context_handle; __u32 _padding_4; __u64 device_addr; __u64 size; };h]hstruct drm_pvr_ioctl_vm_unmap_args { __u32 vm_context_handle; __u32 _padding_4; __u64 device_addr; __u64 size; };}hj/sbah}(h]h ]h"]h$]h&]jjuh1jxh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:86: ./include/uapi/drm/pvr_drm.hhMhjh/ubh)}(h **Members**h]j^)}(hj/h]hMembers}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj/ubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:86: ./include/uapi/drm/pvr_drm.hhMhjh/ubj)}(hhh](j)}(hN``vm_context_handle`` [IN] Handle for VM context that this mapping exists in. h](j)}(h``vm_context_handle``h]h)}(hj/h]hvm_context_handle}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:86: ./include/uapi/drm/pvr_drm.hhMhj/ubj)}(hhh]h)}(h7[IN] Handle for VM context that this mapping exists in.h]h7[IN] Handle for VM context that this mapping exists in.}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:86: ./include/uapi/drm/pvr_drm.hhMhj/ubah}(h]h ]h"]h$]h&]uh1jhj/ubeh}(h]h ]h"]h$]h&]uh1jhj/hMhj/ubj)}(h4``_padding_4`` Reserved. This field must be zeroed. h](j)}(h``_padding_4``h]h)}(hj/h]h _padding_4}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:86: ./include/uapi/drm/pvr_drm.hhKhj/ubj)}(hhh]h)}(h$Reserved. This field must be zeroed.h]h$Reserved. This field must be zeroed.}(hj 0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj0hKhj 0ubah}(h]h ]h"]h$]h&]uh1jhj/ubeh}(h]h ]h"]h$]h&]uh1jhj0hKhj/ubj)}(hg``device_addr`` [IN] Device-virtual address at the start of the target mapping. This must be non-zero. h](j)}(h``device_addr``h]h)}(hj,0h]h device_addr}(hj.0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*0ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:86: ./include/uapi/drm/pvr_drm.hhMhj&0ubj)}(hhh]h)}(hV[IN] Device-virtual address at the start of the target mapping. This must be non-zero.h]hV[IN] Device-virtual address at the start of the target mapping. This must be non-zero.}(hjE0hhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:86: ./include/uapi/drm/pvr_drm.hhMhjB0ubah}(h]h ]h"]h$]h&]uh1jhj&0ubeh}(h]h ]h"]h$]h&]uh1jhjA0hMhj/ubj)}(hD``size`` Size in bytes of the target mapping. This must be non-zero.h](j)}(h``size``h]h)}(hjf0h]hsize}(hjh0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjd0ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:86: ./include/uapi/drm/pvr_drm.hhMhj`0ubj)}(hhh]h)}(h;Size in bytes of the target mapping. This must be non-zero.h]h;Size in bytes of the target mapping. This must be non-zero.}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:86: ./include/uapi/drm/pvr_drm.hhMhj|0ubah}(h]h ]h"]h$]h&]uh1jhj`0ubeh}(h]h ]h"]h$]h&]uh1jhj{0hMhj/ubeh}(h]h ]h"]h$]h&]uh1jhjh/ubeh}(h]h ] kernelindentah"]h$]h&]uh1jShjq+hhhNhNubeh}(h]vm-map-and-vm-unmapah ]h"]vm_map and vm_unmapah$]h&]uh1hhj[hhhhhKRubh)}(hhh](h)}(h"CREATE_CONTEXT and DESTROY_CONTEXTh]h"CREATE_CONTEXT and DESTROY_CONTEXT}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj0hhhhhK[ubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j,drm_pvr_ioctl_create_context_args (C struct)#c.drm_pvr_ioctl_create_context_argshNtauh1jhj0hhhNhNubj)}(hhh](j)}(h!drm_pvr_ioctl_create_context_argsh]j)}(h(struct drm_pvr_ioctl_create_context_argsh](j)}(hjh]hstruct}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0hhh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:95: ./include/uapi/drm/pvr_drm.hhK`ubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0hhhj0hK`ubj)}(h!drm_pvr_ioctl_create_context_argsh]j)}(hj0h]h!drm_pvr_ioctl_create_context_args}(hj0hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj0ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj0hhhj0hK`ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj0hhhj0hK`ubah}(h]j0ah ](j#j$eh"]h$]h&]j(j))j*huh1jhj0hK`hj0hhubj,)}(hhh]h)}(h.Arguments for ``DRM_IOCTL_PVR_CREATE_CONTEXT``h](hArguments for }(hj1hhhNhNubh)}(h ``DRM_IOCTL_PVR_CREATE_CONTEXT``h]hDRM_IOCTL_PVR_CREATE_CONTEXT}(hj#1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1ubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:95: ./include/uapi/drm/pvr_drm.hhMhj1hhubah}(h]h ]h"]h$]h&]uh1j+hj0hhhj0hK`ubeh}(h]h ](jHstructeh"]h$]h&]jMjHjNjA1jOjA1jPjQjRuh1jhhhj0hNhNubjT)}(hX**Definition**:: struct drm_pvr_ioctl_create_context_args { __u32 type; __u32 flags; __s32 priority; __u32 handle; __u64 static_context_state; __u32 static_context_state_len; __u32 vm_context_handle; __u64 callstack_addr; }; **Members** ``type`` [IN] Type of context to create. This must be one of the values defined by :c:type:`enum drm_pvr_ctx_type `. ``flags`` [IN] Flags for context. ``priority`` [IN] Priority of new context. This must be one of the values defined by :c:type:`enum drm_pvr_ctx_priority `. ``handle`` [OUT] Handle for new context. ``static_context_state`` [IN] Pointer to static context state stream. ``static_context_state_len`` [IN] Length of static context state, in bytes. ``vm_context_handle`` [IN] Handle for VM context that this context is associated with. ``callstack_addr`` [IN] Address for initial call stack pointer. Only valid if **type** is ``DRM_PVR_CTX_TYPE_RENDER``, otherwise must be 0.h](h)}(h**Definition**::h](j^)}(h**Definition**h]h Definition}(hjM1hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjI1ubh:}(hjI1hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:95: ./include/uapi/drm/pvr_drm.hhMhjE1ubjy)}(hstruct drm_pvr_ioctl_create_context_args { __u32 type; __u32 flags; __s32 priority; __u32 handle; __u64 static_context_state; __u32 static_context_state_len; __u32 vm_context_handle; __u64 callstack_addr; };h]hstruct drm_pvr_ioctl_create_context_args { __u32 type; __u32 flags; __s32 priority; __u32 handle; __u64 static_context_state; __u32 static_context_state_len; __u32 vm_context_handle; __u64 callstack_addr; };}hjf1sbah}(h]h ]h"]h$]h&]jjuh1jxh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:95: ./include/uapi/drm/pvr_drm.hhMhjE1ubh)}(h **Members**h]j^)}(hjw1h]hMembers}(hjy1hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hju1ubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:95: ./include/uapi/drm/pvr_drm.hhM hjE1ubj)}(hhh](j)}(h``type`` [IN] Type of context to create. This must be one of the values defined by :c:type:`enum drm_pvr_ctx_type `. h](j)}(h``type``h]h)}(hj1h]htype}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:95: ./include/uapi/drm/pvr_drm.hhMhj1ubj)}(hhh](h)}(h[IN] Type of context to create.h]h[IN] Type of context to create.}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:95: ./include/uapi/drm/pvr_drm.hhMhj1ubh)}(h]This must be one of the values defined by :c:type:`enum drm_pvr_ctx_type `.h](h*This must be one of the values defined by }(hj1hhhNhNubh)}(h2:c:type:`enum drm_pvr_ctx_type `h]h)}(hj1h]henum drm_pvr_ctx_type}(hj1hhhNhNubah}(h]h ](j,jHc-typeeh"]h$]h&]uh1hhj1ubah}(h]h ]h"]h$]h&]refdocj8 refdomainjHreftypetype refexplicitrefwarnj>jBjFdrm_pvr_ctx_typeuh1hhj1hMhj1ubh.}(hj1hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj1hMhj1ubeh}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]uh1jhj1hMhj1ubj)}(h"``flags`` [IN] Flags for context. h](j)}(h ``flags``h]h)}(hj2h]hflags}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:95: ./include/uapi/drm/pvr_drm.hhKhj1ubj)}(hhh]h)}(h[IN] Flags for context.h]h[IN] Flags for context.}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2hKhj2ubah}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]uh1jhj2hKhj1ubj)}(h``priority`` [IN] Priority of new context. This must be one of the values defined by :c:type:`enum drm_pvr_ctx_priority `. h](j)}(h ``priority``h]h)}(hj:2h]hpriority}(hj<2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj82ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:95: ./include/uapi/drm/pvr_drm.hhM hj42ubj)}(hhh](h)}(h[IN] Priority of new context.h]h[IN] Priority of new context.}(hjS2hhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:95: ./include/uapi/drm/pvr_drm.hhM hjP2ubh)}(heThis must be one of the values defined by :c:type:`enum drm_pvr_ctx_priority `.h](h*This must be one of the values defined by }(hjb2hhhNhNubh)}(h::c:type:`enum drm_pvr_ctx_priority `h]h)}(hjl2h]henum drm_pvr_ctx_priority}(hjn2hhhNhNubah}(h]h ](j,jHc-typeeh"]h$]h&]uh1hhjj2ubah}(h]h ]h"]h$]h&]refdocj8 refdomainjHreftypetype refexplicitrefwarnj>jBjFdrm_pvr_ctx_priorityuh1hhjO2hM hjb2ubh.}(hjb2hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjO2hM hjP2ubeh}(h]h ]h"]h$]h&]uh1jhj42ubeh}(h]h ]h"]h$]h&]uh1jhjO2hM hj1ubj)}(h)``handle`` [OUT] Handle for new context. h](j)}(h ``handle``h]h)}(hj2h]hhandle}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:95: ./include/uapi/drm/pvr_drm.hhKhj2ubj)}(hhh]h)}(h[OUT] Handle for new context.h]h[OUT] Handle for new context.}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2hKhj2ubah}(h]h ]h"]h$]h&]uh1jhj2ubeh}(h]h ]h"]h$]h&]uh1jhj2hKhj1ubj)}(hF``static_context_state`` [IN] Pointer to static context state stream. h](j)}(h``static_context_state``h]h)}(hj2h]hstatic_context_state}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:95: ./include/uapi/drm/pvr_drm.hhMhj2ubj)}(hhh]h)}(h,[IN] Pointer to static context state stream.h]h,[IN] Pointer to static context state stream.}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2hMhj2ubah}(h]h ]h"]h$]h&]uh1jhj2ubeh}(h]h ]h"]h$]h&]uh1jhj2hMhj1ubj)}(hL``static_context_state_len`` [IN] Length of static context state, in bytes. h](j)}(h``static_context_state_len``h]h)}(hj3h]hstatic_context_state_len}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj3ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:95: ./include/uapi/drm/pvr_drm.hhMhj3ubj)}(hhh]h)}(h.[IN] Length of static context state, in bytes.h]h.[IN] Length of static context state, in bytes.}(hj03hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,3hMhj-3ubah}(h]h ]h"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]uh1jhj,3hMhj1ubj)}(hW``vm_context_handle`` [IN] Handle for VM context that this context is associated with. h](j)}(h``vm_context_handle``h]h)}(hjP3h]hvm_context_handle}(hjR3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjN3ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:95: ./include/uapi/drm/pvr_drm.hhMhjJ3ubj)}(hhh]h)}(h@[IN] Handle for VM context that this context is associated with.h]h@[IN] Handle for VM context that this context is associated with.}(hji3hhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:95: ./include/uapi/drm/pvr_drm.hhMhjf3ubah}(h]h ]h"]h$]h&]uh1jhjJ3ubeh}(h]h ]h"]h$]h&]uh1jhje3hMhj1ubj)}(h``callstack_addr`` [IN] Address for initial call stack pointer. Only valid if **type** is ``DRM_PVR_CTX_TYPE_RENDER``, otherwise must be 0.h](j)}(h``callstack_addr``h]h)}(hj3h]hcallstack_addr}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj3ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:95: ./include/uapi/drm/pvr_drm.hhM#hj3ubj)}(hhh]h)}(hx[IN] Address for initial call stack pointer. Only valid if **type** is ``DRM_PVR_CTX_TYPE_RENDER``, otherwise must be 0.h](h;[IN] Address for initial call stack pointer. Only valid if }(hj3hhhNhNubj^)}(h**type**h]htype}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj3ubh is }(hj3hhhNhNubh)}(h``DRM_PVR_CTX_TYPE_RENDER``h]hDRM_PVR_CTX_TYPE_RENDER}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj3ubh, otherwise must be 0.}(hj3hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj3hM#hj3ubah}(h]h ]h"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]uh1jhj3hM#hj1ubeh}(h]h ]h"]h$]h&]uh1jhjE1ubeh}(h]h ] kernelindentah"]h$]h&]uh1jShj0hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jdrm_pvr_ctx_priority (C enum)c.drm_pvr_ctx_priorityhNtauh1jhj0hhhNhNubj)}(hhh](j)}(hdrm_pvr_ctx_priorityh]j)}(henum drm_pvr_ctx_priorityh](j)}(hjh]henum}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4hhh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:98: ./include/uapi/drm/pvr_drm.hhK`ubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4hhhj4hK`ubj)}(hdrm_pvr_ctx_priorityh]j)}(hj4h]hdrm_pvr_ctx_priority}(hj'4hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj#4ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj4hhhj4hK`ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj3hhhj4hK`ubah}(h]j3ah ](j#j$eh"]h$]h&]j(j))j*huh1jhj4hK`hj3hhubj,)}(hhh]h)}(hfArguments for :c:type:`drm_pvr_ioctl_create_context_args.priority `h](hArguments for }(hjI4hhhNhNubh)}(hX:c:type:`drm_pvr_ioctl_create_context_args.priority `h]h)}(hjS4h]h*drm_pvr_ioctl_create_context_args.priority}(hjU4hhhNhNubah}(h]h ](j,jHc-typeeh"]h$]h&]uh1hhjQ4ubah}(h]h ]h"]h$]h&]refdocj8 refdomainjHreftypetype refexplicitrefwarnj>jA)}jD]jF)}jIj4sbc.drm_pvr_ctx_priorityasbjF!drm_pvr_ioctl_create_context_argsuh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:98: ./include/uapi/drm/pvr_drm.hhK^hjI4ubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:98: ./include/uapi/drm/pvr_drm.hhMhjF4hhubah}(h]h ]h"]h$]h&]uh1j+hj3hhhj4hK`ubeh}(h]h ](jHenumeh"]h$]h&]jMjHjNj4jOj4jPjQjRuh1jhhhj0hNhNubjT)}(h**Constants** ``DRM_PVR_CTX_PRIORITY_LOW`` Priority below normal. ``DRM_PVR_CTX_PRIORITY_NORMAL`` Normal priority. ``DRM_PVR_CTX_PRIORITY_HIGH`` Priority above normal. Note this requires ``CAP_SYS_NICE`` or ``DRM_MASTER``.h](h)}(h **Constants**h]j^)}(hj4h]h Constants}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj4ubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:98: ./include/uapi/drm/pvr_drm.hhMhj4ubj)}(hhh](j)}(h4``DRM_PVR_CTX_PRIORITY_LOW`` Priority below normal. h](j)}(h``DRM_PVR_CTX_PRIORITY_LOW``h]h)}(hj4h]hDRM_PVR_CTX_PRIORITY_LOW}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:98: ./include/uapi/drm/pvr_drm.hhMhj4ubj)}(hhh]h)}(hPriority below normal.h]hPriority below normal.}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4hMhj4ubah}(h]h ]h"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]uh1jhj4hMhj4ubj)}(h1``DRM_PVR_CTX_PRIORITY_NORMAL`` Normal priority. h](j)}(h``DRM_PVR_CTX_PRIORITY_NORMAL``h]h)}(hj4h]hDRM_PVR_CTX_PRIORITY_NORMAL}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:98: ./include/uapi/drm/pvr_drm.hhMhj4ubj)}(hhh]h)}(hNormal priority.h]hNormal priority.}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4hMhj5ubah}(h]h ]h"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]uh1jhj4hMhj4ubj)}(hk``DRM_PVR_CTX_PRIORITY_HIGH`` Priority above normal. Note this requires ``CAP_SYS_NICE`` or ``DRM_MASTER``.h](j)}(h``DRM_PVR_CTX_PRIORITY_HIGH``h]h)}(hj#5h]hDRM_PVR_CTX_PRIORITY_HIGH}(hj%5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj!5ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:98: ./include/uapi/drm/pvr_drm.hhMhj5ubj)}(hhh]h)}(hMPriority above normal. Note this requires ``CAP_SYS_NICE`` or ``DRM_MASTER``.h](h*Priority above normal. Note this requires }(hj<5hhhNhNubh)}(h``CAP_SYS_NICE``h]h CAP_SYS_NICE}(hjD5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj<5ubh or }(hj<5hhhNhNubh)}(h``DRM_MASTER``h]h DRM_MASTER}(hjV5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj<5ubh.}(hj<5hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj85hMhj95ubah}(h]h ]h"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]uh1jhj85hMhj4ubeh}(h]h ]h"]h$]h&]uh1jhj4ubeh}(h]h ] kernelindentah"]h$]h&]uh1jShj0hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jdrm_pvr_ctx_type (C enum)c.drm_pvr_ctx_typehNtauh1jhj0hhhNhNubj)}(hhh](j)}(hdrm_pvr_ctx_typeh]j)}(henum drm_pvr_ctx_typeh](j)}(hjh]henum}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5hhh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:98: ./include/uapi/drm/pvr_drm.hhMubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5hhhj5hMubj)}(hdrm_pvr_ctx_typeh]j)}(hj5h]hdrm_pvr_ctx_type}(hj5hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj5ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj5hhhj5hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj5hhhj5hMubah}(h]j5ah ](j#j$eh"]h$]h&]j(j))j*huh1jhj5hMhj5hhubj,)}(hhh]h)}(hiArguments for :c:type:`struct drm_pvr_ioctl_create_context_args `.typeh](hArguments for }(hj5hhhNhNubh)}(hV:c:type:`struct drm_pvr_ioctl_create_context_args `h]h)}(hj5h]h(struct drm_pvr_ioctl_create_context_args}(hj5hhhNhNubah}(h]h ](j,jHc-typeeh"]h$]h&]uh1hhj5ubah}(h]h ]h"]h$]h&]refdocj8 refdomainjHreftypetype refexplicitrefwarnj>jA)}jD]jF)}jIj5sbc.drm_pvr_ctx_typeasbjF!drm_pvr_ioctl_create_context_argsuh1hhjw4hK^hj5ubh.type}(hj5hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:98: ./include/uapi/drm/pvr_drm.hhMhj5hhubah}(h]h ]h"]h$]h&]uh1j+hj5hhhj5hMubeh}(h]h ](jHenumeh"]h$]h&]jMjHjNj$6jOj$6jPjQjRuh1jhhhj0hNhNubjT)}(h**Constants** ``DRM_PVR_CTX_TYPE_RENDER`` Render context. ``DRM_PVR_CTX_TYPE_COMPUTE`` Compute context. ``DRM_PVR_CTX_TYPE_TRANSFER_FRAG`` Transfer context for fragment data master.h](h)}(h **Constants**h]j^)}(hj.6h]h Constants}(hj06hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj,6ubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:98: ./include/uapi/drm/pvr_drm.hhMhj(6ubj)}(hhh](j)}(h,``DRM_PVR_CTX_TYPE_RENDER`` Render context. h](j)}(h``DRM_PVR_CTX_TYPE_RENDER``h]h)}(hjM6h]hDRM_PVR_CTX_TYPE_RENDER}(hjO6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjK6ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:98: ./include/uapi/drm/pvr_drm.hhMhjG6ubj)}(hhh]h)}(hRender context.h]hRender context.}(hjf6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjb6hMhjc6ubah}(h]h ]h"]h$]h&]uh1jhjG6ubeh}(h]h ]h"]h$]h&]uh1jhjb6hMhjD6ubj)}(h.``DRM_PVR_CTX_TYPE_COMPUTE`` Compute context. h](j)}(h``DRM_PVR_CTX_TYPE_COMPUTE``h]h)}(hj6h]hDRM_PVR_CTX_TYPE_COMPUTE}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:98: ./include/uapi/drm/pvr_drm.hhMhj6ubj)}(hhh]h)}(hCompute context.h]hCompute context.}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6hMhj6ubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1jhj6hMhjD6ubj)}(hM``DRM_PVR_CTX_TYPE_TRANSFER_FRAG`` Transfer context for fragment data master.h](j)}(h"``DRM_PVR_CTX_TYPE_TRANSFER_FRAG``h]h)}(hj6h]hDRM_PVR_CTX_TYPE_TRANSFER_FRAG}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:98: ./include/uapi/drm/pvr_drm.hhMhj6ubj)}(hhh]h)}(h*Transfer context for fragment data master.h]h*Transfer context for fragment data master.}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6hMhj6ubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1jhj6hMhjD6ubeh}(h]h ]h"]h$]h&]uh1jhj(6ubeh}(h]h ] kernelindentah"]h$]h&]uh1jShj0hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j-drm_pvr_ioctl_destroy_context_args (C struct)$c.drm_pvr_ioctl_destroy_context_argshNtauh1jhj0hhhNhNubj)}(hhh](j)}(h"drm_pvr_ioctl_destroy_context_argsh]j)}(h)struct drm_pvr_ioctl_destroy_context_argsh](j)}(hjh]hstruct}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7hhh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:106: ./include/uapi/drm/pvr_drm.hhK`ubj)}(h h]h }(hj&7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7hhhj%7hK`ubj)}(h"drm_pvr_ioctl_destroy_context_argsh]j)}(hj7h]h"drm_pvr_ioctl_destroy_context_args}(hj87hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj47ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj7hhhj%7hK`ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj7hhhj%7hK`ubah}(h]j 7ah ](j#j$eh"]h$]h&]j(j))j*huh1jhj%7hK`hj 7hhubj,)}(hhh]h)}(h/Arguments for ``DRM_IOCTL_PVR_DESTROY_CONTEXT``h](hArguments for }(hjZ7hhhNhNubh)}(h!``DRM_IOCTL_PVR_DESTROY_CONTEXT``h]hDRM_IOCTL_PVR_DESTROY_CONTEXT}(hjb7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjZ7ubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:106: ./include/uapi/drm/pvr_drm.hhM)hjW7hhubah}(h]h ]h"]h$]h&]uh1j+hj 7hhhj%7hK`ubeh}(h]h ](jHstructeh"]h$]h&]jMjHjNj7jOj7jPjQjRuh1jhhhj0hNhNubjT)}(h**Definition**:: struct drm_pvr_ioctl_destroy_context_args { __u32 handle; __u32 _padding_4; }; **Members** ``handle`` [IN] Handle for context to be destroyed. ``_padding_4`` Reserved. This field must be zeroed.h](h)}(h**Definition**::h](j^)}(h**Definition**h]h Definition}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj7ubh:}(hj7hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:106: ./include/uapi/drm/pvr_drm.hhM-hj7ubjy)}(hVstruct drm_pvr_ioctl_destroy_context_args { __u32 handle; __u32 _padding_4; };h]hVstruct drm_pvr_ioctl_destroy_context_args { __u32 handle; __u32 _padding_4; };}hj7sbah}(h]h ]h"]h$]h&]jjuh1jxh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:106: ./include/uapi/drm/pvr_drm.hhM/hj7ubh)}(h **Members**h]j^)}(hj7h]hMembers}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj7ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:106: ./include/uapi/drm/pvr_drm.hhM4hj7ubj)}(hhh](j)}(h4``handle`` [IN] Handle for context to be destroyed. h](j)}(h ``handle``h]h)}(hj7h]hhandle}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7ubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:106: ./include/uapi/drm/pvr_drm.hhM/hj7ubj)}(hhh]h)}(h([IN] Handle for context to be destroyed.h]h([IN] Handle for context to be destroyed.}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7hM/hj7ubah}(h]h ]h"]h$]h&]uh1jhj7ubeh}(h]h ]h"]h$]h&]uh1jhj7hM/hj7ubj)}(h3``_padding_4`` Reserved. This field must be zeroed.h](j)}(h``_padding_4``h]h)}(hj8h]h _padding_4}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj 8ubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:106: ./include/uapi/drm/pvr_drm.hhKhj8ubj)}(hhh]h)}(h$Reserved. This field must be zeroed.h]h$Reserved. This field must be zeroed.}(hj'8hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:106: ./include/uapi/drm/pvr_drm.hhKhj$8ubah}(h]h ]h"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]uh1jhj#8hKhj7ubeh}(h]h ]h"]h$]h&]uh1jhj7ubeh}(h]h ] kernelindentah"]h$]h&]uh1jShj0hhhNhNubeh}(h]"create-context-and-destroy-contextah ]h"]"create_context and destroy_contextah$]h&]uh1hhj[hhhhhK[ubh)}(hhh](h)}(h&CREATE_FREE_LIST and DESTROY_FREE_LISTh]h&CREATE_FREE_LIST and DESTROY_FREE_LIST}(hjZ8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjW8hhhhhKnubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j.drm_pvr_ioctl_create_free_list_args (C struct)%c.drm_pvr_ioctl_create_free_list_argshNtauh1jhjW8hhhNhNubj)}(hhh](j)}(h#drm_pvr_ioctl_create_free_list_argsh]j)}(h*struct drm_pvr_ioctl_create_free_list_argsh](j)}(hjh]hstruct}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}8hhh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:114: ./include/uapi/drm/pvr_drm.hhK`ubj)}(h h]h }(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}8hhhj8hK`ubj)}(h#drm_pvr_ioctl_create_free_list_argsh]j)}(hj{8h]h#drm_pvr_ioctl_create_free_list_args}(hj8hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj8ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj}8hhhj8hK`ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjy8hhhj8hK`ubah}(h]jt8ah ](j#j$eh"]h$]h&]j(j))j*huh1jhj8hK`hjv8hhubj,)}(hhh]h)}(h0Arguments for ``DRM_IOCTL_PVR_CREATE_FREE_LIST``h](hArguments for }(hj8hhhNhNubh)}(h"``DRM_IOCTL_PVR_CREATE_FREE_LIST``h]hDRM_IOCTL_PVR_CREATE_FREE_LIST}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8ubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:114: ./include/uapi/drm/pvr_drm.hhM;hj8hhubah}(h]h ]h"]h$]h&]uh1j+hjv8hhhj8hK`ubeh}(h]h ](jHstructeh"]h$]h&]jMjHjNj8jOj8jPjQjRuh1jhhhjW8hNhNubjT)}(hXE**Definition**:: struct drm_pvr_ioctl_create_free_list_args { __u64 free_list_gpu_addr; __u32 initial_num_pages; __u32 max_num_pages; __u32 grow_num_pages; __u32 grow_threshold; __u32 vm_context_handle; __u32 handle; }; **Members** ``free_list_gpu_addr`` [IN] Address of GPU mapping of buffer object containing memory to be used by free list. The mapped region of the buffer object must be at least **max_num_pages** * ``sizeof(__u32)``. The buffer object must have been created with ``DRM_PVR_BO_DEVICE_PM_FW_PROTECT`` set and ``DRM_PVR_BO_CPU_ALLOW_USERSPACE_ACCESS`` not set. ``initial_num_pages`` [IN] Pages initially allocated to free list. ``max_num_pages`` [IN] Maximum number of pages in free list. ``grow_num_pages`` [IN] Pages to grow free list by per request. ``grow_threshold`` [IN] Percentage of FL memory used that should trigger a new grow request. ``vm_context_handle`` [IN] Handle for VM context that the free list buffer object is mapped in. ``handle`` [OUT] Handle for created free list.h](h)}(h**Definition**::h](j^)}(h**Definition**h]h Definition}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj8ubh:}(hj8hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:114: ./include/uapi/drm/pvr_drm.hhM?hj8ubjy)}(hstruct drm_pvr_ioctl_create_free_list_args { __u64 free_list_gpu_addr; __u32 initial_num_pages; __u32 max_num_pages; __u32 grow_num_pages; __u32 grow_threshold; __u32 vm_context_handle; __u32 handle; };h]hstruct drm_pvr_ioctl_create_free_list_args { __u64 free_list_gpu_addr; __u32 initial_num_pages; __u32 max_num_pages; __u32 grow_num_pages; __u32 grow_threshold; __u32 vm_context_handle; __u32 handle; };}hj9sbah}(h]h ]h"]h$]h&]jjuh1jxh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:114: ./include/uapi/drm/pvr_drm.hhMAhj8ubh)}(h **Members**h]j^)}(hj9h]hMembers}(hj!9hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj9ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:114: ./include/uapi/drm/pvr_drm.hhMKhj8ubj)}(hhh](j)}(hX]``free_list_gpu_addr`` [IN] Address of GPU mapping of buffer object containing memory to be used by free list. The mapped region of the buffer object must be at least **max_num_pages** * ``sizeof(__u32)``. The buffer object must have been created with ``DRM_PVR_BO_DEVICE_PM_FW_PROTECT`` set and ``DRM_PVR_BO_CPU_ALLOW_USERSPACE_ACCESS`` not set. h](j)}(h``free_list_gpu_addr``h]h)}(hj>9h]hfree_list_gpu_addr}(hj@9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj<9ubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:114: ./include/uapi/drm/pvr_drm.hhMUhj89ubj)}(hhh](h)}(hW[IN] Address of GPU mapping of buffer object containing memory to be used by free list.h]hW[IN] Address of GPU mapping of buffer object containing memory to be used by free list.}(hjW9hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:114: ./include/uapi/drm/pvr_drm.hhMMhjT9ubh)}(h^The mapped region of the buffer object must be at least **max_num_pages** * ``sizeof(__u32)``.h](h8The mapped region of the buffer object must be at least }(hjf9hhhNhNubj^)}(h**max_num_pages**h]h max_num_pages}(hjn9hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjf9ubh * }(hjf9hhhNhNubh)}(h``sizeof(__u32)``h]h sizeof(__u32)}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjf9ubh.}(hjf9hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:114: ./include/uapi/drm/pvr_drm.hhMPhjT9ubh)}(hThe buffer object must have been created with ``DRM_PVR_BO_DEVICE_PM_FW_PROTECT`` set and ``DRM_PVR_BO_CPU_ALLOW_USERSPACE_ACCESS`` not set.h](h.The buffer object must have been created with }(hj9hhhNhNubh)}(h#``DRM_PVR_BO_DEVICE_PM_FW_PROTECT``h]hDRM_PVR_BO_DEVICE_PM_FW_PROTECT}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9ubh set and }(hj9hhhNhNubh)}(h)``DRM_PVR_BO_CPU_ALLOW_USERSPACE_ACCESS``h]h%DRM_PVR_BO_CPU_ALLOW_USERSPACE_ACCESS}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9ubh not set.}(hj9hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:114: ./include/uapi/drm/pvr_drm.hhMShjT9ubeh}(h]h ]h"]h$]h&]uh1jhj89ubeh}(h]h ]h"]h$]h&]uh1jhjS9hMUhj59ubj)}(hC``initial_num_pages`` [IN] Pages initially allocated to free list. h](j)}(h``initial_num_pages``h]h)}(hj9h]hinitial_num_pages}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9ubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:114: ./include/uapi/drm/pvr_drm.hhKhj9ubj)}(hhh]h)}(h,[IN] Pages initially allocated to free list.h]h,[IN] Pages initially allocated to free list.}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hKhj9ubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jhj9hKhj59ubj)}(h=``max_num_pages`` [IN] Maximum number of pages in free list. h](j)}(h``max_num_pages``h]h)}(hj:h]h max_num_pages}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj:ubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:114: ./include/uapi/drm/pvr_drm.hhKhj:ubj)}(hhh]h)}(h*[IN] Maximum number of pages in free list.h]h*[IN] Maximum number of pages in free list.}(hj0:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,:hKhj-:ubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1jhj,:hKhj59ubj)}(h@``grow_num_pages`` [IN] Pages to grow free list by per request. h](j)}(h``grow_num_pages``h]h)}(hjP:h]hgrow_num_pages}(hjR:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjN:ubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:114: ./include/uapi/drm/pvr_drm.hhKhjJ:ubj)}(hhh]h)}(h,[IN] Pages to grow free list by per request.h]h,[IN] Pages to grow free list by per request.}(hji:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhje:hKhjf:ubah}(h]h ]h"]h$]h&]uh1jhjJ:ubeh}(h]h ]h"]h$]h&]uh1jhje:hKhj59ubj)}(h]``grow_threshold`` [IN] Percentage of FL memory used that should trigger a new grow request. h](j)}(h``grow_threshold``h]h)}(hj:h]hgrow_threshold}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj:ubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:114: ./include/uapi/drm/pvr_drm.hhMdhj:ubj)}(hhh]h)}(hI[IN] Percentage of FL memory used that should trigger a new grow request.h]hI[IN] Percentage of FL memory used that should trigger a new grow request.}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:114: ./include/uapi/drm/pvr_drm.hhMchj:ubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1jhj:hMdhj59ubj)}(h```vm_context_handle`` [IN] Handle for VM context that the free list buffer object is mapped in. h](j)}(h``vm_context_handle``h]h)}(hj:h]hvm_context_handle}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj:ubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:114: ./include/uapi/drm/pvr_drm.hhMjhj:ubj)}(hhh]h)}(hI[IN] Handle for VM context that the free list buffer object is mapped in.h]hI[IN] Handle for VM context that the free list buffer object is mapped in.}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:114: ./include/uapi/drm/pvr_drm.hhMihj:ubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1jhj:hMjhj59ubj)}(h.``handle`` [OUT] Handle for created free list.h](j)}(h ``handle``h]h)}(hj:h]hhandle}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj:ubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:114: ./include/uapi/drm/pvr_drm.hhMnhj:ubj)}(hhh]h)}(h#[OUT] Handle for created free list.h]h#[OUT] Handle for created free list.}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:114: ./include/uapi/drm/pvr_drm.hhMohj;ubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1jhj;hMnhj59ubeh}(h]h ]h"]h$]h&]uh1jhj8ubeh}(h]h ] kernelindentah"]h$]h&]uh1jShjW8hhhNhNubh)}(h**Description**h]j^)}(hj@;h]h Description}(hjB;hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj>;ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:114: ./include/uapi/drm/pvr_drm.hhMrhjW8hhubh)}(h4Free list arguments have the following constraints :h]h4Free list arguments have the following constraints :}(hjV;hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:114: ./include/uapi/drm/pvr_drm.hhM<hjW8hhubh)}(hhh](h)}(h,**max_num_pages** must be greater than zero.h]h)}(hjj;h](j^)}(h**max_num_pages**h]h max_num_pages}(hjo;hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjl;ubh must be greater than zero.}(hjl;hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:114: ./include/uapi/drm/pvr_drm.hhM>hjh;ubah}(h]h ]h"]h$]h&]uh1hhje;ubh)}(h-**grow_threshold** must be between 0 and 100.h]h)}(hj;h](j^)}(h**grow_threshold**h]hgrow_threshold}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj;ubh must be between 0 and 100.}(hj;hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:114: ./include/uapi/drm/pvr_drm.hhM?hj;ubah}(h]h ]h"]h$]h&]uh1hhje;ubh)}(hI**grow_num_pages** must be less than or equal to :c:type:`max_num_pages`.h]h)}(hj;h](j^)}(h**grow_num_pages**h]hgrow_num_pages}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj;ubh must be less than or equal to }(hj;hhhNhNubh)}(h:c:type:`max_num_pages`h]h)}(hj;h]h max_num_pages}(hj;hhhNhNubah}(h]h ](j,jHc-typeeh"]h$]h&]uh1hhj;ubah}(h]h ]h"]h$]h&]refdocj8 refdomainjHreftypetype refexplicitrefwarnj>jBjF max_num_pagesuh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:114: ./include/uapi/drm/pvr_drm.hhM@hj;ubh.}(hj;hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj;hM@hj;ubah}(h]h ]h"]h$]h&]uh1hhje;ubh)}(hW**initial_num_pages**, **max_num_pages** and **grow_num_pages** must be multiples of 4.h]h)}(hW**initial_num_pages**, **max_num_pages** and **grow_num_pages** must be multiples of 4.h](j^)}(h**initial_num_pages**h]hinitial_num_pages}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj<ubh, }(hj<hhhNhNubj^)}(h**max_num_pages**h]h max_num_pages}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj<ubh and }(hj<hhhNhNubj^)}(h**grow_num_pages**h]hgrow_num_pages}(hj)<hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj<ubh must be multiples of 4.}(hj<hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:114: ./include/uapi/drm/pvr_drm.hhMAhj;ubah}(h]h ]h"]h$]h&]uh1hhje;ubh)}(h]When :c:type:`grow_num_pages` is 0, **initial_num_pages** must be equal to **max_num_pages**.h]h)}(h]When :c:type:`grow_num_pages` is 0, **initial_num_pages** must be equal to **max_num_pages**.h](hWhen }(hjL<hhhNhNubh)}(h:c:type:`grow_num_pages`h]h)}(hjV<h]hgrow_num_pages}(hjX<hhhNhNubah}(h]h ](j,jHc-typeeh"]h$]h&]uh1hhjT<ubah}(h]h ]h"]h$]h&]refdocj8 refdomainjHreftypetype refexplicitrefwarnj>jBjFgrow_num_pagesuh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:114: ./include/uapi/drm/pvr_drm.hhMChjL<ubh is 0, }(hjL<hhhNhNubj^)}(h**initial_num_pages**h]hinitial_num_pages}(hjx<hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjL<ubh must be equal to }(hjL<hhhNhNubj^)}(h**max_num_pages**h]h max_num_pages}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjL<ubh.}(hjL<hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjs<hMChjH<ubah}(h]h ]h"]h$]h&]uh1hhje;ubh)}(hgWhen :c:type:`grow_num_pages` is non-zero, **initial_num_pages** must be less than **max_num_pages**. h]h)}(heWhen :c:type:`grow_num_pages` is non-zero, **initial_num_pages** must be less than **max_num_pages**.h](hWhen }(hj<hhhNhNubh)}(h:c:type:`grow_num_pages`h]h)}(hj<h]hgrow_num_pages}(hj<hhhNhNubah}(h]h ](j,jHc-typeeh"]h$]h&]uh1hhj<ubah}(h]h ]h"]h$]h&]refdocj8 refdomainjHreftypetype refexplicitrefwarnj>jBjFgrow_num_pagesuh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:114: ./include/uapi/drm/pvr_drm.hhMEhj<ubh is non-zero, }(hj<hhhNhNubj^)}(h**initial_num_pages**h]hinitial_num_pages}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj<ubh must be less than }(hj<hhhNhNubj^)}(h**max_num_pages**h]h max_num_pages}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj<ubh.}(hj<hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj<hMEhj<ubah}(h]h ]h"]h$]h&]uh1hhje;ubeh}(h]h ]h"]h$]h&]jjuh1hhj;hM>hjW8hhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j/drm_pvr_ioctl_destroy_free_list_args (C struct)&c.drm_pvr_ioctl_destroy_free_list_argshNtauh1jhjW8hhhNhNubj)}(hhh](j)}(h$drm_pvr_ioctl_destroy_free_list_argsh]j)}(h+struct drm_pvr_ioctl_destroy_free_list_argsh](j)}(hjh]hstruct}(hj'=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#=hhh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:117: ./include/uapi/drm/pvr_drm.hhK`ubj)}(h h]h }(hj5=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#=hhhj4=hK`ubj)}(h$drm_pvr_ioctl_destroy_free_list_argsh]j)}(hj!=h]h$drm_pvr_ioctl_destroy_free_list_args}(hjG=hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjC=ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj#=hhhj4=hK`ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj=hhhj4=hK`ubah}(h]j=ah ](j#j$eh"]h$]h&]j(j))j*huh1jhj4=hK`hj=hhubj,)}(hhh]h)}(h1Arguments for ``DRM_IOCTL_PVR_DESTROY_FREE_LIST``h](hArguments for }(hji=hhhNhNubh)}(h#``DRM_IOCTL_PVR_DESTROY_FREE_LIST``h]hDRM_IOCTL_PVR_DESTROY_FREE_LIST}(hjq=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhji=ubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:117: ./include/uapi/drm/pvr_drm.hhMthjf=hhubah}(h]h ]h"]h$]h&]uh1j+hj=hhhj4=hK`ubeh}(h]h ](jHstructeh"]h$]h&]jMjHjNj=jOj=jPjQjRuh1jhhhjW8hNhNubjT)}(h**Definition**:: struct drm_pvr_ioctl_destroy_free_list_args { __u32 handle; __u32 _padding_4; }; **Members** ``handle`` [IN] Handle for free list to be destroyed. ``_padding_4`` Reserved. This field must be zeroed.h](h)}(h**Definition**::h](j^)}(h**Definition**h]h Definition}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj=ubh:}(hj=hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:117: ./include/uapi/drm/pvr_drm.hhMxhj=ubjy)}(hXstruct drm_pvr_ioctl_destroy_free_list_args { __u32 handle; __u32 _padding_4; };h]hXstruct drm_pvr_ioctl_destroy_free_list_args { __u32 handle; __u32 _padding_4; };}hj=sbah}(h]h ]h"]h$]h&]jjuh1jxh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:117: ./include/uapi/drm/pvr_drm.hhMzhj=ubh)}(h **Members**h]j^)}(hj=h]hMembers}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj=ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:117: ./include/uapi/drm/pvr_drm.hhMhj=ubj)}(hhh](j)}(h6``handle`` [IN] Handle for free list to be destroyed. h](j)}(h ``handle``h]h)}(hj=h]hhandle}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj=ubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:117: ./include/uapi/drm/pvr_drm.hhMzhj=ubj)}(hhh]h)}(h*[IN] Handle for free list to be destroyed.h]h*[IN] Handle for free list to be destroyed.}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj=hMzhj=ubah}(h]h ]h"]h$]h&]uh1jhj=ubeh}(h]h ]h"]h$]h&]uh1jhj=hMzhj=ubj)}(h3``_padding_4`` Reserved. This field must be zeroed.h](j)}(h``_padding_4``h]h)}(hj>h]h _padding_4}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj>ubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:117: ./include/uapi/drm/pvr_drm.hhKhj>ubj)}(hhh]h)}(h$Reserved. This field must be zeroed.h]h$Reserved. This field must be zeroed.}(hj6>hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:117: ./include/uapi/drm/pvr_drm.hhKhj3>ubah}(h]h ]h"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]uh1jhj2>hKhj=ubeh}(h]h ]h"]h$]h&]uh1jhj=ubeh}(h]h ] kernelindentah"]h$]h&]uh1jShjW8hhhNhNubeh}(h]&create-free-list-and-destroy-free-listah ]h"]&create_free_list and destroy_free_listah$]h&]uh1hhj[hhhhhKnubh)}(hhh](h)}(h,CREATE_HWRT_DATASET and DESTROY_HWRT_DATASETh]h,CREATE_HWRT_DATASET and DESTROY_HWRT_DATASET}(hji>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjf>hhhhhKyubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j1drm_pvr_ioctl_create_hwrt_dataset_args (C struct)(c.drm_pvr_ioctl_create_hwrt_dataset_argshNtauh1jhjf>hhhNhNubj)}(hhh](j)}(h&drm_pvr_ioctl_create_hwrt_dataset_argsh]j)}(h-struct drm_pvr_ioctl_create_hwrt_dataset_argsh](j)}(hjh]hstruct}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>hhh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:125: ./include/uapi/drm/pvr_drm.hhK`ubj)}(h h]h }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>hhhj>hK`ubj)}(h&drm_pvr_ioctl_create_hwrt_dataset_argsh]j)}(hj>h]h&drm_pvr_ioctl_create_hwrt_dataset_args}(hj>hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj>ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj>hhhj>hK`ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj>hhhj>hK`ubah}(h]j>ah ](j#j$eh"]h$]h&]j(j))j*huh1jhj>hK`hj>hhubj,)}(hhh]h)}(h3Arguments for ``DRM_IOCTL_PVR_CREATE_HWRT_DATASET``h](hArguments for }(hj>hhhNhNubh)}(h%``DRM_IOCTL_PVR_CREATE_HWRT_DATASET``h]h!DRM_IOCTL_PVR_CREATE_HWRT_DATASET}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj>ubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:125: ./include/uapi/drm/pvr_drm.hhMhj>hhubah}(h]h ]h"]h$]h&]uh1j+hj>hhhj>hK`ubeh}(h]h ](jHstructeh"]h$]h&]jMjHjNj>jOj>jPjQjRuh1jhhhjf>hNhNubjT)}(hX**Definition**:: struct drm_pvr_ioctl_create_hwrt_dataset_args { struct drm_pvr_create_hwrt_geom_data_args geom_data_args; struct drm_pvr_create_hwrt_rt_data_args rt_data_args[2]; __u32 free_list_handles[2]; __u32 width; __u32 height; __u32 samples; __u32 layers; __u32 isp_merge_lower_x; __u32 isp_merge_lower_y; __u32 isp_merge_scale_x; __u32 isp_merge_scale_y; __u32 isp_merge_upper_x; __u32 isp_merge_upper_y; __u32 region_header_size; __u32 handle; }; **Members** ``geom_data_args`` [IN] Geometry data arguments. ``rt_data_args`` [IN] Array of render target arguments. Each entry in this array represents a render target in a double buffered setup. ``free_list_handles`` [IN] Array of free list handles. free_list_handles[PVR_DRM_HWRT_FREE_LIST_LOCAL] must have initial size of at least that reported by :c:type:`drm_pvr_dev_query_runtime_info.free_list_min_pages `. ``width`` [IN] Width in pixels. ``height`` [IN] Height in pixels. ``samples`` [IN] Number of samples. ``layers`` [IN] Number of layers. ``isp_merge_lower_x`` [IN] Lower X coefficient for triangle merging. ``isp_merge_lower_y`` [IN] Lower Y coefficient for triangle merging. ``isp_merge_scale_x`` [IN] Scale X coefficient for triangle merging. ``isp_merge_scale_y`` [IN] Scale Y coefficient for triangle merging. ``isp_merge_upper_x`` [IN] Upper X coefficient for triangle merging. ``isp_merge_upper_y`` [IN] Upper Y coefficient for triangle merging. ``region_header_size`` [IN] Size of region header array. This common field is used by both render targets in this data set. The units for this field differ depending on what version of the simple internal parameter format the device uses. If format 2 is in use then this is interpreted as the number of region headers. For other formats it is interpreted as the size in dwords. ``handle`` [OUT] Handle for created HWRT dataset.h](h)}(h**Definition**::h](j^)}(h**Definition**h]h Definition}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj?ubh:}(hj?hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:125: ./include/uapi/drm/pvr_drm.hhMhj>ubjy)}(hXstruct drm_pvr_ioctl_create_hwrt_dataset_args { struct drm_pvr_create_hwrt_geom_data_args geom_data_args; struct drm_pvr_create_hwrt_rt_data_args rt_data_args[2]; __u32 free_list_handles[2]; __u32 width; __u32 height; __u32 samples; __u32 layers; __u32 isp_merge_lower_x; __u32 isp_merge_lower_y; __u32 isp_merge_scale_x; __u32 isp_merge_scale_y; __u32 isp_merge_upper_x; __u32 isp_merge_upper_y; __u32 region_header_size; __u32 handle; };h]hXstruct drm_pvr_ioctl_create_hwrt_dataset_args { struct drm_pvr_create_hwrt_geom_data_args geom_data_args; struct drm_pvr_create_hwrt_rt_data_args rt_data_args[2]; __u32 free_list_handles[2]; __u32 width; __u32 height; __u32 samples; __u32 layers; __u32 isp_merge_lower_x; __u32 isp_merge_lower_y; __u32 isp_merge_scale_x; __u32 isp_merge_scale_y; __u32 isp_merge_upper_x; __u32 isp_merge_upper_y; __u32 region_header_size; __u32 handle; };}hj?sbah}(h]h ]h"]h$]h&]jjuh1jxh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:125: ./include/uapi/drm/pvr_drm.hhMhj>ubh)}(h **Members**h]j^)}(hj.?h]hMembers}(hj0?hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj,?ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:125: ./include/uapi/drm/pvr_drm.hhMhj>ubj)}(hhh](j)}(h1``geom_data_args`` [IN] Geometry data arguments. h](j)}(h``geom_data_args``h]h)}(hjM?h]hgeom_data_args}(hjO?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjK?ubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:125: ./include/uapi/drm/pvr_drm.hhMhjG?ubj)}(hhh]h)}(h[IN] Geometry data arguments.h]h[IN] Geometry data arguments.}(hjf?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjb?hMhjc?ubah}(h]h ]h"]h$]h&]uh1jhjG?ubeh}(h]h ]h"]h$]h&]uh1jhjb?hMhjD?ubj)}(h``rt_data_args`` [IN] Array of render target arguments. Each entry in this array represents a render target in a double buffered setup. h](j)}(h``rt_data_args``h]h)}(hj?h]h rt_data_args}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj?ubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:125: ./include/uapi/drm/pvr_drm.hhMhj?ubj)}(hhh](h)}(h&[IN] Array of render target arguments.h]h&[IN] Array of render target arguments.}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:125: ./include/uapi/drm/pvr_drm.hhMhj?ubh)}(hOEach entry in this array represents a render target in a double buffered setup.h]hOEach entry in this array represents a render target in a double buffered setup.}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:125: ./include/uapi/drm/pvr_drm.hhMhj?ubeh}(h]h ]h"]h$]h&]uh1jhj?ubeh}(h]h ]h"]h$]h&]uh1jhj?hMhjD?ubj)}(h``free_list_handles`` [IN] Array of free list handles. free_list_handles[PVR_DRM_HWRT_FREE_LIST_LOCAL] must have initial size of at least that reported by :c:type:`drm_pvr_dev_query_runtime_info.free_list_min_pages `. h](j)}(h``free_list_handles``h]h)}(hj?h]hfree_list_handles}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj?ubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:125: ./include/uapi/drm/pvr_drm.hhMhj?ubj)}(hhh](h)}(h [IN] Array of free list handles.h]h [IN] Array of free list handles.}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:125: ./include/uapi/drm/pvr_drm.hhMhj?ubh)}(hfree_list_handles[PVR_DRM_HWRT_FREE_LIST_LOCAL] must have initial size of at least that reported by :c:type:`drm_pvr_dev_query_runtime_info.free_list_min_pages `.h](hdfree_list_handles[PVR_DRM_HWRT_FREE_LIST_LOCAL] must have initial size of at least that reported by }(hj?hhhNhNubh)}(h]:c:type:`drm_pvr_dev_query_runtime_info.free_list_min_pages `h]h)}(hj@h]h2drm_pvr_dev_query_runtime_info.free_list_min_pages}(hj@hhhNhNubah}(h]h ](j,jHc-typeeh"]h$]h&]uh1hhj?ubah}(h]h ]h"]h$]h&]refdocj8 refdomainjHreftypetype refexplicitrefwarnj>jBjFdrm_pvr_dev_query_runtime_infouh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:125: ./include/uapi/drm/pvr_drm.hhMhj?ubh.}(hj?hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj@hMhj?ubeh}(h]h ]h"]h$]h&]uh1jhj?ubeh}(h]h ]h"]h$]h&]uh1jhj?hMhjD?ubj)}(h ``width`` [IN] Width in pixels. h](j)}(h ``width``h]h)}(hj;@h]hwidth}(hj=@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9@ubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:125: ./include/uapi/drm/pvr_drm.hhKhj5@ubj)}(hhh]h)}(h[IN] Width in pixels.h]h[IN] Width in pixels.}(hjT@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjP@hKhjQ@ubah}(h]h ]h"]h$]h&]uh1jhj5@ubeh}(h]h ]h"]h$]h&]uh1jhjP@hKhjD?ubj)}(h"``height`` [IN] Height in pixels. h](j)}(h ``height``h]h)}(hjt@h]hheight}(hjv@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjr@ubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:125: ./include/uapi/drm/pvr_drm.hhKhjn@ubj)}(hhh]h)}(h[IN] Height in pixels.h]h[IN] Height in pixels.}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj@hKhj@ubah}(h]h ]h"]h$]h&]uh1jhjn@ubeh}(h]h ]h"]h$]h&]uh1jhj@hKhjD?ubj)}(h$``samples`` [IN] Number of samples. h](j)}(h ``samples``h]h)}(hj@h]hsamples}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj@ubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:125: ./include/uapi/drm/pvr_drm.hhKhj@ubj)}(hhh]h)}(h[IN] Number of samples.h]h[IN] Number of samples.}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj@hKhj@ubah}(h]h ]h"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]uh1jhj@hKhjD?ubj)}(h"``layers`` [IN] Number of layers. h](j)}(h ``layers``h]h)}(hj@h]hlayers}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj@ubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:125: ./include/uapi/drm/pvr_drm.hhKhj@ubj)}(hhh]h)}(h[IN] Number of layers.h]h[IN] Number of layers.}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj@hKhj@ubah}(h]h ]h"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]uh1jhj@hKhjD?ubj)}(hE``isp_merge_lower_x`` [IN] Lower X coefficient for triangle merging. h](j)}(h``isp_merge_lower_x``h]h)}(hjAh]hisp_merge_lower_x}(hj!AhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjAubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:125: ./include/uapi/drm/pvr_drm.hhKhjAubj)}(hhh]h)}(h.[IN] Lower X coefficient for triangle merging.h]h.[IN] Lower X coefficient for triangle merging.}(hj8AhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4AhKhj5Aubah}(h]h ]h"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]uh1jhj4AhKhjD?ubj)}(hE``isp_merge_lower_y`` [IN] Lower Y coefficient for triangle merging. h](j)}(h``isp_merge_lower_y``h]h)}(hjXAh]hisp_merge_lower_y}(hjZAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjVAubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:125: ./include/uapi/drm/pvr_drm.hhKhjRAubj)}(hhh]h)}(h.[IN] Lower Y coefficient for triangle merging.h]h.[IN] Lower Y coefficient for triangle merging.}(hjqAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjmAhKhjnAubah}(h]h ]h"]h$]h&]uh1jhjRAubeh}(h]h ]h"]h$]h&]uh1jhjmAhKhjD?ubj)}(hE``isp_merge_scale_x`` [IN] Scale X coefficient for triangle merging. h](j)}(h``isp_merge_scale_x``h]h)}(hjAh]hisp_merge_scale_x}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjAubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:125: ./include/uapi/drm/pvr_drm.hhKhjAubj)}(hhh]h)}(h.[IN] Scale X coefficient for triangle merging.h]h.[IN] Scale X coefficient for triangle merging.}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjAhKhjAubah}(h]h ]h"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]uh1jhjAhKhjD?ubj)}(hE``isp_merge_scale_y`` [IN] Scale Y coefficient for triangle merging. h](j)}(h``isp_merge_scale_y``h]h)}(hjAh]hisp_merge_scale_y}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjAubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:125: ./include/uapi/drm/pvr_drm.hhKhjAubj)}(hhh]h)}(h.[IN] Scale Y coefficient for triangle merging.h]h.[IN] Scale Y coefficient for triangle merging.}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjAhKhjAubah}(h]h ]h"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]uh1jhjAhKhjD?ubj)}(hE``isp_merge_upper_x`` [IN] Upper X coefficient for triangle merging. h](j)}(h``isp_merge_upper_x``h]h)}(hjBh]hisp_merge_upper_x}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjBubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:125: ./include/uapi/drm/pvr_drm.hhKhjAubj)}(hhh]h)}(h.[IN] Upper X coefficient for triangle merging.h]h.[IN] Upper X coefficient for triangle merging.}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjBhKhjBubah}(h]h ]h"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]uh1jhjBhKhjD?ubj)}(hE``isp_merge_upper_y`` [IN] Upper Y coefficient for triangle merging. h](j)}(h``isp_merge_upper_y``h]h)}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj:Bubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:125: ./include/uapi/drm/pvr_drm.hhKhj6Bubj)}(hhh]h)}(h.[IN] Upper Y coefficient for triangle merging.h]h.[IN] Upper Y coefficient for triangle merging.}(hjUBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjQBhKhjRBubah}(h]h ]h"]h$]h&]uh1jhj6Bubeh}(h]h ]h"]h$]h&]uh1jhjQBhKhjD?ubj)}(hX{``region_header_size`` [IN] Size of region header array. This common field is used by both render targets in this data set. The units for this field differ depending on what version of the simple internal parameter format the device uses. If format 2 is in use then this is interpreted as the number of region headers. For other formats it is interpreted as the size in dwords. h](j)}(h``region_header_size``h]h)}(hjuBh]hregion_header_size}(hjwBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjsBubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:125: ./include/uapi/drm/pvr_drm.hhMhjoBubj)}(hhh](h)}(hd[IN] Size of region header array. This common field is used by both render targets in this data set.h]hd[IN] Size of region header array. This common field is used by both render targets in this data set.}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:125: ./include/uapi/drm/pvr_drm.hhMhjBubh)}(hThe units for this field differ depending on what version of the simple internal parameter format the device uses. If format 2 is in use then this is interpreted as the number of region headers. For other formats it is interpreted as the size in dwords.h]hThe units for this field differ depending on what version of the simple internal parameter format the device uses. If format 2 is in use then this is interpreted as the number of region headers. For other formats it is interpreted as the size in dwords.}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:125: ./include/uapi/drm/pvr_drm.hhMhjBubeh}(h]h ]h"]h$]h&]uh1jhjoBubeh}(h]h ]h"]h$]h&]uh1jhjBhMhjD?ubj)}(h1``handle`` [OUT] Handle for created HWRT dataset.h](j)}(h ``handle``h]h)}(hjBh]hhandle}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjBubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:125: ./include/uapi/drm/pvr_drm.hhMhjBubj)}(hhh]h)}(h&[OUT] Handle for created HWRT dataset.h]h&[OUT] Handle for created HWRT dataset.}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:125: ./include/uapi/drm/pvr_drm.hhMhjBubah}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]uh1jhjBhMhjD?ubeh}(h]h ]h"]h$]h&]uh1jhj>ubeh}(h]h ] kernelindentah"]h$]h&]uh1jShjf>hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j-drm_pvr_create_hwrt_geom_data_args (C struct)$c.drm_pvr_create_hwrt_geom_data_argshNtauh1jhjf>hhhNhNubj)}(hhh](j)}(h"drm_pvr_create_hwrt_geom_data_argsh]j)}(h)struct drm_pvr_create_hwrt_geom_data_argsh](j)}(hjh]hstruct}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjChhh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:128: ./include/uapi/drm/pvr_drm.hhK`ubj)}(h h]h }(hj&ChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjChhhj%ChK`ubj)}(h"drm_pvr_create_hwrt_geom_data_argsh]j)}(hjCh]h"drm_pvr_create_hwrt_geom_data_args}(hj8ChhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj4Cubah}(h]h ](jjeh"]h$]h&]jjuh1jhjChhhj%ChK`ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjChhhj%ChK`ubah}(h]j Cah ](j#j$eh"]h$]h&]j(j))j*huh1jhj%ChK`hj Chhubj,)}(hhh]h)}(hGeometry data arguments used for :c:type:`struct drm_pvr_ioctl_create_hwrt_dataset_args `.geom_data_args.h](h!Geometry data arguments used for }(hjZChhhNhNubh)}(h`:c:type:`struct drm_pvr_ioctl_create_hwrt_dataset_args `h]h)}(hjdCh]h-struct drm_pvr_ioctl_create_hwrt_dataset_args}(hjfChhhNhNubah}(h]h ](j,jHc-typeeh"]h$]h&]uh1hhjbCubah}(h]h ]h"]h$]h&]refdocj8 refdomainjHreftypetype refexplicitrefwarnj>jA)}jD]jF)}jIjCsb$c.drm_pvr_create_hwrt_geom_data_argsasbjF&drm_pvr_ioctl_create_hwrt_dataset_argsuh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:128: ./include/uapi/drm/pvr_drm.hhK^hjZCubh.geom_data_args.}(hjZChhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:128: ./include/uapi/drm/pvr_drm.hhMhjWChhubah}(h]h ]h"]h$]h&]uh1j+hj Chhhj%ChK`ubeh}(h]h ](jHstructeh"]h$]h&]jMjHjNjCjOjCjPjQjRuh1jhhhjf>hNhNubjT)}(hX**Definition**:: struct drm_pvr_create_hwrt_geom_data_args { __u64 tpc_dev_addr; __u32 tpc_size; __u32 tpc_stride; __u64 vheap_table_dev_addr; __u64 rtc_dev_addr; }; **Members** ``tpc_dev_addr`` [IN] Tail pointer cache GPU virtual address. ``tpc_size`` [IN] Size of TPC, in bytes. ``tpc_stride`` [IN] Stride between layers in TPC, in pages ``vheap_table_dev_addr`` [IN] VHEAP table GPU virtual address. ``rtc_dev_addr`` [IN] Render Target Cache virtual address.h](h)}(h**Definition**::h](j^)}(h**Definition**h]h Definition}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjCubh:}(hjChhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:128: ./include/uapi/drm/pvr_drm.hhMhjCubjy)}(hstruct drm_pvr_create_hwrt_geom_data_args { __u64 tpc_dev_addr; __u32 tpc_size; __u32 tpc_stride; __u64 vheap_table_dev_addr; __u64 rtc_dev_addr; };h]hstruct drm_pvr_create_hwrt_geom_data_args { __u64 tpc_dev_addr; __u32 tpc_size; __u32 tpc_stride; __u64 vheap_table_dev_addr; __u64 rtc_dev_addr; };}hjCsbah}(h]h ]h"]h$]h&]jjuh1jxh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:128: ./include/uapi/drm/pvr_drm.hhMhjCubh)}(h **Members**h]j^)}(hjCh]hMembers}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjCubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:128: ./include/uapi/drm/pvr_drm.hhMhjCubj)}(hhh](j)}(h>``tpc_dev_addr`` [IN] Tail pointer cache GPU virtual address. h](j)}(h``tpc_dev_addr``h]h)}(hjCh]h tpc_dev_addr}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhjCubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:128: ./include/uapi/drm/pvr_drm.h1hMhjCubj)}(hhh]h)}(h,[IN] Tail pointer cache GPU virtual address.h]h,[IN] Tail pointer cache GPU virtual address.}(hj DhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjDhMhjDubah}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]uh1jhjDhMhjCubj)}(h)``tpc_size`` [IN] Size of TPC, in bytes. h](j)}(h ``tpc_size``h]h)}(hj+Dh]htpc_size}(hj-DhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj)Dubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:128: ./include/uapi/drm/pvr_drm.hhKhj%Dubj)}(hhh]h)}(hN] Size of TPC, in bytes.h]hN] Size of TPC, in bytes.}(hjDDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj@DhKhjADubah}(h]h ]h"]h$]h&]uh1jhj%Dubeh}(h]h ]h"]h$]h&]uh1jhj@DhKhjCubj)}(h;``tpc_stride`` [IN] Stride between layers in TPC, in pages h](j)}(h``tpc_stride``h]h)}(hjdDh]h tpc_stride}(hjfDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjbDubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:128: ./include/uapi/drm/pvr_drm.hhKhj^Dubj)}(hhh]h)}(h+[IN] Stride between layers in TPC, in pagesh]h+[IN] Stride between layers in TPC, in pages}(hj}DhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjyDhKhjzDubah}(h]h ]h"]h$]h&]uh1jhj^Dubeh}(h]h ]h"]h$]h&]uh1jhjyDhKhjCubj)}(h?``vheap_table_dev_addr`` [IN] VHEAP table GPU virtual address. h](j)}(h``vheap_table_dev_addr``h]h)}(hjDh]hvheap_table_dev_addr}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjDubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:128: ./include/uapi/drm/pvr_drm.hhKhjDubj)}(hhh]h)}(h%[IN] VHEAP table GPU virtual address.h]h%[IN] VHEAP table GPU virtual address.}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjDhKhjDubah}(h]h ]h"]h$]h&]uh1jhjDubeh}(h]h ]h"]h$]h&]uh1jhjDhKhjCubj)}(h:``rtc_dev_addr`` [IN] Render Target Cache virtual address.h](j)}(h``rtc_dev_addr``h]h)}(hjDh]h rtc_dev_addr}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjDubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:128: ./include/uapi/drm/pvr_drm.hhKhjDubj)}(hhh]h)}(h)[IN] Render Target Cache virtual address.h]h)[IN] Render Target Cache virtual address.}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:128: ./include/uapi/drm/pvr_drm.hhKhjDubah}(h]h ]h"]h$]h&]uh1jhjDubeh}(h]h ]h"]h$]h&]uh1jhjDhKhjCubeh}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ] kernelindentah"]h$]h&]uh1jShjf>hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j+drm_pvr_create_hwrt_rt_data_args (C struct)"c.drm_pvr_create_hwrt_rt_data_argshNtauh1jhjf>hhhNhNubj)}(hhh](j)}(h drm_pvr_create_hwrt_rt_data_argsh]j)}(h'struct drm_pvr_create_hwrt_rt_data_argsh](j)}(hjh]hstruct}(hj0EhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,Ehhh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:128: ./include/uapi/drm/pvr_drm.hhKubj)}(h h]h }(hj>EhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,Ehhhj=EhKubj)}(h drm_pvr_create_hwrt_rt_data_argsh]j)}(hj*Eh]h drm_pvr_create_hwrt_rt_data_args}(hjPEhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjLEubah}(h]h ](jjeh"]h$]h&]jjuh1jhj,Ehhhj=EhKubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj(Ehhhj=EhKubah}(h]j#Eah ](j#j$eh"]h$]h&]j(j))j*huh1jhj=EhKhj%Ehhubj,)}(hhh]h)}(hRender target arguments used for :c:type:`struct drm_pvr_ioctl_create_hwrt_dataset_args `.rt_data_args.h](h!Render target arguments used for }(hjrEhhhNhNubh)}(h`:c:type:`struct drm_pvr_ioctl_create_hwrt_dataset_args `h]h)}(hj|Eh]h-struct drm_pvr_ioctl_create_hwrt_dataset_args}(hj~EhhhNhNubah}(h]h ](j,jHc-typeeh"]h$]h&]uh1hhjzEubah}(h]h ]h"]h$]h&]refdocj8 refdomainjHreftypetype refexplicitrefwarnj>jA)}jD]jF)}jIj*Esb"c.drm_pvr_create_hwrt_rt_data_argsasbjF&drm_pvr_ioctl_create_hwrt_dataset_argsuh1hhjChK^hjrEubh.rt_data_args.}(hjrEhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:128: ./include/uapi/drm/pvr_drm.hhMhjoEhhubah}(h]h ]h"]h$]h&]uh1j+hj%Ehhhj=EhKubeh}(h]h ](jHstructeh"]h$]h&]jMjHjNjEjOjEjPjQjRuh1jhhhjf>hNhNubjT)}(hX**Definition**:: struct drm_pvr_create_hwrt_rt_data_args { __u64 pm_mlist_dev_addr; __u64 macrotile_array_dev_addr; __u64 region_header_dev_addr; }; **Members** ``pm_mlist_dev_addr`` [IN] PM MLIST GPU virtual address. ``macrotile_array_dev_addr`` [IN] Macrotile array GPU virtual address. ``region_header_dev_addr`` [IN] Region header array GPU virtual address.h](h)}(h**Definition**::h](j^)}(h**Definition**h]h Definition}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjEubh:}(hjEhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:128: ./include/uapi/drm/pvr_drm.hhMhjEubjy)}(hstruct drm_pvr_create_hwrt_rt_data_args { __u64 pm_mlist_dev_addr; __u64 macrotile_array_dev_addr; __u64 region_header_dev_addr; };h]hstruct drm_pvr_create_hwrt_rt_data_args { __u64 pm_mlist_dev_addr; __u64 macrotile_array_dev_addr; __u64 region_header_dev_addr; };}hjEsbah}(h]h ]h"]h$]h&]jjuh1jxh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:128: ./include/uapi/drm/pvr_drm.hhMhjEubh)}(h **Members**h]j^)}(hjEh]hMembers}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjEubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:128: ./include/uapi/drm/pvr_drm.hhMhjEubj)}(hhh](j)}(h9``pm_mlist_dev_addr`` [IN] PM MLIST GPU virtual address. h](j)}(h``pm_mlist_dev_addr``h]h)}(hj Fh]hpm_mlist_dev_addr}(hj FhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjFubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:128: ./include/uapi/drm/pvr_drm.hhMhjFubj)}(hhh]h)}(h"[IN] PM MLIST GPU virtual address.h]h"[IN] PM MLIST GPU virtual address.}(hj"FhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjFhMhjFubah}(h]h ]h"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]uh1jhjFhMhjFubj)}(hG``macrotile_array_dev_addr`` [IN] Macrotile array GPU virtual address. h](j)}(h``macrotile_array_dev_addr``h]h)}(hjBFh]hmacrotile_array_dev_addr}(hjDFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj@Fubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:128: ./include/uapi/drm/pvr_drm.hhKhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j2drm_pvr_ioctl_destroy_hwrt_dataset_args (C struct))c.drm_pvr_ioctl_destroy_hwrt_dataset_argshNtauh1jhjf>hhhNhNubj)}(hhh](j)}(h'drm_pvr_ioctl_destroy_hwrt_dataset_argsh]j)}(h.struct drm_pvr_ioctl_destroy_hwrt_dataset_argsh](j)}(hjh]hstruct}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFhhh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:132: ./include/uapi/drm/pvr_drm.hhK`ubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFhhhjFhK`ubj)}(h'drm_pvr_ioctl_destroy_hwrt_dataset_argsh]j)}(hjFh]h'drm_pvr_ioctl_destroy_hwrt_dataset_args}(hjFhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjFubah}(h]h ](jjeh"]h$]h&]jjuh1jhjFhhhjFhK`ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjFhhhjFhK`ubah}(h]jFah ](j#j$eh"]h$]h&]j(j))j*huh1jhjFhK`hjFhhubj,)}(hhh]h)}(h4Arguments for ``DRM_IOCTL_PVR_DESTROY_HWRT_DATASET``h](hArguments for }(hjGhhhNhNubh)}(h&``DRM_IOCTL_PVR_DESTROY_HWRT_DATASET``h]h"DRM_IOCTL_PVR_DESTROY_HWRT_DATASET}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjGubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:132: ./include/uapi/drm/pvr_drm.hhMhjGhhubah}(h]h ]h"]h$]h&]uh1j+hjFhhhjFhK`ubeh}(h]h ](jHstructeh"]h$]h&]jMjHjNj=GjOj=GjPjQjRuh1jhhhjf>hNhNubjT)}(h**Definition**:: struct drm_pvr_ioctl_destroy_hwrt_dataset_args { __u32 handle; __u32 _padding_4; }; **Members** ``handle`` [IN] Handle for HWRT dataset to be destroyed. ``_padding_4`` Reserved. This field must be zeroed.h](h)}(h**Definition**::h](j^)}(h**Definition**h]h Definition}(hjIGhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjEGubh:}(hjEGhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:132: ./include/uapi/drm/pvr_drm.hhMhjAGubjy)}(h[struct drm_pvr_ioctl_destroy_hwrt_dataset_args { __u32 handle; __u32 _padding_4; };h]h[struct drm_pvr_ioctl_destroy_hwrt_dataset_args { __u32 handle; __u32 _padding_4; };}hjbGsbah}(h]h ]h"]h$]h&]jjuh1jxh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:132: ./include/uapi/drm/pvr_drm.hhMhjAGubh)}(h **Members**h]j^)}(hjsGh]hMembers}(hjuGhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjqGubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:132: ./include/uapi/drm/pvr_drm.hhMhjAGubj)}(hhh](j)}(h9``handle`` [IN] Handle for HWRT dataset to be destroyed. h](j)}(h ``handle``h]h)}(hjGh]hhandle}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjGubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:132: ./include/uapi/drm/pvr_drm.hhMhjGubj)}(hhh]h)}(h-[IN] Handle for HWRT dataset to be destroyed.h]h-[IN] Handle for HWRT dataset to be destroyed.}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjGhMhjGubah}(h]h ]h"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]uh1jhjGhMhjGubj)}(h3``_padding_4`` Reserved. This field must be zeroed.h](j)}(h``_padding_4``h]h)}(hjGh]h _padding_4}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjGubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:132: ./include/uapi/drm/pvr_drm.hhKhjGubj)}(hhh]h)}(h$Reserved. This field must be zeroed.h]h$Reserved. This field must be zeroed.}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:132: ./include/uapi/drm/pvr_drm.hhKhjGubah}(h]h ]h"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]uh1jhjGhKhjGubeh}(h]h ]h"]h$]h&]uh1jhjAGubeh}(h]h ] kernelindentah"]h$]h&]uh1jShjf>hhhNhNubeh}(h],create-hwrt-dataset-and-destroy-hwrt-datasetah ]h"],create_hwrt_dataset and destroy_hwrt_datasetah$]h&]uh1hhj[hhhhhKyubh)}(hhh](h)}(h SUBMIT_JOBSh]h SUBMIT_JOBS}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHhhhhhKubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j*DRM_PVR_SYNC_OP_HANDLE_TYPE_MASK (C macro)"c.DRM_PVR_SYNC_OP_HANDLE_TYPE_MASKhNtauh1jhjHhhhNhNubj)}(hhh](j)}(h DRM_PVR_SYNC_OP_HANDLE_TYPE_MASKh]j)}(h DRM_PVR_SYNC_OP_HANDLE_TYPE_MASKh]j)}(h DRM_PVR_SYNC_OP_HANDLE_TYPE_MASKh]j)}(hj8Hh]h DRM_PVR_SYNC_OP_HANDLE_TYPE_MASK}(hjBHhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj>Hubah}(h]h ](jjeh"]h$]h&]jjuh1jhj:Hhhh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:140: ./include/uapi/drm/pvr_drm.hhMubah}(h]h ]h"]h$]h&]jjjuh1jjjhj6HhhhjUHhMubah}(h]j1Hah ](j#j$eh"]h$]h&]j(j))j*huh1jhjUHhMhj3Hhhubj,)}(hhh]h)}(h6Handle type mask for the drm_pvr_sync_op::flags field.h]h6Handle type mask for the drm_pvr_sync_op::flags field.}(hjeHhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:140: ./include/uapi/drm/pvr_drm.hhMhjbHhhubah}(h]h ]h"]h$]h&]uh1j+hj3HhhhjUHhMubeh}(h]h ](jHmacroeh"]h$]h&]jMjHjNj}HjOj}HjPjQjRuh1jhhhjHhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j2DRM_PVR_SYNC_OP_FLAG_HANDLE_TYPE_SYNCOBJ (C macro)*c.DRM_PVR_SYNC_OP_FLAG_HANDLE_TYPE_SYNCOBJhNtauh1jhjHhhhNhNubj)}(hhh](j)}(h(DRM_PVR_SYNC_OP_FLAG_HANDLE_TYPE_SYNCOBJh]j)}(h(DRM_PVR_SYNC_OP_FLAG_HANDLE_TYPE_SYNCOBJh]j)}(h(DRM_PVR_SYNC_OP_FLAG_HANDLE_TYPE_SYNCOBJh]j)}(hjHh]h(DRM_PVR_SYNC_OP_FLAG_HANDLE_TYPE_SYNCOBJ}(hjHhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjHubah}(h]h ](jjeh"]h$]h&]jjuh1jhjHhhh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:140: ./include/uapi/drm/pvr_drm.hhM ubah}(h]h ]h"]h$]h&]jjjuh1jjjhjHhhhjHhM ubah}(h]jHah ](j#j$eh"]h$]h&]j(j))j*huh1jhjHhM hjHhhubj,)}(hhh]h)}(heIndicates the handle passed in drm_pvr_sync_op::handle is a syncobj handle. This is the default type.h]heIndicates the handle passed in drm_pvr_sync_op::handle is a syncobj handle. This is the default type.}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:140: ./include/uapi/drm/pvr_drm.hhM hjHhhubah}(h]h ]h"]h$]h&]uh1j+hjHhhhjHhM ubeh}(h]h ](jHmacroeh"]h$]h&]jMjHjNjHjOjHjPjQjRuh1jhhhjHhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j;DRM_PVR_SYNC_OP_FLAG_HANDLE_TYPE_TIMELINE_SYNCOBJ (C macro)3c.DRM_PVR_SYNC_OP_FLAG_HANDLE_TYPE_TIMELINE_SYNCOBJhNtauh1jhjHhhhNhNubj)}(hhh](j)}(h1DRM_PVR_SYNC_OP_FLAG_HANDLE_TYPE_TIMELINE_SYNCOBJh]j)}(h1DRM_PVR_SYNC_OP_FLAG_HANDLE_TYPE_TIMELINE_SYNCOBJh]j)}(h1DRM_PVR_SYNC_OP_FLAG_HANDLE_TYPE_TIMELINE_SYNCOBJh]j)}(hjHh]h1DRM_PVR_SYNC_OP_FLAG_HANDLE_TYPE_TIMELINE_SYNCOBJ}(hjHhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjHubah}(h]h ](jjeh"]h$]h&]jjuh1jhjHhhh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:140: ./include/uapi/drm/pvr_drm.hhMubah}(h]h ]h"]h$]h&]jjjuh1jjjhjHhhhj IhMubah}(h]jHah ](j#j$eh"]h$]h&]j(j))j*huh1jhj IhMhjHhhubj,)}(hhh]h)}(hTIndicates the handle passed in drm_pvr_sync_op::handle is a timeline syncobj handle.h]hTIndicates the handle passed in drm_pvr_sync_op::handle is a timeline syncobj handle.}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:140: ./include/uapi/drm/pvr_drm.hhMhjIhhubah}(h]h ]h"]h$]h&]uh1j+hjHhhhj IhMubeh}(h]h ](jHmacroeh"]h$]h&]jMjHjNj5IjOj5IjPjQjRuh1jhhhjHhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j%DRM_PVR_SYNC_OP_FLAG_SIGNAL (C macro)c.DRM_PVR_SYNC_OP_FLAG_SIGNALhNtauh1jhjHhhhNhNubj)}(hhh](j)}(hDRM_PVR_SYNC_OP_FLAG_SIGNALh]j)}(hDRM_PVR_SYNC_OP_FLAG_SIGNALh]j)}(hDRM_PVR_SYNC_OP_FLAG_SIGNALh]j)}(hjLIh]hDRM_PVR_SYNC_OP_FLAG_SIGNAL}(hjVIhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjRIubah}(h]h ](jjeh"]h$]h&]jjuh1jhjNIhhh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:140: ./include/uapi/drm/pvr_drm.hhMubah}(h]h ]h"]h$]h&]jjjuh1jjjhjJIhhhjiIhMubah}(h]jEIah ](j#j$eh"]h$]h&]j(j))j*huh1jhjiIhMhjGIhhubj,)}(hhh]h)}(hSignal operation requested. The out-fence bound to the job will be attached to the syncobj whose handle is passed in drm_pvr_sync_op::handle.h]hSignal operation requested. The out-fence bound to the job will be attached to the syncobj whose handle is passed in drm_pvr_sync_op::handle.}(hjyIhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:140: ./include/uapi/drm/pvr_drm.hhMhjvIhhubah}(h]h ]h"]h$]h&]uh1j+hjGIhhhjiIhMubeh}(h]h ](jHmacroeh"]h$]h&]jMjHjNjIjOjIjPjQjRuh1jhhhjHhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j#DRM_PVR_SYNC_OP_FLAG_WAIT (C macro)c.DRM_PVR_SYNC_OP_FLAG_WAIThNtauh1jhjHhhhNhNubj)}(hhh](j)}(hDRM_PVR_SYNC_OP_FLAG_WAITh]j)}(hDRM_PVR_SYNC_OP_FLAG_WAITh]j)}(hDRM_PVR_SYNC_OP_FLAG_WAITh]j)}(hjIh]hDRM_PVR_SYNC_OP_FLAG_WAIT}(hjIhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjIubah}(h]h ](jjeh"]h$]h&]jjuh1jhjIhhh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:140: ./include/uapi/drm/pvr_drm.hhMubah}(h]h ]h"]h$]h&]jjjuh1jjjhjIhhhjIhMubah}(h]jIah ](j#j$eh"]h$]h&]j(j))j*huh1jhjIhMhjIhhubj,)}(hhh]h)}(hWait operation requested. The job will wait for this particular syncobj or syncobj point to be signaled before being started. This is the default operation.h]hWait operation requested. The job will wait for this particular syncobj or syncobj point to be signaled before being started. This is the default operation.}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:140: ./include/uapi/drm/pvr_drm.hhMhjIhhubah}(h]h ]h"]h$]h&]uh1j+hjIhhhjIhMubeh}(h]h ](jHmacroeh"]h$]h&]jMjHjNjIjOjIjPjQjRuh1jhhhjHhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j)drm_pvr_ioctl_submit_jobs_args (C struct) c.drm_pvr_ioctl_submit_jobs_argshNtauh1jhjHhhh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:143: ./include/uapi/drm/pvr_drm.hhNubj)}(hhh](j)}(hdrm_pvr_ioctl_submit_jobs_argsh]j)}(h%struct drm_pvr_ioctl_submit_jobs_argsh](j)}(hjh]hstruct}(hj JhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJhhh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:143: ./include/uapi/drm/pvr_drm.hhK`ubj)}(h h]h }(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJhhhjJhK`ubj)}(hdrm_pvr_ioctl_submit_jobs_argsh]j)}(hjJh]hdrm_pvr_ioctl_submit_jobs_args}(hj+JhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj'Jubah}(h]h ](jjeh"]h$]h&]jjuh1jhjJhhhjJhK`ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjJhhhjJhK`ubah}(h]jIah ](j#j$eh"]h$]h&]j(j))j*huh1jhjJhK`hjJhhubj,)}(hhh]h)}(h*Arguments for ``DRM_IOCTL_PVR_SUBMIT_JOB``h](hArguments for }(hjMJhhhNhNubh)}(h``DRM_IOCTL_PVR_SUBMIT_JOB``h]hDRM_IOCTL_PVR_SUBMIT_JOB}(hjUJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMJubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:143: ./include/uapi/drm/pvr_drm.hhMhjJJhhubah}(h]h ]h"]h$]h&]uh1j+hjJhhhjJhK`ubeh}(h]h ](jHstructeh"]h$]h&]jMjHjNjsJjOjsJjPjQjRuh1jhhhjHhjIhNubjT)}(h**Definition**:: struct drm_pvr_ioctl_submit_jobs_args { struct drm_pvr_obj_array jobs; }; **Members** ``jobs`` [IN] Array of jobs to submit.h](h)}(h**Definition**::h](j^)}(h**Definition**h]h Definition}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj{Jubh:}(hj{JhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:143: ./include/uapi/drm/pvr_drm.hhMhjwJubjy)}(hMstruct drm_pvr_ioctl_submit_jobs_args { struct drm_pvr_obj_array jobs; };h]hMstruct drm_pvr_ioctl_submit_jobs_args { struct drm_pvr_obj_array jobs; };}hjJsbah}(h]h ]h"]h$]h&]jjuh1jxh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:143: ./include/uapi/drm/pvr_drm.hhMhjwJubh)}(h **Members**h]j^)}(hjJh]hMembers}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjJubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:143: ./include/uapi/drm/pvr_drm.hhM hjwJubj)}(hhh]j)}(h&``jobs`` [IN] Array of jobs to submit.h](j)}(h``jobs``h]h)}(hjJh]hjobs}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjJubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:143: ./include/uapi/drm/pvr_drm.hhMhjJubj)}(hhh]h)}(h[IN] Array of jobs to submit.h]h[IN] Array of jobs to submit.}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:143: ./include/uapi/drm/pvr_drm.hhMhjJubah}(h]h ]h"]h$]h&]uh1jhjJubeh}(h]h ]h"]h$]h&]uh1jhjJhMhjJubah}(h]h ]h"]h$]h&]uh1jhjwJubeh}(h]h ] kernelindentah"]h$]h&]uh1jShjHhhhjIhNubh)}(h**Description**h]j^)}(hj Kh]h Description}(hj KhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj Kubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:143: ./include/uapi/drm/pvr_drm.hhM hjHhhubh)}(hIf the syscall returns an error it is important to check the value of **jobs.count**. This indicates the index into **jobs.array** where the error occurred.h](hFIf the syscall returns an error it is important to check the value of }(hj!KhhhNhNubj^)}(h**jobs.count**h]h jobs.count}(hj)KhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj!Kubh . This indicates the index into }(hj!KhhhNhNubj^)}(h**jobs.array**h]h jobs.array}(hj;KhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj!Kubh where the error occurred.}(hj!KhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:143: ./include/uapi/drm/pvr_drm.hhMhjHhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j+DRM_PVR_SUBMIT_JOB_GEOM_CMD_FIRST (C macro)#c.DRM_PVR_SUBMIT_JOB_GEOM_CMD_FIRSThNtauh1jhjHhhhNhNubj)}(hhh](j)}(h!DRM_PVR_SUBMIT_JOB_GEOM_CMD_FIRSTh]j)}(h!DRM_PVR_SUBMIT_JOB_GEOM_CMD_FIRSTh]j)}(h!DRM_PVR_SUBMIT_JOB_GEOM_CMD_FIRSTh]j)}(hjgKh]h!DRM_PVR_SUBMIT_JOB_GEOM_CMD_FIRST}(hjqKhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjmKubah}(h]h ](jjeh"]h$]h&]jjuh1jhjiKhhh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:146: ./include/uapi/drm/pvr_drm.hhM8ubah}(h]h ]h"]h$]h&]jjjuh1jjjhjeKhhhjKhM8ubah}(h]j`Kah ](j#j$eh"]h$]h&]j(j))j*huh1jhjKhM8hjbKhhubj,)}(hhh]h)}(h>Indicates if this the first command to be issued for a render.h]h>Indicates if this the first command to be issued for a render.}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:146: ./include/uapi/drm/pvr_drm.hhM:hjKhhubah}(h]h ]h"]h$]h&]uh1j+hjbKhhhjKhM8ubeh}(h]h ](jHmacroeh"]h$]h&]jMjHjNjKjOjKjPjQjRuh1jhhhjHhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j*DRM_PVR_SUBMIT_JOB_GEOM_CMD_LAST (C macro)"c.DRM_PVR_SUBMIT_JOB_GEOM_CMD_LASThNtauh1jhjHhhhNhNubj)}(hhh](j)}(h DRM_PVR_SUBMIT_JOB_GEOM_CMD_LASTh]j)}(h DRM_PVR_SUBMIT_JOB_GEOM_CMD_LASTh]j)}(h DRM_PVR_SUBMIT_JOB_GEOM_CMD_LASTh]j)}(hjKh]h DRM_PVR_SUBMIT_JOB_GEOM_CMD_LAST}(hjKhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjKubah}(h]h ](jjeh"]h$]h&]jjuh1jhjKhhh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:146: ./include/uapi/drm/pvr_drm.hhM<ubah}(h]h ]h"]h$]h&]jjjuh1jjjhjKhhhjKhM<ubah}(h]jKah ](j#j$eh"]h$]h&]j(j))j*huh1jhjKhM<hjKhhubj,)}(hhh]h)}(h=Indicates if this the last command to be issued for a render.h]h=Indicates if this the last command to be issued for a render.}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:146: ./include/uapi/drm/pvr_drm.hhM>hjKhhubah}(h]h ]h"]h$]h&]uh1j+hjKhhhjKhM<ubeh}(h]h ](jHmacroeh"]h$]h&]jMjHjNjLjOjLjPjQjRuh1jhhhjHhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j1DRM_PVR_SUBMIT_JOB_GEOM_CMD_SINGLE_CORE (C macro))c.DRM_PVR_SUBMIT_JOB_GEOM_CMD_SINGLE_COREhNtauh1jhjHhhhNhNubj)}(hhh](j)}(h'DRM_PVR_SUBMIT_JOB_GEOM_CMD_SINGLE_COREh]j)}(h'DRM_PVR_SUBMIT_JOB_GEOM_CMD_SINGLE_COREh]j)}(h'DRM_PVR_SUBMIT_JOB_GEOM_CMD_SINGLE_COREh]j)}(hjLh]h'DRM_PVR_SUBMIT_JOB_GEOM_CMD_SINGLE_CORE}(hj)LhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj%Lubah}(h]h ](jjeh"]h$]h&]jjuh1jhj!Lhhh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:146: ./include/uapi/drm/pvr_drm.hhM@ubah}(h]h ]h"]h$]h&]jjjuh1jjjhjLhhhjTimeline value for this drm_syncobj. MBZ for a binary syncobj.h]h>Timeline value for this drm_syncobj. MBZ for a binary syncobj.}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:158: ./include/uapi/drm/pvr_drm.hhKhjRubah}(h]h ]h"]h$]h&]uh1jhjRubeh}(h]h ]h"]h$]h&]uh1jhjRhKhj/Rubeh}(h]h ]h"]h$]h&]uh1jhjQubeh}(h]h ] kernelindentah"]h$]h&]uh1jShjHhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jdrm_pvr_job_type (C enum)c.drm_pvr_job_typehNtauh1jhjHhhhNhNubj)}(hhh](j)}(hdrm_pvr_job_typeh]j)}(henum drm_pvr_job_typeh](j)}(hjh]henum}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjShhh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:158: ./include/uapi/drm/pvr_drm.hhKubj)}(h h]h }(hj$ShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjShhhj#ShKubj)}(hdrm_pvr_job_typeh]j)}(hjSh]hdrm_pvr_job_type}(hj6ShhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj2Subah}(h]h ](jjeh"]h$]h&]jjuh1jhjShhhj#ShKubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjShhhj#ShKubah}(h]j Sah ](j#j$eh"]h$]h&]j(j))j*huh1jhj#ShKhj Shhubj,)}(hhh]h)}(hAArguments for :c:type:`struct drm_pvr_job `.job_typeh](hArguments for }(hjXShhhNhNubh)}(h*:c:type:`struct drm_pvr_job `h]h)}(hjbSh]hstruct drm_pvr_job}(hjdShhhNhNubah}(h]h ](j,jHc-typeeh"]h$]h&]uh1hhj`Subah}(h]h ]h"]h$]h&]refdocj8 refdomainjHreftypetype refexplicitrefwarnj>jA)}jD]jF)}jIjSsbc.drm_pvr_job_typeasbjF drm_pvr_jobuh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:158: ./include/uapi/drm/pvr_drm.hhK^hjXSubh .job_type}(hjXShhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:158: ./include/uapi/drm/pvr_drm.hhMhjUShhubah}(h]h ]h"]h$]h&]uh1j+hj Shhhj#ShKubeh}(h]h ](jHenumeh"]h$]h&]jMjHjNjSjOjSjPjQjRuh1jhhhjHhNhNubjT)}(h**Constants** ``DRM_PVR_JOB_TYPE_GEOMETRY`` Job type is geometry. ``DRM_PVR_JOB_TYPE_FRAGMENT`` Job type is fragment. ``DRM_PVR_JOB_TYPE_COMPUTE`` Job type is compute. ``DRM_PVR_JOB_TYPE_TRANSFER_FRAG`` Job type is a fragment transfer.h](h)}(h **Constants**h]j^)}(hjSh]h Constants}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjSubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:158: ./include/uapi/drm/pvr_drm.hhMhjSubj)}(hhh](j)}(h4``DRM_PVR_JOB_TYPE_GEOMETRY`` Job type is geometry. h](j)}(h``DRM_PVR_JOB_TYPE_GEOMETRY``h]h)}(hjSh]hDRM_PVR_JOB_TYPE_GEOMETRY}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhjSubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:158: ./include/uapi/drm/pvr_drm.hhMhjSubj)}(hhh]h)}(hJob type is geometry.h]hJob type is geometry.}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhjShMhjSubah}(h]h ]h"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]uh1jhjShMhjSubj)}(h4``DRM_PVR_JOB_TYPE_FRAGMENT`` Job type is fragment. h](j)}(h``DRM_PVR_JOB_TYPE_FRAGMENT``h]h)}(hjSh]hDRM_PVR_JOB_TYPE_FRAGMENT}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhjSubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:158: ./include/uapi/drm/pvr_drm.hhMhjSubj)}(hhh]h)}(hJob type is fragment.h]hJob type is fragment.}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhjThMhjTubah}(h]h ]h"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]uh1jhjThMhjSubj)}(h2``DRM_PVR_JOB_TYPE_COMPUTE`` Job type is compute. h](j)}(h``DRM_PVR_JOB_TYPE_COMPUTE``h]h)}(hj6Th]hDRM_PVR_JOB_TYPE_COMPUTE}(hj8ThhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4Tubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:158: ./include/uapi/drm/pvr_drm.hhMhj0Tubj)}(hhh]h)}(hJob type is compute.h]hJob type is compute.}(hjOThhhNhNubah}(h]h ]h"]h$]h&]uh1hhjKThMhjLTubah}(h]h ]h"]h$]h&]uh1jhj0Tubeh}(h]h ]h"]h$]h&]uh1jhjKThMhjSubj)}(hC``DRM_PVR_JOB_TYPE_TRANSFER_FRAG`` Job type is a fragment transfer.h](j)}(h"``DRM_PVR_JOB_TYPE_TRANSFER_FRAG``h]h)}(hjoTh]hDRM_PVR_JOB_TYPE_TRANSFER_FRAG}(hjqThhhNhNubah}(h]h ]h"]h$]h&]uh1hhjmTubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:158: ./include/uapi/drm/pvr_drm.hhMhjiTubj)}(hhh]h)}(h Job type is a fragment transfer.h]h Job type is a fragment transfer.}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:158: ./include/uapi/drm/pvr_drm.hhMhjTubah}(h]h ]h"]h$]h&]uh1jhjiTubeh}(h]h ]h"]h$]h&]uh1jhjThMhjSubeh}(h]h ]h"]h$]h&]uh1jhjSubeh}(h]h ] kernelindentah"]h$]h&]uh1jShjHhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j drm_pvr_hwrt_data_ref (C struct)c.drm_pvr_hwrt_data_refhNtauh1jhjHhhhNhNubj)}(hhh](j)}(hdrm_pvr_hwrt_data_refh]j)}(hstruct drm_pvr_hwrt_data_refh](j)}(hjh]hstruct}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjThhh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:158: ./include/uapi/drm/pvr_drm.hhMubj)}(h h]h }(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjThhhjThMubj)}(hdrm_pvr_hwrt_data_refh]j)}(hjTh]hdrm_pvr_hwrt_data_ref}(hjThhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjTubah}(h]h ](jjeh"]h$]h&]jjuh1jhjThhhjThMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjThhhjThMubah}(h]jTah ](j#j$eh"]h$]h&]j(j))j*huh1jhjThMhjThhubj,)}(hhh]h)}(hReference HWRT datah]hReference HWRT data}(hj UhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:158: ./include/uapi/drm/pvr_drm.hhMhjUhhubah}(h]h ]h"]h$]h&]uh1j+hjThhhjThMubeh}(h]h ](jHstructeh"]h$]h&]jMjHjNj#UjOj#UjPjQjRuh1jhhhjHhNhNubjT)}(h**Definition**:: struct drm_pvr_hwrt_data_ref { __u32 set_handle; __u32 data_index; }; **Members** ``set_handle`` HWRT data set handle. ``data_index`` Index of the HWRT data inside the data set.h](h)}(h**Definition**::h](j^)}(h**Definition**h]h Definition}(hj/UhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj+Uubh:}(hj+UhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:158: ./include/uapi/drm/pvr_drm.hhMhj'Uubjy)}(hMstruct drm_pvr_hwrt_data_ref { __u32 set_handle; __u32 data_index; };h]hMstruct drm_pvr_hwrt_data_ref { __u32 set_handle; __u32 data_index; };}hjHUsbah}(h]h ]h"]h$]h&]jjuh1jxh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:158: ./include/uapi/drm/pvr_drm.hhMhj'Uubh)}(h **Members**h]j^)}(hjYUh]hMembers}(hj[UhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjWUubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:158: ./include/uapi/drm/pvr_drm.hhMhj'Uubj)}(hhh](j)}(h%``set_handle`` HWRT data set handle. h](j)}(h``set_handle``h]h)}(hjxUh]h set_handle}(hjzUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjvUubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:158: ./include/uapi/drm/pvr_drm.hhMhjrUubj)}(hhh]h)}(hHWRT data set handle.h]hHWRT data set handle.}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjUhMhjUubah}(h]h ]h"]h$]h&]uh1jhjrUubeh}(h]h ]h"]h$]h&]uh1jhjUhMhjoUubj)}(h:``data_index`` Index of the HWRT data inside the data set.h](j)}(h``data_index``h]h)}(hjUh]h data_index}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjUubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:158: ./include/uapi/drm/pvr_drm.hhKhjUubj)}(hhh]h)}(h+Index of the HWRT data inside the data set.h]h+Index of the HWRT data inside the data set.}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:158: ./include/uapi/drm/pvr_drm.hhKhjUubah}(h]h ]h"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]uh1jhjUhKhjoUubeh}(h]h ]h"]h$]h&]uh1jhj'Uubeh}(h]h ] kernelindentah"]h$]h&]uh1jShjHhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jdrm_pvr_job (C struct) c.drm_pvr_jobhNtauh1jhjHhhhNhNubj)}(hhh](j)}(h drm_pvr_jobh]j)}(hstruct drm_pvr_jobh](j)}(hjh]hstruct}(hj VhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVhhh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:158: ./include/uapi/drm/pvr_drm.hhKubj)}(h h]h }(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVhhhjVhKubj)}(h drm_pvr_jobh]j)}(hjVh]h drm_pvr_job}(hj+VhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj'Vubah}(h]h ](jjeh"]h$]h&]jjuh1jhjVhhhjVhKubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjVhhhjVhKubah}(h]jUah ](j#j$eh"]h$]h&]j(j))j*huh1jhjVhKhjVhhubj,)}(hhh]h)}(h?Job arguments passed to the ``DRM_IOCTL_PVR_SUBMIT_JOBS`` ioctlh](hJob arguments passed to the }(hjMVhhhNhNubh)}(h``DRM_IOCTL_PVR_SUBMIT_JOBS``h]hDRM_IOCTL_PVR_SUBMIT_JOBS}(hjUVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMVubh ioctl}(hjMVhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:158: ./include/uapi/drm/pvr_drm.hhMhjJVhhubah}(h]h ]h"]h$]h&]uh1j+hjVhhhjVhKubeh}(h]h ](jHstructeh"]h$]h&]jMjHjNjwVjOjwVjPjQjRuh1jhhhjHhNhNubjT)}(hX**Definition**:: struct drm_pvr_job { __u32 type; __u32 context_handle; __u32 flags; __u32 cmd_stream_len; __u64 cmd_stream; struct drm_pvr_obj_array sync_ops; struct drm_pvr_hwrt_data_ref hwrt; }; **Members** ``type`` [IN] Type of job being submitted This must be one of the values defined by :c:type:`enum drm_pvr_job_type `. ``context_handle`` [IN] Context handle. When **job_type** is ``DRM_PVR_JOB_TYPE_RENDER``, ``DRM_PVR_JOB_TYPE_COMPUTE`` or ``DRM_PVR_JOB_TYPE_TRANSFER_FRAG``, this must be a valid handle returned by ``DRM_IOCTL_PVR_CREATE_CONTEXT``. The type of context must be compatible with the type of job being submitted. When **job_type** is ``DRM_PVR_JOB_TYPE_NULL``, this must be zero. ``flags`` [IN] Flags for command. Those are job-dependent. See all ``DRM_PVR_SUBMIT_JOB_*``. ``cmd_stream_len`` [IN] Length of command stream, in bytes. ``cmd_stream`` [IN] Pointer to command stream for command. The command stream must be u64-aligned. ``sync_ops`` [IN] Fragment sync operations. ``hwrt`` [IN] HWRT data used by render jobs (geometry or fragment). Must be zero for non-render jobs.h](h)}(h**Definition**::h](j^)}(h**Definition**h]h Definition}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjVubh:}(hjVhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:158: ./include/uapi/drm/pvr_drm.hhMhj{Vubjy)}(hstruct drm_pvr_job { __u32 type; __u32 context_handle; __u32 flags; __u32 cmd_stream_len; __u64 cmd_stream; struct drm_pvr_obj_array sync_ops; struct drm_pvr_hwrt_data_ref hwrt; };h]hstruct drm_pvr_job { __u32 type; __u32 context_handle; __u32 flags; __u32 cmd_stream_len; __u64 cmd_stream; struct drm_pvr_obj_array sync_ops; struct drm_pvr_hwrt_data_ref hwrt; };}hjVsbah}(h]h ]h"]h$]h&]jjuh1jxh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:158: ./include/uapi/drm/pvr_drm.hhMhj{Vubh)}(h **Members**h]j^)}(hjVh]hMembers}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjVubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:158: ./include/uapi/drm/pvr_drm.hhMhj{Vubj)}(hhh](j)}(h``type`` [IN] Type of job being submitted This must be one of the values defined by :c:type:`enum drm_pvr_job_type `. h](j)}(h``type``h]h)}(hjVh]htype}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjVubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:158: ./include/uapi/drm/pvr_drm.hhMhjVubj)}(hhh](h)}(h [IN] Type of job being submittedh]h [IN] Type of job being submitted}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:158: ./include/uapi/drm/pvr_drm.hhMhjVubh)}(h]This must be one of the values defined by :c:type:`enum drm_pvr_job_type `.h](h*This must be one of the values defined by }(hjVhhhNhNubh)}(h2:c:type:`enum drm_pvr_job_type `h]h)}(hjVh]henum drm_pvr_job_type}(hjWhhhNhNubah}(h]h ](j,jHc-typeeh"]h$]h&]uh1hhjVubah}(h]h ]h"]h$]h&]refdocj8 refdomainjHreftypetype refexplicitrefwarnj>jBjFdrm_pvr_job_typeuh1hhjVhMhjVubh.}(hjVhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjVhMhjVubeh}(h]h ]h"]h$]h&]uh1jhjVubeh}(h]h ]h"]h$]h&]uh1jhjVhMhjVubj)}(hXz``context_handle`` [IN] Context handle. When **job_type** is ``DRM_PVR_JOB_TYPE_RENDER``, ``DRM_PVR_JOB_TYPE_COMPUTE`` or ``DRM_PVR_JOB_TYPE_TRANSFER_FRAG``, this must be a valid handle returned by ``DRM_IOCTL_PVR_CREATE_CONTEXT``. The type of context must be compatible with the type of job being submitted. When **job_type** is ``DRM_PVR_JOB_TYPE_NULL``, this must be zero. h](j)}(h``context_handle``h]h)}(hj7Wh]hcontext_handle}(hj9WhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5Wubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:158: ./include/uapi/drm/pvr_drm.hhMhj1Wubj)}(hhh](h)}(h[IN] Context handle.h]h[IN] Context handle.}(hjPWhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:158: ./include/uapi/drm/pvr_drm.hhMhjMWubh)}(hX When **job_type** is ``DRM_PVR_JOB_TYPE_RENDER``, ``DRM_PVR_JOB_TYPE_COMPUTE`` or ``DRM_PVR_JOB_TYPE_TRANSFER_FRAG``, this must be a valid handle returned by ``DRM_IOCTL_PVR_CREATE_CONTEXT``. The type of context must be compatible with the type of job being submitted.h](hWhen }(hj_WhhhNhNubj^)}(h **job_type**h]hjob_type}(hjgWhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj_Wubh is }(hj_WhhhNhNubh)}(h``DRM_PVR_JOB_TYPE_RENDER``h]hDRM_PVR_JOB_TYPE_RENDER}(hjyWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_Wubh, }(hj_WhhhNhNubh)}(h``DRM_PVR_JOB_TYPE_COMPUTE``h]hDRM_PVR_JOB_TYPE_COMPUTE}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_Wubh or }(hj_WhhhNhNubh)}(h"``DRM_PVR_JOB_TYPE_TRANSFER_FRAG``h]hDRM_PVR_JOB_TYPE_TRANSFER_FRAG}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_Wubh*, this must be a valid handle returned by }(hj_WhhhNhNubh)}(h ``DRM_IOCTL_PVR_CREATE_CONTEXT``h]hDRM_IOCTL_PVR_CREATE_CONTEXT}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_WubhN. The type of context must be compatible with the type of job being submitted.}(hj_WhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:158: ./include/uapi/drm/pvr_drm.hhMhjMWubh)}(hBWhen **job_type** is ``DRM_PVR_JOB_TYPE_NULL``, this must be zero.h](hWhen }(hjWhhhNhNubj^)}(h **job_type**h]hjob_type}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjWubh is }(hjWhhhNhNubh)}(h``DRM_PVR_JOB_TYPE_NULL``h]hDRM_PVR_JOB_TYPE_NULL}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjWubh, this must be zero.}(hjWhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjLWhMhjMWubeh}(h]h ]h"]h$]h&]uh1jhj1Wubeh}(h]h ]h"]h$]h&]uh1jhjLWhMhjVubj)}(h^``flags`` [IN] Flags for command. Those are job-dependent. See all ``DRM_PVR_SUBMIT_JOB_*``. h](j)}(h ``flags``h]h)}(hj Xh]hflags}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj Xubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:158: ./include/uapi/drm/pvr_drm.hhMhjXubj)}(hhh](h)}(h[IN] Flags for command.h]h[IN] Flags for command.}(hj%XhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:158: ./include/uapi/drm/pvr_drm.hhMhj"Xubh)}(h:Those are job-dependent. See all ``DRM_PVR_SUBMIT_JOB_*``.h](h!Those are job-dependent. See all }(hj4XhhhNhNubh)}(h``DRM_PVR_SUBMIT_JOB_*``h]hDRM_PVR_SUBMIT_JOB_*}(hjjA)}jD]jF)}jIjZsbc.pvr_ioctl_union_padding_checkasbuh1hhj`Zubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`Zubj)}(h union_offseth]h union_offset}(hjZhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj`Zubeh}(h]h ]h"]h$]h&]noemphjjuh1jZhjZubjZ)}(hsize_t union_sizeh](h)}(hhh]j)}(hsize_th]hsize_t}(hjZhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&] refdomainjHreftypejI reftargetjZmodnameN classnameNj>jA)}jD]jZc.pvr_ioctl_union_padding_checkasbuh1hhjZubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubj)}(h union_sizeh]h union_size}(hjZhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]noemphjjuh1jZhjZubjZ)}(hsize_t member_sizeh](h)}(hhh]j)}(hsize_th]hsize_t}(hjZhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&] refdomainjHreftypejI reftargetjZmodnameN classnameNj>jA)}jD]jZc.pvr_ioctl_union_padding_checkasbuh1hhjZubj)}(h h]h }(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubj)}(h member_sizeh]h member_size}(hj%[hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]noemphjjuh1jZhjZubeh}(h]h ]h"]h$]h&]jjuh1jZhjYhhhjYhMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjYhhhjYhMubah}(h]jYah ](j#j$eh"]h$]h&]j(j))j*huh1jhjYhMhjYhhubj,)}(hhh]h)}(hoValidate that the implicit padding between the end of a union member and the end of the union itself is zeroed.h]hoValidate that the implicit padding between the end of a union member and the end of the union itself is zeroed.}(hjO[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:169: ./drivers/gpu/drm/imagination/pvr_device.hhMhjL[hhubah}(h]h ]h"]h$]h&]uh1j+hjYhhhjYhMubeh}(h]h ](jHfunctioneh"]h$]h&]jMjHjNjg[jOjg[jPjQjRuh1jhhhjYhNhNubjT)}(hX**Parameters** ``void *instance`` Pointer to the instance of the struct to validate. ``size_t union_offset`` Offset into the type of **instance** of the target union. Must be 64-bit aligned. ``size_t union_size`` Size of the target union in the type of **instance**. Must be 64-bit aligned. ``size_t member_size`` Size of the target member in the target union specified by **union_offset** and **union_size**. It is assumed that the offset of the target member is zero relative to **union_offset**. Must be 64-bit aligned. **Description** You probably want to use PVR_IOCTL_UNION_PADDING_CHECK() instead of calling this function directly, since that macro abstracts away much of the setup, and also provides some static validation. See its docs for details. **Return** * ``true`` if every byte between the end of the used member of the union and the end of that union is zeroed, or * ``false`` otherwise.h](h)}(h**Parameters**h]j^)}(hjq[h]h Parameters}(hjs[hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjo[ubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:169: ./drivers/gpu/drm/imagination/pvr_device.hhMhjk[ubj)}(hhh](j)}(hF``void *instance`` Pointer to the instance of the struct to validate. h](j)}(h``void *instance``h]h)}(hj[h]hvoid *instance}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj[ubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:169: ./drivers/gpu/drm/imagination/pvr_device.hhMhj[ubj)}(hhh]h)}(h2Pointer to the instance of the struct to validate.h]h2Pointer to the instance of the struct to validate.}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj[hMhj[ubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1jhj[hMhj[ubj)}(hj``size_t union_offset`` Offset into the type of **instance** of the target union. Must be 64-bit aligned. h](j)}(h``size_t union_offset``h]h)}(hj[h]hsize_t union_offset}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj[ubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:169: ./drivers/gpu/drm/imagination/pvr_device.hhMhj[ubj)}(hhh]h)}(hQOffset into the type of **instance** of the target union. Must be 64-bit aligned.h](hOffset into the type of }(hj[hhhNhNubj^)}(h **instance**h]hinstance}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj[ubh- of the target union. Must be 64-bit aligned.}(hj[hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:169: ./drivers/gpu/drm/imagination/pvr_device.hhMhj[ubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1jhj[hMhj[ubj)}(hd``size_t union_size`` Size of the target union in the type of **instance**. Must be 64-bit aligned. h](j)}(h``size_t union_size``h]h)}(hj\h]hsize_t union_size}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\ubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:169: ./drivers/gpu/drm/imagination/pvr_device.hhMhj\ubj)}(hhh]h)}(hMSize of the target union in the type of **instance**. Must be 64-bit aligned.h](h(Size of the target union in the type of }(hj.\hhhNhNubj^)}(h **instance**h]hinstance}(hj6\hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj.\ubh. Must be 64-bit aligned.}(hj.\hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:169: ./drivers/gpu/drm/imagination/pvr_device.hhMhj+\ubah}(h]h ]h"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]uh1jhj*\hMhj[ubj)}(h``size_t member_size`` Size of the target member in the target union specified by **union_offset** and **union_size**. It is assumed that the offset of the target member is zero relative to **union_offset**. Must be 64-bit aligned. h](j)}(h``size_t member_size``h]h)}(hja\h]hsize_t member_size}(hjc\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_\ubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:169: ./drivers/gpu/drm/imagination/pvr_device.hhMhj[\ubj)}(hhh]h)}(hSize of the target member in the target union specified by **union_offset** and **union_size**. It is assumed that the offset of the target member is zero relative to **union_offset**. Must be 64-bit aligned.h](h;Size of the target member in the target union specified by }(hjz\hhhNhNubj^)}(h**union_offset**h]h union_offset}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjz\ubh and }(hjz\hhhNhNubj^)}(h**union_size**h]h union_size}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjz\ubhI. It is assumed that the offset of the target member is zero relative to }(hjz\hhhNhNubj^)}(h**union_offset**h]h union_offset}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjz\ubh. Must be 64-bit aligned.}(hjz\hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:169: ./drivers/gpu/drm/imagination/pvr_device.hhMhjw\ubah}(h]h ]h"]h$]h&]uh1jhj[\ubeh}(h]h ]h"]h$]h&]uh1jhjv\hMhj[ubeh}(h]h ]h"]h$]h&]uh1jhjk[ubh)}(h**Description**h]j^)}(hj\h]h Description}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj\ubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:169: ./drivers/gpu/drm/imagination/pvr_device.hhMhjk[ubh)}(hYou probably want to use PVR_IOCTL_UNION_PADDING_CHECK() instead of calling this function directly, since that macro abstracts away much of the setup, and also provides some static validation. See its docs for details.h]hYou probably want to use PVR_IOCTL_UNION_PADDING_CHECK() instead of calling this function directly, since that macro abstracts away much of the setup, and also provides some static validation. See its docs for details.}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:169: ./drivers/gpu/drm/imagination/pvr_device.hhMhjk[ubh)}(h **Return**h]j^)}(hj\h]hReturn}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj\ubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:169: ./drivers/gpu/drm/imagination/pvr_device.hhMhjk[ubh)}(h* ``true`` if every byte between the end of the used member of the union and the end of that union is zeroed, or * ``false`` otherwise.h]h)}(hhh](h)}(hn``true`` if every byte between the end of the used member of the union and the end of that union is zeroed, orh]h)}(hn``true`` if every byte between the end of the used member of the union and the end of that union is zeroed, orh](h)}(h``true``h]htrue}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]ubhf if every byte between the end of the used member of the union and the end of that union is zeroed, or}(hj]hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:169: ./drivers/gpu/drm/imagination/pvr_device.hhMhj]ubah}(h]h ]h"]h$]h&]uh1hhj]ubh)}(h``false`` otherwise.h]h)}(hj@]h](h)}(h ``false``h]hfalse}(hjE]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjB]ubh otherwise.}(hjB]hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:169: ./drivers/gpu/drm/imagination/pvr_device.hhMhj>]ubah}(h]h ]h"]h$]h&]uh1hhj]ubeh}(h]h ]h"]h$]h&]jj>Zuh1hhj7]hMhj]ubah}(h]h ]h"]h$]h&]uh1hhj7]hMhjk[ubeh}(h]h ] kernelindentah"]h$]h&]uh1jShjYhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j)PVR_STATIC_ASSERT_64BIT_ALIGNED (C macro)!c.PVR_STATIC_ASSERT_64BIT_ALIGNEDhNtauh1jhjYhhhNhNubj)}(hhh](j)}(hPVR_STATIC_ASSERT_64BIT_ALIGNEDh]j)}(hPVR_STATIC_ASSERT_64BIT_ALIGNEDh]j)}(hPVR_STATIC_ASSERT_64BIT_ALIGNEDh]j)}(hj]h]hPVR_STATIC_ASSERT_64BIT_ALIGNED}(hj]hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj]ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj]hhhn/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:169: ./drivers/gpu/drm/imagination/pvr_device.hhMubah}(h]h ]h"]h$]h&]jjjuh1jjjhj]hhhj]hMubah}(h]j]ah ](j#j$eh"]h$]h&]j(j))j*huh1jhj]hMhj]hhubj,)}(hhh]h}(h]h ]h"]h$]h&]uh1j+hj]hhhj]hMubeh}(h]h ](jHmacroeh"]h$]h&]jMjHjNj]jOj]jPjQjRuh1jhhhjYhNhNubh)}(h2``PVR_STATIC_ASSERT_64BIT_ALIGNED (static_expr_)``h]h)}(hj]h]h.PVR_STATIC_ASSERT_64BIT_ALIGNED (static_expr_)}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]ubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:169: ./drivers/gpu/drm/imagination/pvr_device.hhMhjYhhubh)}(h'Inline assertion for 64-bit alignment. h]h)}(h&Inline assertion for 64-bit alignment.h]h&Inline assertion for 64-bit alignment.}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:169: ./drivers/gpu/drm/imagination/pvr_device.hhMhj]ubah}(h]h ]h"]h$]h&]uh1hhj]hMhjYhhubjT)}(hX**Parameters** ``static_expr_`` Target expression to evaluate. **Description** If **static_expr_** does not evaluate to a constant integer which would be a 64-bit aligned address (i.e. a multiple of 8), compilation will fail. **Return** The value of **static_expr_**.h](h)}(h**Parameters**h]j^)}(hj]h]h Parameters}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj]ubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:169: ./drivers/gpu/drm/imagination/pvr_device.hhMhj]ubj)}(hhh]j)}(h0``static_expr_`` Target expression to evaluate. h](j)}(h``static_expr_``h]h)}(hj^h]h static_expr_}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj^ubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:169: ./drivers/gpu/drm/imagination/pvr_device.hhMhj^ubj)}(hhh]h)}(hTarget expression to evaluate.h]hTarget expression to evaluate.}(hj3^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/^hMhj0^ubah}(h]h ]h"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]uh1jhj/^hMhj^ubah}(h]h ]h"]h$]h&]uh1jhj]ubh)}(h**Description**h]j^)}(hjU^h]h Description}(hjW^hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjS^ubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:169: ./drivers/gpu/drm/imagination/pvr_device.hhMhj]ubh)}(hIf **static_expr_** does not evaluate to a constant integer which would be a 64-bit aligned address (i.e. a multiple of 8), compilation will fail.h](hIf }(hjk^hhhNhNubj^)}(h**static_expr_**h]h static_expr_}(hjs^hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjk^ubh does not evaluate to a constant integer which would be a 64-bit aligned address (i.e. a multiple of 8), compilation will fail.}(hjk^hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:169: ./drivers/gpu/drm/imagination/pvr_device.hhMhj]ubh)}(h **Return**h]j^)}(hj^h]hReturn}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj^ubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:169: ./drivers/gpu/drm/imagination/pvr_device.hhMhj]ubh)}(hThe value of **static_expr_**.h](h The value of }(hj^hhhNhNubj^)}(h**static_expr_**h]h static_expr_}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj^ubh.}(hj^hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:169: ./drivers/gpu/drm/imagination/pvr_device.hhMhj]ubeh}(h]h ] kernelindentah"]h$]h&]uh1jShjYhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j'PVR_IOCTL_UNION_PADDING_CHECK (C macro)c.PVR_IOCTL_UNION_PADDING_CHECKhNtauh1jhjYhhhNhNubj)}(hhh](j)}(hPVR_IOCTL_UNION_PADDING_CHECKh]j)}(hPVR_IOCTL_UNION_PADDING_CHECKh]j)}(hPVR_IOCTL_UNION_PADDING_CHECKh]j)}(hj^h]hPVR_IOCTL_UNION_PADDING_CHECK}(hj^hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj^ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj^hhhn/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:169: ./drivers/gpu/drm/imagination/pvr_device.hhMubah}(h]h ]h"]h$]h&]jjjuh1jjjhj^hhhj^hMubah}(h]j^ah ](j#j$eh"]h$]h&]j(j))j*huh1jhj^hMhj^hhubj,)}(hhh]h}(h]h ]h"]h$]h&]uh1j+hj^hhhj^hMubeh}(h]h ](jHmacroeh"]h$]h&]jMjHjNj_jOj_jPjQjRuh1jhhhjYhNhNubh)}(hE``PVR_IOCTL_UNION_PADDING_CHECK (struct_instance_, union_, member_)``h]h)}(hj_h]hAPVR_IOCTL_UNION_PADDING_CHECK (struct_instance_, union_, member_)}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_ubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:169: ./drivers/gpu/drm/imagination/pvr_device.hhMhjYhhubh)}(hpValidate that the implicit padding between the end of a union member and the end of the union itself is zeroed. h]h)}(hoValidate that the implicit padding between the end of a union member and the end of the union itself is zeroed.h]hoValidate that the implicit padding between the end of a union member and the end of the union itself is zeroed.}(hj5_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:169: ./drivers/gpu/drm/imagination/pvr_device.hhMhj1_ubah}(h]h ]h"]h$]h&]uh1hhjC_hMhjYhhubjT)}(hX**Parameters** ``struct_instance_`` An expression which evaluates to a pointer to a UAPI data struct. ``union_`` The name of the union member of **struct_instance_** to check. If the union member is nested within the type of **struct_instance_**, this may contain the member access operator ("."). ``member_`` The name of the member of **union_** to assess. **Description** This is a wrapper around pvr_ioctl_union_padding_check() which performs alignment checks and simplifies things for the caller. **Return** * ``true`` if every byte in **struct_instance_** between the end of **member_** and the end of **union_** is zeroed, or * ``false`` otherwise.h](h)}(h**Parameters**h]j^)}(hjP_h]h Parameters}(hjR_hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjN_ubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:169: ./drivers/gpu/drm/imagination/pvr_device.hhMhjJ_ubj)}(hhh](j)}(hW``struct_instance_`` An expression which evaluates to a pointer to a UAPI data struct. h](j)}(h``struct_instance_``h]h)}(hjo_h]hstruct_instance_}(hjq_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjm_ubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:169: ./drivers/gpu/drm/imagination/pvr_device.hhMhji_ubj)}(hhh]h)}(hAAn expression which evaluates to a pointer to a UAPI data struct.h]hAAn expression which evaluates to a pointer to a UAPI data struct.}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:169: ./drivers/gpu/drm/imagination/pvr_device.hhMhj_ubah}(h]h ]h"]h$]h&]uh1jhji_ubeh}(h]h ]h"]h$]h&]uh1jhj_hMhjf_ubj)}(h``union_`` The name of the union member of **struct_instance_** to check. If the union member is nested within the type of **struct_instance_**, this may contain the member access operator ("."). h](j)}(h ``union_``h]h)}(hj_h]hunion_}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_ubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:169: ./drivers/gpu/drm/imagination/pvr_device.hhMhj_ubj)}(hhh]h)}(hThe name of the union member of **struct_instance_** to check. If the union member is nested within the type of **struct_instance_**, this may contain the member access operator (".").h](h The name of the union member of }(hj_hhhNhNubj^)}(h**struct_instance_**h]hstruct_instance_}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj_ubh< to check. If the union member is nested within the type of }(hj_hhhNhNubj^)}(h**struct_instance_**h]hstruct_instance_}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj_ubh8, this may contain the member access operator (“.”).}(hj_hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:169: ./drivers/gpu/drm/imagination/pvr_device.hhMhj_ubah}(h]h ]h"]h$]h&]uh1jhj_ubeh}(h]h ]h"]h$]h&]uh1jhj_hMhjf_ubj)}(h<``member_`` The name of the member of **union_** to assess. h](j)}(h ``member_``h]h)}(hj`h]hmember_}(hj `hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`ubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:169: ./drivers/gpu/drm/imagination/pvr_device.hhMhj`ubj)}(hhh]h)}(h/The name of the member of **union_** to assess.h](hThe name of the member of }(hj `hhhNhNubj^)}(h **union_**h]hunion_}(hj(`hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj `ubh to assess.}(hj `hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj`hMhj`ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhj`hMhjf_ubeh}(h]h ]h"]h$]h&]uh1jhjJ_ubh)}(h**Description**h]j^)}(hjT`h]h Description}(hjV`hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjR`ubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:169: ./drivers/gpu/drm/imagination/pvr_device.hhMhjJ_ubh)}(h~This is a wrapper around pvr_ioctl_union_padding_check() which performs alignment checks and simplifies things for the caller.h]h~This is a wrapper around pvr_ioctl_union_padding_check() which performs alignment checks and simplifies things for the caller.}(hjj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:169: ./drivers/gpu/drm/imagination/pvr_device.hhMhjJ_ubh)}(h **Return**h]j^)}(hj{`h]hReturn}(hj}`hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjy`ubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:169: ./drivers/gpu/drm/imagination/pvr_device.hhMhjJ_ubh)}(h* ``true`` if every byte in **struct_instance_** between the end of **member_** and the end of **union_** is zeroed, or * ``false`` otherwise.h]h)}(hhh](h)}(hu``true`` if every byte in **struct_instance_** between the end of **member_** and the end of **union_** is zeroed, orh]h)}(hu``true`` if every byte in **struct_instance_** between the end of **member_** and the end of **union_** is zeroed, orh](h)}(h``true``h]htrue}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`ubh if every byte in }(hj`hhhNhNubj^)}(h**struct_instance_**h]hstruct_instance_}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj`ubh between the end of }(hj`hhhNhNubj^)}(h **member_**h]hmember_}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj`ubh and the end of }(hj`hhhNhNubj^)}(h **union_**h]hunion_}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj`ubh is zeroed, or}(hj`hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:169: ./drivers/gpu/drm/imagination/pvr_device.hhMhj`ubah}(h]h ]h"]h$]h&]uh1hhj`ubh)}(h``false`` otherwise.h]h)}(hj`h](h)}(h ``false``h]hfalse}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`ubh otherwise.}(hj`hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/imagination/uapi:169: ./drivers/gpu/drm/imagination/pvr_device.hhMhj`ubah}(h]h ]h"]h$]h&]uh1hhj`ubeh}(h]h ]h"]h$]h&]jj>Zuh1hhj`hMhj`ubah}(h]h ]h"]h$]h&]uh1hhj`hMhjJ_ubeh}(h]h ] kernelindentah"]h$]h&]uh1jShjYhhhNhNubeh}(h]internal-notesah ]h"]internal notesah$]h&]uh1hhhhhhhhKubeh}(h]uapiah ]h"]uapiah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksjQfootnote_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`aerror_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;aj8ajXjUj}YjzYj#j#j&j&j(j(jn+jk+j0j0jT8jQ8jc>j`>jHjHjuYjrYj3aj0au nametypes}(j;ajXj}Yj#j&j(jn+j0jT8jc>jHjuYj3auh}(j8ahjUjjjjjjzYj[jxj}j#jjjj j j j! j5j:jjjjjCjIjjjjjjjjj!j!j&j#j$j$j(j&j 'j'jk+j(j(j(j%*j**j0jq+j+j+j.j.jQ8j0j0j0j3j3j5j5j 7j7j`>jW8jt8jy8j=j=jHjf>j>j>j CjCj#Ej(EjFjFjrYjHj1Hj6HjHjHjHjHjEIjJIjIjIjIjJj`KjeKjKjKjLjLjtLjyLjLjLj,Mj1MjMjMjMjMj@NjENjNjNjNjNjTOjYOjOjOj PjPjhPjmPjPjPj Qj%Qj|QjQj SjSjTjTjUjVj0ajYjYjYj]j]j^j^u 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.