€•#,Œ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/virt/coco/tdx-guest”Œ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/virt/coco/tdx-guest”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ'/translations/it_IT/virt/coco/tdx-guest”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ'/translations/ja_JP/virt/coco/tdx-guest”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ'/translations/ko_KR/virt/coco/tdx-guest”Œ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/virt/coco/tdx-guest”Œ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/virt/coco/tdx-guest”Œ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³ŒA/var/lib/git/docbuild/linux/Documentation/virt/coco/tdx-guest.rst”h´KubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒTDX Guest API Documentation”h]”hŒTDX Guest API Documentation”…””}”(hhÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÊh²hh³hÇh´KubhÉ)”}”(hhh]”(hÎ)”}”(hŒ1. General description”h]”hŒ1. General description”…””}”(hhàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÝh²hh³hÇh´KubhŒ paragraph”“”)”}”(hŒŽThe TDX guest driver exposes IOCTL interfaces via the /dev/tdx-guest misc device to allow userspace to get certain TDX guest-specific details.”h]”hŒŽThe TDX guest driver exposes IOCTL interfaces via the /dev/tdx-guest misc device to allow userspace to get certain TDX guest-specific details.”…””}”(hhðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K hhÝh²hubeh}”(h]”Œgeneral-description”ah ]”h"]”Œ1. general description”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KubhÉ)”}”(hhh]”(hÎ)”}”(hŒ2. API description”h]”hŒ2. API description”…””}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjh²hh³hÇh´Kubhï)”}”(hŒrIn this section, for each supported IOCTL, the following information is provided along with a generic description.”h]”hŒrIn this section, for each supported IOCTL, the following information is provided along with a generic description.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Khjh²hubhŒ field_list”“”)”}”(hhh]”(hŒfield”“”)”}”(hhh]”(hŒ field_name”“”)”}”(hŒInput parameters”h]”hŒInput parameters”…””}”(hj1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j/hj,h³hÇh´KubhŒ field_body”“”)”}”(hŒ3Parameters passed to the IOCTL and related details.”h]”hï)”}”(hjCh]”hŒ3Parameters passed to the IOCTL and related details.”…””}”(hjEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KhjAubah}”(h]”h ]”h"]”h$]”h&]”uh1j?hj,ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j*h³hÇh´Khj'h²hubj+)”}”(hhh]”(j0)”}”(hŒOutput”h]”hŒOutput”…””}”(hjah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j/hj^h³hÇh´Kubj@)”}”(hŒ]Details about output data and return value (with details about the non common error values). ”h]”hï)”}”(hŒ\Details about output data and return value (with details about the non common error values).”h]”hŒ\Details about output data and return value (with details about the non common error values).”…””}”(hjsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Khjoubah}”(h]”h ]”h"]”h$]”h&]”uh1j?hj^ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j*h³hÇh´Khj'h²hubeh}”(h]”h ]”h"]”h$]”h&]”uh1j%hjh²hh³hÇh´KubhÉ)”}”(hhh]”(hÎ)”}”(hŒ2.1 TDX_CMD_GET_REPORT0”h]”hŒ2.1 TDX_CMD_GET_REPORT0”…””}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj“h²hh³hÇh´Kubj&)”}”(hhh]”(j+)”}”(hhh]”(j0)”}”(hŒInput parameters”h]”hŒInput parameters”…””}”(hjªh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j/hj§h³hÇh´Kubj@)”}”(hŒstruct tdx_report_req”h]”hï)”}”(hjºh]”hŒstruct tdx_report_req”…””}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Khj¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1j?hj§ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j*h³hÇh´Khj¤h²hubj+)”}”(hhh]”(j0)”}”(hŒOutput”h]”hŒOutput”…””}”(hjØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j/hjÕh³hÇh´Kubj@)”}”(hŒËUpon successful execution, TDREPORT data is copied to tdx_report_req.tdreport and return 0. Return -EINVAL for invalid operands, -EIO on TDCALL failure or standard error number on other common failures. ”h]”hï)”}”(hŒÊUpon successful execution, TDREPORT data is copied to tdx_report_req.tdreport and return 0. Return -EINVAL for invalid operands, -EIO on TDCALL failure or standard error number on other common failures.”h]”hŒÊUpon successful execution, TDREPORT data is copied to tdx_report_req.tdreport and return 0. Return -EINVAL for invalid operands, -EIO on TDCALL failure or standard error number on other common failures.”…””}”(hjêh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Khjæubah}”(h]”h ]”h"]”h$]”h&]”uh1j?hjÕubeh}”(h]”h ]”h"]”h$]”h&]”uh1j*h³hÇh´Khj¤h²hubeh}”(h]”h ]”h"]”h$]”h&]”uh1j%hj“h²hh³hÇh´Kubhï)”}”(hŒ§The TDX_CMD_GET_REPORT0 IOCTL can be used by the attestation software to get the TDREPORT0 (a.k.a. TDREPORT subtype 0) from the TDX module using TDCALL[TDG.MR.REPORT].”h]”hŒ§The TDX_CMD_GET_REPORT0 IOCTL can be used by the attestation software to get the TDREPORT0 (a.k.a. TDREPORT subtype 0) from the TDX module using TDCALL[TDG.MR.REPORT].”…””}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K hj“h²hubhï)”}”(hXWA subtype index is added at the end of this IOCTL CMD to uniquely identify the subtype-specific TDREPORT request. Although the subtype option is mentioned in the TDX Module v1.0 specification, section titled "TDG.MR.REPORT", it is not currently used, and it expects this value to be 0. So to keep the IOCTL implementation simple, the subtype option was not included as part of the input ABI. However, in the future, if the TDX Module supports more than one subtype, a new IOCTL CMD will be created to handle it. To keep the IOCTL naming consistent, a subtype index is added as part of the IOCTL CMD.”h]”hX[A subtype index is added at the end of this IOCTL CMD to uniquely identify the subtype-specific TDREPORT request. Although the subtype option is mentioned in the TDX Module v1.0 specification, section titled “TDG.MR.REPORTâ€, it is not currently used, and it expects this value to be 0. So to keep the IOCTL implementation simple, the subtype option was not included as part of the input ABI. However, in the future, if the TDX Module supports more than one subtype, a new IOCTL CMD will be created to handle it. To keep the IOCTL naming consistent, a subtype index is added as part of the IOCTL CMD.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K$hj“h²hubeh}”(h]”Œtdx-cmd-get-report0”ah ]”h"]”Œ2.1 tdx_cmd_get_report0”ah$]”h&]”uh1hÈhjh²hh³hÇh´KubhÉ)”}”(hhh]”(hÎ)”}”(hŒ Reference”h]”hŒ Reference”…””}”(hj1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj.h²hh³hÇh´K.ubhï)”}”(hŒ)TDX reference material is collected here:”h]”hŒ)TDX reference material is collected here:”…””}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K0hj.h²hubhï)”}”(hŒghttps://www.intel.com/content/www/us/en/developer/articles/technical/intel-trust-domain-extensions.html”h]”hŒ reference”“”)”}”(hjOh]”hŒghttps://www.intel.com/content/www/us/en/developer/articles/technical/intel-trust-domain-extensions.html”…””}”(hjSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”jOuh1jQhjMubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K2hj.h²hubhï)”}”(hŒUThe driver is based on TDX module specification v1.0 and TDX GHCI specification v1.0.”h]”hŒUThe driver is based on TDX module specification v1.0 and TDX GHCI specification v1.0.”…””}”(hjgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K4hj.h²hubeh}”(h]”Œ reference”ah ]”h"]”Œ reference”ah$]”h&]”uh1hÈhjh²hh³hÇh´K.ubeh}”(h]”Œapi-description”ah ]”h"]”Œ2. api description”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´Kubeh}”(h]”Œtdx-guest-api-documentation”ah ]”h"]”Œtdx guest api documentation”ah$]”h&]”uh1hÈhhh²hh³hÇh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÇuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(hÍNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”j°Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÇŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(jŠj‡jjj‚jj+j(jzjwuŒ nametypes”}”(jЉj‰j‚‰j+‰jz‰uh}”(j‡hÊjhÝjjj(j“jwj.uŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.