€•©Œsphinx.addnodes”Œdocument”“”)�”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)�”}”(hhh]”(hŒ pending_xref”“”)�”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…”�”}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ%/translations/zh_CN/userspace-api/lsm”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)�”}”(hhh]”hŒChinese (Traditional)”…”�”}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ%/translations/zh_TW/userspace-api/lsm”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ%/translations/it_IT/userspace-api/lsm”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ%/translations/ja_JP/userspace-api/lsm”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ%/translations/ko_KR/userspace-api/lsm”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒPortuguese (Brazilian)”…”�”}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ%/translations/pt_BR/userspace-api/lsm”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒSpanish”…”�”}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ%/translations/sp_SP/userspace-api/lsm”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)�”}”(hŒ SPDX-License-Identifier: GPL-2.0”h]”hŒ SPDX-License-Identifier: GPL-2.0”…”�”}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³Œ?/var/lib/git/docbuild/linux/Documentation/userspace-api/lsm.rst”h´Kubh¶)�”}”(hŒ;Copyright (C) 2022 Casey Schaufler ”h]”hŒ;Copyright (C) 2022 Casey Schaufler ”…”�”}”hhÈsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1hµhhh²hh³hÇh´Kubh¶)�”}”(hŒ$Copyright (C) 2022 Intel Corporation”h]”hŒ$Copyright (C) 2022 Intel Corporation”…”�”}”hhÖsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1hµhhh²hh³hÇh´KubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒLinux Security Modules”h]”hŒLinux Security Modules”…”�”}”(hhëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1héhhæh²hh³hÇh´KubhŒ field_list”“”)�”}”(hhh]”(hŒfield”“”)�”}”(hhh]”(hŒ field_name”“”)�”}”(hŒAuthor”h]”hŒAuthor”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjh³hÇh´KubhŒ field_body”“”)�”}”(hŒCasey Schaufler”h]”hŒ paragraph”“”)�”}”(hjh]”hŒCasey Schaufler”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1hþh³hÇh´K hhûh²hubhÿ)�”}”(hhh]”(j)�”}”(hŒDate”h]”hŒDate”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj4h³hÇh´Kubj)�”}”(hŒ July 2023 ”h]”j)�”}”(hŒ July 2023”h]”hŒ July 2023”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K hjEubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj4ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hþh³hÇh´K hhûh²hubeh}”(h]”h ]”h"]”h$]”h&]”uh1hùhhæh²hh³hÇh´K ubj)�”}”(hŒxLinux security modules (LSM) provide a mechanism to implement additional access controls to the Linux security policies.”h]”hŒxLinux security modules (LSM) provide a mechanism to implement additional access controls to the Linux security policies.”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K hhæh²hubj)�”}”(hŒAThe various security modules may support any of these attributes:”h]”hŒAThe various security modules may support any of these attributes:”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´Khhæh²hubj)�”}”(hXk``LSM_ATTR_CURRENT`` is the current, active security context of the process. The proc filesystem provides this value in ``/proc/self/attr/current``. This is supported by the SELinux, Smack and AppArmor security modules. Smack also provides this value in ``/proc/self/attr/smack/current``. AppArmor also provides this value in ``/proc/self/attr/apparmor/current``.”h]”(hŒliteral”“”)�”}”(hŒ``LSM_ATTR_CURRENT``”h]”hŒLSM_ATTR_CURRENT”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hj…ubhŒd is the current, active security context of the process. The proc filesystem provides this value in ”…”�”}”(hj…h²hh³Nh´NubjŠ)�”}”(hŒ``/proc/self/attr/current``”h]”hŒ/proc/self/attr/current”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hj…ubhŒk. This is supported by the SELinux, Smack and AppArmor security modules. Smack also provides this value in ”…”�”}”(hj…h²hh³Nh´NubjŠ)�”}”(hŒ!``/proc/self/attr/smack/current``”h]”hŒ/proc/self/attr/smack/current”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hj…ubhŒ'. AppArmor also provides this value in ”…”�”}”(hj…h²hh³Nh´NubjŠ)�”}”(hŒ$``/proc/self/attr/apparmor/current``”h]”hŒ /proc/self/attr/apparmor/current”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hj…ubhŒ.”…”�”}”(hj…h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´Khhæh²hubj)�”}”(hX1``LSM_ATTR_EXEC`` is the security context of the process at the time the current image was executed. The proc filesystem provides this value in ``/proc/self/attr/exec``. This is supported by the SELinux and AppArmor security modules. AppArmor also provides this value in ``/proc/self/attr/apparmor/exec``.”h]”(jŠ)�”}”(hŒ``LSM_ATTR_EXEC``”h]”hŒ LSM_ATTR_EXEC”…”�”}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjÙubhŒ is the security context of the process at the time the current image was executed. The proc filesystem provides this value in ”…”�”}”(hjÙh²hh³Nh´NubjŠ)�”}”(hŒ``/proc/self/attr/exec``”h]”hŒ/proc/self/attr/exec”…”�”}”(hjïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjÙubhŒg. This is supported by the SELinux and AppArmor security modules. AppArmor also provides this value in ”…”�”}”(hjÙh²hh³Nh´NubjŠ)�”}”(hŒ!``/proc/self/attr/apparmor/exec``”h]”hŒ/proc/self/attr/apparmor/exec”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjÙubhŒ.”…”�”}”(hjÙh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´Khhæh²hubj)�”}”(hŒß``LSM_ATTR_FSCREATE`` is the security context of the process used when creating file system objects. The proc filesystem provides this value in ``/proc/self/attr/fscreate``. This is supported by the SELinux security module.”h]”(jŠ)�”}”(hŒ``LSM_ATTR_FSCREATE``”h]”hŒLSM_ATTR_FSCREATE”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjubhŒ{ is the security context of the process used when creating file system objects. The proc filesystem provides this value in ”…”�”}”(hjh²hh³Nh´NubjŠ)�”}”(hŒ``/proc/self/attr/fscreate``”h]”hŒ/proc/self/attr/fscreate”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjubhŒ3. This is supported by the SELinux security module.”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´Khhæh²hubj)�”}”(hŒÙ``LSM_ATTR_KEYCREATE`` is the security context of the process used when creating key objects. The proc filesystem provides this value in ``/proc/self/attr/keycreate``. This is supported by the SELinux security module.”h]”(jŠ)�”}”(hŒ``LSM_ATTR_KEYCREATE``”h]”hŒLSM_ATTR_KEYCREATE”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjGubhŒs is the security context of the process used when creating key objects. The proc filesystem provides this value in ”…”�”}”(hjGh²hh³Nh´NubjŠ)�”}”(hŒ``/proc/self/attr/keycreate``”h]”hŒ/proc/self/attr/keycreate”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjGubhŒ3. This is supported by the SELinux security module.”…”�”}”(hjGh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K#hhæh²hubj)�”}”(hX7``LSM_ATTR_PREV`` is the security context of the process at the time the current security context was set. The proc filesystem provides this value in ``/proc/self/attr/prev``. This is supported by the SELinux and AppArmor security modules. AppArmor also provides this value in ``/proc/self/attr/apparmor/prev``.”h]”(jŠ)�”}”(hŒ``LSM_ATTR_PREV``”h]”hŒ LSM_ATTR_PREV”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjuubhŒ… is the security context of the process at the time the current security context was set. The proc filesystem provides this value in ”…”�”}”(hjuh²hh³Nh´NubjŠ)�”}”(hŒ``/proc/self/attr/prev``”h]”hŒ/proc/self/attr/prev”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjuubhŒg. This is supported by the SELinux and AppArmor security modules. AppArmor also provides this value in ”…”�”}”(hjuh²hh³Nh´NubjŠ)�”}”(hŒ!``/proc/self/attr/apparmor/prev``”h]”hŒ/proc/self/attr/apparmor/prev”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjuubhŒ.”…”�”}”(hjuh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K(hhæh²hubj)�”}”(hŒÞ``LSM_ATTR_SOCKCREATE`` is the security context of the process used when creating socket objects. The proc filesystem provides this value in ``/proc/self/attr/sockcreate``. This is supported by the SELinux security module.”h]”(jŠ)�”}”(hŒ``LSM_ATTR_SOCKCREATE``”h]”hŒLSM_ATTR_SOCKCREATE”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjµubhŒv is the security context of the process used when creating socket objects. The proc filesystem provides this value in ”…”�”}”(hjµh²hh³Nh´NubjŠ)�”}”(hŒ``/proc/self/attr/sockcreate``”h]”hŒ/proc/self/attr/sockcreate”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjµubhŒ3. This is supported by the SELinux security module.”…”�”}”(hjµh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K.hhæh²hubhå)�”}”(hhh]”(hê)�”}”(hŒKernel interface”h]”hŒKernel interface”…”�”}”(hjæh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1héhjãh²hh³hÇh´K4ubhå)�”}”(hhh]”(hê)�”}”(hŒ/Set a security attribute of the current process”h]”hŒ/Set a security attribute of the current process”…”�”}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1héhjôh²hh³hÇh´K7ubhŒindex”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(Œsingle”Œ"sys_lsm_set_self_attr (C function)”Œc.sys_lsm_set_self_attr”hNt”auh1jhjôh²hh³Nh´NubhŒdesc”“”)�”}”(hhh]”(hŒdesc_signature”“”)�”}”(hŒ`long sys_lsm_set_self_attr (unsigned int attr, struct lsm_ctx __user * ctx, u32 size, u32 flags)”h]”hŒdesc_signature_line”“”)�”}”(hŒ^long sys_lsm_set_self_attr(unsigned int attr, struct lsm_ctx __user *ctx, u32 size, u32 flags)”h]”(hŒdesc_sig_keyword_type”“”)�”}”(hŒlong”h]”hŒlong”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”Œkt”ah"]”h$]”h&]”uh1j'hj#h²hh³ŒY/var/lib/git/docbuild/linux/Documentation/userspace-api/lsm:57: ./security/lsm_syscalls.c”h´K/ubhŒdesc_sig_space”“”)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”Œw”ah"]”h$]”h&]”uh1j9hj#h²hh³j8h´K/ubhŒ desc_name”“”)�”}”(hŒsys_lsm_set_self_attr”h]”hŒ desc_sig_name”“”)�”}”(hŒsys_lsm_set_self_attr”h]”hŒsys_lsm_set_self_attr”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”Œn”ah"]”h$]”h&]”uh1jPhjLubah}”(h]”h ]”(Œsig-name”Œdescname”eh"]”h$]”h&]”hÅhÆuh1jJhj#h²hh³j8h´K/ubhŒdesc_parameterlist”“”)�”}”(hŒD(unsigned int attr, struct lsm_ctx __user *ctx, u32 size, u32 flags)”h]”(hŒdesc_parameter”“”)�”}”(hŒunsigned int attr”h]”(j()�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hjqubj:)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”jFah"]”h$]”h&]”uh1j9hjqubj()�”}”(hŒint”h]”hŒint”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hjqubj:)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”jFah"]”h$]”h&]”uh1j9hjqubjQ)�”}”(hŒattr”h]”hŒattr”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”j]ah"]”h$]”h&]”uh1jPhjqubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1johjkubjp)�”}”(hŒstruct lsm_ctx __user *ctx”h]”(hŒdesc_sig_keyword”“”)�”}”(hŒstruct”h]”hŒstruct”…”�”}”(hjÈh²hh³Nh´Nubah}”(h]”h ]”Œk”ah"]”h$]”h&]”uh1jÆhjÂubj:)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”jFah"]”h$]”h&]”uh1j9hjÂubh)�”}”(hhh]”jQ)�”}”(hŒlsm_ctx”h]”hŒlsm_ctx”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”j]ah"]”h$]”h&]”uh1jPhjåubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”Œc”Œreftype”Œ identifier”Œ reftarget”jêŒmodname”NŒ classname”NŒ c:parent_key”Œsphinx.domains.c”Œ LookupKey”“”)�”}”Œdata”]”jŒ ASTIdentifier”“”)�”}”jÿjTsbŒc.sys_lsm_set_self_attr”†”asbuh1hhjÂubj:)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jFah"]”h$]”h&]”uh1j9hjÂubhŒ__user”…”�”}”(hjÂh²hh³Nh´Nubj:)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”jFah"]”h$]”h&]”uh1j9hjÂubhŒdesc_sig_punctuation”“”)�”}”(hŒ*”h]”hŒ*”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”Œp”ah"]”h$]”h&]”uh1j1hjÂubjQ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”j]ah"]”h$]”h&]”uh1jPhjÂubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1johjkubjp)�”}”(hŒu32 size”h]”(h)�”}”(hhh]”jQ)�”}”(hŒu32”h]”hŒu32”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”j]ah"]”h$]”h&]”uh1jPhj[ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jýŒreftype”jÿŒ reftarget”j`Œmodname”NŒ classname”Njj)�”}”j ]”j Œc.sys_lsm_set_self_attr”†”asbuh1hhjWubj:)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj|h²hh³Nh´Nubah}”(h]”h ]”jFah"]”h$]”h&]”uh1j9hjWubjQ)�”}”(hŒsize”h]”hŒsize”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”j]ah"]”h$]”h&]”uh1jPhjWubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1johjkubjp)�”}”(hŒ u32 flags”h]”(h)�”}”(hhh]”jQ)�”}”(hŒu32”h]”hŒu32”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”j]ah"]”h$]”h&]”uh1jPhj£ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jýŒreftype”jÿŒ reftarget”j¨Œmodname”NŒ classname”Njj)�”}”j ]”j Œc.sys_lsm_set_self_attr”†”asbuh1hhjŸubj:)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”jFah"]”h$]”h&]”uh1j9hjŸubjQ)�”}”(hŒflags”h]”hŒflags”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”j]ah"]”h$]”h&]”uh1jPhjŸubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1johjkubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jihj#h²hh³j8h´K/ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆŒ add_permalink”ˆuh1j!Œsphinx_line_type”Œ declarator”hjh²hh³j8h´K/ubah}”(h]”jah ]”(Œsig”Œ sig-object”eh"]”h$]”h&]”Œ is_multiline”ˆŒ _toc_parts”)Œ _toc_name”huh1jh³j8h´K/hjh²hubhŒ desc_content”“”)�”}”(hhh]”j)�”}”(hŒ,Set current task's security module attribute”h]”hŒ.Set current task’s security module attribute”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒY/var/lib/git/docbuild/linux/Documentation/userspace-api/lsm:57: ./security/lsm_syscalls.c”h´K/hjh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjh²hh³j8h´K/ubeh}”(h]”h ]”(jýŒfunction”eh"]”h$]”h&]”Œdomain”jýŒobjtype”jŒdesctype”jŒnoindex”‰Œ noindexentry”‰Œnocontentsentry”‰uh1jh²hhjôh³Nh´NubhŒ container”“”)�”}”(hX�**Parameters** ``unsigned int attr`` which attribute to set ``struct lsm_ctx __user * ctx`` the LSM contexts ``u32 size`` size of **ctx** ``u32 flags`` reserved for future use **Description** Sets the calling task's LSM context. On success this function returns 0. If the attribute specified cannot be set a negative value indicating the reason for the error is returned.”h]”(j)�”}”(hŒ**Parameters**”h]”hŒstrong”“”)�”}”(hj0h]”hŒ Parameters”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j2hj.ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒY/var/lib/git/docbuild/linux/Documentation/userspace-api/lsm:57: ./security/lsm_syscalls.c”h´K3hj*ubhŒdefinition_list”“”)�”}”(hhh]”(hŒdefinition_list_item”“”)�”}”(hŒ-``unsigned int attr`` which attribute to set ”h]”(hŒterm”“”)�”}”(hŒ``unsigned int attr``”h]”jŠ)�”}”(hjWh]”hŒunsigned int attr”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjUubah}”(h]”h ]”h"]”h$]”h&]”uh1jSh³ŒY/var/lib/git/docbuild/linux/Documentation/userspace-api/lsm:57: ./security/lsm_syscalls.c”h´K0hjOubhŒ definition”“”)�”}”(hhh]”j)�”}”(hŒwhich attribute to set”h]”hŒwhich attribute to set”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³jlh´K0hjoubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjOubeh}”(h]”h ]”h"]”h$]”h&]”uh1jMh³jlh´K0hjJubjN)�”}”(hŒ1``struct lsm_ctx __user * ctx`` the LSM contexts ”h]”(jT)�”}”(hŒ``struct lsm_ctx __user * ctx``”h]”jŠ)�”}”(hj’h]”hŒstruct lsm_ctx __user * ctx”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jSh³ŒY/var/lib/git/docbuild/linux/Documentation/userspace-api/lsm:57: ./security/lsm_syscalls.c”h´K1hjŒubjn)�”}”(hhh]”j)�”}”(hŒthe LSM contexts”h]”hŒthe LSM contexts”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³j§h´K1hj¨ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjŒubeh}”(h]”h ]”h"]”h$]”h&]”uh1jMh³j§h´K1hjJubjN)�”}”(hŒ``u32 size`` size of **ctx** ”h]”(jT)�”}”(hŒ ``u32 size``”h]”jŠ)�”}”(hjËh]”hŒu32 size”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjÉubah}”(h]”h ]”h"]”h$]”h&]”uh1jSh³ŒY/var/lib/git/docbuild/linux/Documentation/userspace-api/lsm:57: ./security/lsm_syscalls.c”h´K2hjÅubjn)�”}”(hhh]”j)�”}”(hŒsize of **ctx**”h]”(hŒsize of ”…”�”}”(hjäh²hh³Nh´Nubj3)�”}”(hŒ**ctx**”h]”hŒctx”…”�”}”(hjìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j2hjäubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³jàh´K2hjáubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjÅubeh}”(h]”h ]”h"]”h$]”h&]”uh1jMh³jàh´K2hjJubjN)�”}”(hŒ&``u32 flags`` reserved for future use ”h]”(jT)�”}”(hŒ ``u32 flags``”h]”jŠ)�”}”(hjh]”hŒ u32 flags”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jSh³ŒY/var/lib/git/docbuild/linux/Documentation/userspace-api/lsm:57: ./security/lsm_syscalls.c”h´K3hj ubjn)�”}”(hhh]”j)�”}”(hŒreserved for future use”h]”hŒreserved for future use”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³j'h´K3hj(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jMh³j'h´K3hjJubeh}”(h]”h ]”h"]”h$]”h&]”uh1jHhj*ubj)�”}”(hŒ**Description**”h]”j3)�”}”(hjMh]”hŒ Description”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j2hjKubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒY/var/lib/git/docbuild/linux/Documentation/userspace-api/lsm:57: ./security/lsm_syscalls.c”h´K5hj*ubj)�”}”(hŒ³Sets the calling task's LSM context. On success this function returns 0. If the attribute specified cannot be set a negative value indicating the reason for the error is returned.”h]”hŒµSets the calling task’s LSM context. On success this function returns 0. If the attribute specified cannot be set a negative value indicating the reason for the error is returned.”…”�”}”(hjch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒY/var/lib/git/docbuild/linux/Documentation/userspace-api/lsm:57: ./security/lsm_syscalls.c”h´K4hj*ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j(hjôh²hh³Nh´Nubeh}”(h]”Œ/set-a-security-attribute-of-the-current-process”ah ]”h"]”Œ/set a security attribute of the current process”ah$]”h&]”uh1hähjãh²hh³hÇh´K7ubhå)�”}”(hhh]”(hê)�”}”(hŒah"]”h$]”h&]”uh1j1hj5ubjQ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”j]ah"]”h$]”h&]”uh1jPhj5ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1johjàubjp)�”}”(hŒu32 __user *size”h]”(h)�”}”(hhh]”jQ)�”}”(hŒu32”h]”hŒu32”…”�”}”(hjÀh²hh³Nh´Nubah}”(h]”h ]”j]ah"]”h$]”h&]”uh1jPhj½ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jýŒreftype”jÿŒ reftarget”jÂŒmodname”NŒ classname”Njj)�”}”j ]”jsŒc.sys_lsm_get_self_attr”†”asbuh1hhj¹ubj:)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”jFah"]”h$]”h&]”uh1j9hj¹ubhŒ__user”…”�”}”(hj¹h²hh³Nh´Nubj:)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”jFah"]”h$]”h&]”uh1j9hj¹ubj2)�”}”(hj5h]”hŒ*”…”�”}”(hjþh²hh³Nh´Nubah}”(h]”h ]”j>ah"]”h$]”h&]”uh1j1hj¹ubjQ)�”}”(hŒsize”h]”hŒsize”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j]ah"]”h$]”h&]”uh1jPhj¹ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1johjàubjp)�”}”(hŒ u32 flags”h]”(h)�”}”(hhh]”jQ)�”}”(hŒu32”h]”hŒu32”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”j]ah"]”h$]”h&]”uh1jPhj$ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jýŒreftype”jÿŒ reftarget”j)Œmodname”NŒ classname”Njj)�”}”j ]”jsŒc.sys_lsm_get_self_attr”†”asbuh1hhj ubj:)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”jFah"]”h$]”h&]”uh1j9hj ubjQ)�”}”(hŒflags”h]”hŒflags”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”j]ah"]”h$]”h&]”uh1jPhj ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1johjàubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jihj§h²hh³j¹h´KGubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjóˆuh1j!jôjõhj£h²hh³j¹h´KGubah}”(h]”jžah ]”(jùjúeh"]”h$]”h&]”jþˆjÿ)jhuh1jh³j¹h´KGhj h²hubj)�”}”(hhh]”j)�”}”(hŒ0Return current task's security module attributes”h]”hŒ2Return current task’s security module attributes”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒY/var/lib/git/docbuild/linux/Documentation/userspace-api/lsm:63: ./security/lsm_syscalls.c”h´KGhjzh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj h²hh³j¹h´KGubeh}”(h]”h ]”(jýŒfunction”eh"]”h$]”h&]”j"jýj#j•j$j•j%‰j&‰j'‰uh1jh²hhj�h³Nh´Nubj))�”}”(hX**Parameters** ``unsigned int attr`` which attribute to return ``struct lsm_ctx __user * ctx`` the user-space destination for the information, or NULL ``u32 __user * size`` pointer to the size of space available to receive the data ``u32 flags`` special handling options. LSM_FLAG_SINGLE indicates that only attributes associated with the LSM identified in the passed **ctx** be reported. **Description** Returns the calling task's LSM contexts. On success this function returns the number of **ctx** array elements. This value may be zero if there are no LSM contexts assigned. If **size** is insufficient to contain the return data -E2BIG is returned and **size** is set to the minimum required size. In all other cases a negative value indicating the error is returned.”h]”(j)�”}”(hŒ**Parameters**”h]”j3)�”}”(hjŸh]”hŒ Parameters”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j2hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒY/var/lib/git/docbuild/linux/Documentation/userspace-api/lsm:63: ./security/lsm_syscalls.c”h´KKhj™ubjI)�”}”(hhh]”(jN)�”}”(hŒ0``unsigned int attr`` which attribute to return ”h]”(jT)�”}”(hŒ``unsigned int attr``”h]”jŠ)�”}”(hj¾h]”hŒunsigned int attr”…”�”}”(hjÀh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hj¼ubah}”(h]”h ]”h"]”h$]”h&]”uh1jSh³ŒY/var/lib/git/docbuild/linux/Documentation/userspace-api/lsm:63: ./security/lsm_syscalls.c”h´KHhj¸ubjn)�”}”(hhh]”j)�”}”(hŒwhich attribute to return”h]”hŒwhich attribute to return”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³jÓh´KHhjÔubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj¸ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jMh³jÓh´KHhjµubjN)�”}”(hŒX``struct lsm_ctx __user * ctx`` the user-space destination for the information, or NULL ”h]”(jT)�”}”(hŒ``struct lsm_ctx __user * ctx``”h]”jŠ)�”}”(hj÷h]”hŒstruct lsm_ctx __user * ctx”…”�”}”(hjùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjõubah}”(h]”h ]”h"]”h$]”h&]”uh1jSh³ŒY/var/lib/git/docbuild/linux/Documentation/userspace-api/lsm:63: ./security/lsm_syscalls.c”h´KIhjñubjn)�”}”(hhh]”j)�”}”(hŒ7the user-space destination for the information, or NULL”h]”hŒ7the user-space destination for the information, or NULL”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³j h´KIhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjñubeh}”(h]”h ]”h"]”h$]”h&]”uh1jMh³j h´KIhjµubjN)�”}”(hŒQ``u32 __user * size`` pointer to the size of space available to receive the data ”h]”(jT)�”}”(hŒ``u32 __user * size``”h]”jŠ)�”}”(hj0 h]”hŒu32 __user * size”…”�”}”(hj2 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hj. ubah}”(h]”h ]”h"]”h$]”h&]”uh1jSh³ŒY/var/lib/git/docbuild/linux/Documentation/userspace-api/lsm:63: ./security/lsm_syscalls.c”h´KJhj* ubjn)�”}”(hhh]”j)�”}”(hŒ:pointer to the size of space available to receive the data”h]”hŒ:pointer to the size of space available to receive the data”…”�”}”(hjI h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³jE h´KJhjF ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj* ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jMh³jE h´KJhjµubjN)�”}”(hŒ�``u32 flags`` special handling options. LSM_FLAG_SINGLE indicates that only attributes associated with the LSM identified in the passed **ctx** be reported. ”h]”(jT)�”}”(hŒ ``u32 flags``”h]”jŠ)�”}”(hji h]”hŒ u32 flags”…”�”}”(hjk h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjg ubah}”(h]”h ]”h"]”h$]”h&]”uh1jSh³ŒY/var/lib/git/docbuild/linux/Documentation/userspace-api/lsm:63: ./security/lsm_syscalls.c”h´KMhjc ubjn)�”}”(hhh]”j)�”}”(hŒŽspecial handling options. LSM_FLAG_SINGLE indicates that only attributes associated with the LSM identified in the passed **ctx** be reported.”h]”(hŒzspecial handling options. LSM_FLAG_SINGLE indicates that only attributes associated with the LSM identified in the passed ”…”�”}”(hj‚ h²hh³Nh´Nubj3)�”}”(hŒ**ctx**”h]”hŒctx”…”�”}”(hjŠ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j2hj‚ ubhŒ be reported.”…”�”}”(hj‚ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒY/var/lib/git/docbuild/linux/Documentation/userspace-api/lsm:63: ./security/lsm_syscalls.c”h´KKhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjc ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jMh³j~ h´KMhjµubeh}”(h]”h ]”h"]”h$]”h&]”uh1jHhj™ubj)�”}”(hŒ**Description**”h]”j3)�”}”(hj· h]”hŒ Description”…”�”}”(hj¹ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j2hjµ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒY/var/lib/git/docbuild/linux/Documentation/userspace-api/lsm:63: ./security/lsm_syscalls.c”h´KOhj™ubj)�”}”(hXoReturns the calling task's LSM contexts. On success this function returns the number of **ctx** array elements. This value may be zero if there are no LSM contexts assigned. If **size** is insufficient to contain the return data -E2BIG is returned and **size** is set to the minimum required size. In all other cases a negative value indicating the error is returned.”h]”(hŒZReturns the calling task’s LSM contexts. On success this function returns the number of ”…”�”}”(hjÍ h²hh³Nh´Nubj3)�”}”(hŒ**ctx**”h]”hŒctx”…”�”}”(hjÕ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j2hjÍ ubhŒR array elements. This value may be zero if there are no LSM contexts assigned. If ”…”�”}”(hjÍ h²hh³Nh´Nubj3)�”}”(hŒ**size**”h]”hŒsize”…”�”}”(hjç h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j2hjÍ ubhŒC is insufficient to contain the return data -E2BIG is returned and ”…”�”}”(hjÍ h²hh³Nh´Nubj3)�”}”(hŒ**size**”h]”hŒsize”…”�”}”(hjù h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j2hjÍ ubhŒk is set to the minimum required size. In all other cases a negative value indicating the error is returned.”…”�”}”(hjÍ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒY/var/lib/git/docbuild/linux/Documentation/userspace-api/lsm:63: ./security/lsm_syscalls.c”h´KNhj™ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j(hj�h²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jŒ!sys_lsm_list_modules (C function)”Œc.sys_lsm_list_modules”hNt”auh1jhj�h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒJlong sys_lsm_list_modules (u64 __user * ids, u32 __user * size, u32 flags)”h]”j")�”}”(hŒGlong sys_lsm_list_modules(u64 __user *ids, u32 __user *size, u32 flags)”h]”(j()�”}”(hŒlong”h]”hŒlong”…”�”}”(hj2 h²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hj. h²hh³ŒY/var/lib/git/docbuild/linux/Documentation/userspace-api/lsm:66: ./security/lsm_syscalls.c”h´K]ubj:)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjA h²hh³Nh´Nubah}”(h]”h ]”jFah"]”h$]”h&]”uh1j9hj. h²hh³j@ h´K]ubjK)�”}”(hŒsys_lsm_list_modules”h]”jQ)�”}”(hŒsys_lsm_list_modules”h]”hŒsys_lsm_list_modules”…”�”}”(hjS h²hh³Nh´Nubah}”(h]”h ]”j]ah"]”h$]”h&]”uh1jPhjO ubah}”(h]”h ]”(jdjeeh"]”h$]”h&]”hÅhÆuh1jJhj. h²hh³j@ h´K]ubjj)�”}”(hŒ.(u64 __user *ids, u32 __user *size, u32 flags)”h]”(jp)�”}”(hŒu64 __user *ids”h]”(h)�”}”(hhh]”jQ)�”}”(hŒu64”h]”hŒu64”…”�”}”(hjr h²hh³Nh´Nubah}”(h]”h ]”j]ah"]”h$]”h&]”uh1jPhjo ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jýŒreftype”jÿŒ reftarget”jt Œmodname”NŒ classname”Njj)�”}”j ]”j )�”}”jÿjU sbŒc.sys_lsm_list_modules”†”asbuh1hhjk ubj:)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj’ h²hh³Nh´Nubah}”(h]”h ]”jFah"]”h$]”h&]”uh1j9hjk ubhŒ__user”…”�”}”(hjk h²hh³Nh´Nubj:)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¤ h²hh³Nh´Nubah}”(h]”h ]”jFah"]”h$]”h&]”uh1j9hjk ubj2)�”}”(hj5h]”hŒ*”…”�”}”(hj² h²hh³Nh´Nubah}”(h]”h ]”j>ah"]”h$]”h&]”uh1j1hjk ubjQ)�”}”(hŒids”h]”hŒids”…”�”}”(hj¿ h²hh³Nh´Nubah}”(h]”h ]”j]ah"]”h$]”h&]”uh1jPhjk ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1johjg ubjp)�”}”(hŒu32 __user *size”h]”(h)�”}”(hhh]”jQ)�”}”(hŒu32”h]”hŒu32”…”�”}”(hjÛ h²hh³Nh´Nubah}”(h]”h ]”j]ah"]”h$]”h&]”uh1jPhjØ ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jýŒreftype”jÿŒ reftarget”jÝ Œmodname”NŒ classname”Njj)�”}”j ]”jŽ Œc.sys_lsm_list_modules”†”asbuh1hhjÔ ubj:)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjù h²hh³Nh´Nubah}”(h]”h ]”jFah"]”h$]”h&]”uh1j9hjÔ ubhŒ__user”…”�”}”(hjÔ h²hh³Nh´Nubj:)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jFah"]”h$]”h&]”uh1j9hjÔ ubj2)�”}”(hj5h]”hŒ*”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j>ah"]”h$]”h&]”uh1j1hjÔ ubjQ)�”}”(hŒsize”h]”hŒsize”…”�”}”(hj& h²hh³Nh´Nubah}”(h]”h ]”j]ah"]”h$]”h&]”uh1jPhjÔ ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1johjg ubjp)�”}”(hŒ u32 flags”h]”(h)�”}”(hhh]”jQ)�”}”(hŒu32”h]”hŒu32”…”�”}”(hjB h²hh³Nh´Nubah}”(h]”h ]”j]ah"]”h$]”h&]”uh1jPhj? ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jýŒreftype”jÿŒ reftarget”jD Œmodname”NŒ classname”Njj)�”}”j ]”jŽ Œc.sys_lsm_list_modules”†”asbuh1hhj; ubj:)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj` h²hh³Nh´Nubah}”(h]”h ]”jFah"]”h$]”h&]”uh1j9hj; ubjQ)�”}”(hŒflags”h]”hŒflags”…”�”}”(hjn h²hh³Nh´Nubah}”(h]”h ]”j]ah"]”h$]”h&]”uh1jPhj; ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1johjg ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jihj. h²hh³j@ h´K]ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjóˆuh1j!jôjõhj* h²hh³j@ h´K]ubah}”(h]”j% ah ]”(jùjúeh"]”h$]”h&]”jþˆjÿ)jhuh1jh³j@ h´K]hj' h²hubj)�”}”(hhh]”j)�”}”(hŒ,Return a list of the active security modules”h]”hŒ,Return a list of the active security modules”…”�”}”(hj˜ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒY/var/lib/git/docbuild/linux/Documentation/userspace-api/lsm:66: ./security/lsm_syscalls.c”h´K]hj• h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj' h²hh³j@ h´K]ubeh}”(h]”h ]”(jýŒfunction”eh"]”h$]”h&]”j"jýj#j° j$j° j%‰j&‰j'‰uh1jh²hhj�h³Nh´Nubj))�”}”(hX,**Parameters** ``u64 __user * ids`` the LSM module ids ``u32 __user * size`` pointer to size of **ids**, updated on return ``u32 flags`` reserved for future use, must be zero **Description** Returns a list of the active LSM ids. On success this function returns the number of **ids** array elements. This value may be zero if there are no LSMs active. If **size** is insufficient to contain the return data -E2BIG is returned and **size** is set to the minimum required size. In all other cases a negative value indicating the error is returned.”h]”(j)�”}”(hŒ**Parameters**”h]”j3)�”}”(hjº h]”hŒ Parameters”…”�”}”(hj¼ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j2hj¸ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒY/var/lib/git/docbuild/linux/Documentation/userspace-api/lsm:66: ./security/lsm_syscalls.c”h´Kahj´ ubjI)�”}”(hhh]”(jN)�”}”(hŒ(``u64 __user * ids`` the LSM module ids ”h]”(jT)�”}”(hŒ``u64 __user * ids``”h]”jŠ)�”}”(hjÙ h]”hŒu64 __user * ids”…”�”}”(hjÛ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hj× ubah}”(h]”h ]”h"]”h$]”h&]”uh1jSh³ŒY/var/lib/git/docbuild/linux/Documentation/userspace-api/lsm:66: ./security/lsm_syscalls.c”h´K^hjÓ ubjn)�”}”(hhh]”j)�”}”(hŒthe LSM module ids”h]”hŒthe LSM module ids”…”�”}”(hjò h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³jî h´K^hjï ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjÓ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jMh³jî h´K^hjÐ ubjN)�”}”(hŒD``u32 __user * size`` pointer to size of **ids**, updated on return ”h]”(jT)�”}”(hŒ``u32 __user * size``”h]”jŠ)�”}”(hj h]”hŒu32 __user * size”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jSh³ŒY/var/lib/git/docbuild/linux/Documentation/userspace-api/lsm:66: ./security/lsm_syscalls.c”h´K_hj ubjn)�”}”(hhh]”j)�”}”(hŒ-pointer to size of **ids**, updated on return”h]”(hŒpointer to size of ”…”�”}”(hj+ h²hh³Nh´Nubj3)�”}”(hŒ**ids**”h]”hŒids”…”�”}”(hj3 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j2hj+ ubhŒ, updated on return”…”�”}”(hj+ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³j' h´K_hj( ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jMh³j' h´K_hjÐ ubjN)�”}”(hŒ4``u32 flags`` reserved for future use, must be zero ”h]”(jT)�”}”(hŒ ``u32 flags``”h]”jŠ)�”}”(hj] h]”hŒ u32 flags”…”�”}”(hj_ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hj[ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jSh³ŒY/var/lib/git/docbuild/linux/Documentation/userspace-api/lsm:66: ./security/lsm_syscalls.c”h´K`hjW ubjn)�”}”(hhh]”j)�”}”(hŒ%reserved for future use, must be zero”h]”hŒ%reserved for future use, must be zero”…”�”}”(hjv h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³jr h´K`hjs ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjW ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jMh³jr h´K`hjÐ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jHhj´ ubj)�”}”(hŒ**Description**”h]”j3)�”}”(hj˜ h]”hŒ Description”…”�”}”(hjš h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j2hj– ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒY/var/lib/git/docbuild/linux/Documentation/userspace-api/lsm:66: ./security/lsm_syscalls.c”h´Kbhj´ ubj)�”}”(hXbReturns a list of the active LSM ids. On success this function returns the number of **ids** array elements. This value may be zero if there are no LSMs active. If **size** is insufficient to contain the return data -E2BIG is returned and **size** is set to the minimum required size. In all other cases a negative value indicating the error is returned.”h]”(hŒUReturns a list of the active LSM ids. On success this function returns the number of ”…”�”}”(hj® h²hh³Nh´Nubj3)�”}”(hŒ**ids**”h]”hŒids”…”�”}”(hj¶ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j2hj® ubhŒH array elements. This value may be zero if there are no LSMs active. If ”…”�”}”(hj® h²hh³Nh´Nubj3)�”}”(hŒ**size**”h]”hŒsize”…”�”}”(hjÈ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j2hj® ubhŒC is insufficient to contain the return data -E2BIG is returned and ”…”�”}”(hj® h²hh³Nh´Nubj3)�”}”(hŒ**size**”h]”hŒsize”…”�”}”(hjÚ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j2hj® ubhŒk is set to the minimum required size. In all other cases a negative value indicating the error is returned.”…”�”}”(hj® h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒY/var/lib/git/docbuild/linux/Documentation/userspace-api/lsm:66: ./security/lsm_syscalls.c”h´Kahj´ ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j(hj�h²hh³Nh´Nubeh}”(h]”Œ