sphinx.addnodesdocument)}( rawsourcechildren](docutils.nodessubstitution_definition)}(h&.. |AArch32| replace:: :term:`AArch32`h]h pending_xref)}(h:term:`AArch32`h]h inline)}(hhh]h TextAArch32}(hhparenthuba attributes}(ids]classes](xrefstdstd-termenames]dupnames]backrefs]utagnamehh!hubah"}(h$]h&]h+]h-]h/]refdocprocess/code-review-guidelines refdomainh)reftypeterm refexplicitrefwarn reftargetAArch32uh1hsource lineKh!h ubah"}(h$]h&]h+]AArch32ah-]h/]uh1h hAhBhCKh!hhhubh )}(h&.. |AArch64| replace:: :term:`AArch64`h]h)}(h:term:`AArch64`h]h)}(hhQh]hAArch64}(hhh!hSubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!hOubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainh]reftypeterm refexplicitrefwarnh?AArch64uh1hhAhBhCKh!hKubah"}(h$]h&]h+]AArch64ah-]h/]uh1h hAhBhCKh!hhhubh )}(h.. |AMU| replace:: :term:`AMU`h]h)}(h :term:`AMU`h]h)}(hh|h]hAMU}(hhh!h~ubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!hzubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainhreftypeterm refexplicitrefwarnh?AMUuh1hhAhBhCKh!hvubah"}(h$]h&]h+]AMUah-]h/]uh1h hAhBhCKh!hhhubh )}(h&.. |AMUs| replace:: :term:`AMUs `h]h)}(h:term:`AMUs `h]h)}(hhh]hAMUs}(hhh!hubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!hubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainhreftypeterm refexplicitrefwarnh?AMUuh1hhAhBhCKh!hubah"}(h$]h&]h+]AMUsah-]h/]uh1h hAhBhCKh!hhhubh )}(h.. |API| replace:: :term:`API`h]h)}(h :term:`API`h]h)}(hhh]hAPI}(hhh!hubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!hubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainhތreftypeterm refexplicitrefwarnh?APIuh1hhAhBhCKh!hubah"}(h$]h&]h+]APIah-]h/]uh1h hAhBhCKh!hhhubh )}(h.. |BTI| replace:: :term:`BTI`h]h)}(h :term:`BTI`h]h)}(hhh]hBTI}(hhh!hubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!hubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainj reftypeterm refexplicitrefwarnh?BTIuh1hhAhBhCKh!hubah"}(h$]h&]h+]BTIah-]h/]uh1h hAhBhCKh!hhhubh )}(h.. |CoT| replace:: :term:`CoT`h]h)}(h :term:`CoT`h]h)}(hj(h]hCoT}(hhh!j*ubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!j&ubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainj4reftypeterm refexplicitrefwarnh?CoTuh1hhAhBhCKh!j"ubah"}(h$]h&]h+]CoTah-]h/]uh1h hAhBhCKh!hhhubh )}(h.. |COT| replace:: :term:`COT`h]h)}(h :term:`COT`h]h)}(hjSh]hCOT}(hhh!jUubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!jQubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainj_reftypeterm refexplicitrefwarnh?COTuh1hhAhBhCKh!jMubah"}(h$]h&]h+]COTah-]h/]uh1h hAhBhCKh!hhhubh )}(h.. |CSS| replace:: :term:`CSS`h]h)}(h :term:`CSS`h]h)}(hj~h]hCSS}(hhh!jubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!j|ubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjreftypeterm refexplicitrefwarnh?CSSuh1hhAhBhCK h!jxubah"}(h$]h&]h+]CSSah-]h/]uh1h hAhBhCK h!hhhubh )}(h.. |CVE| replace:: :term:`CVE`h]h)}(h :term:`CVE`h]h)}(hjh]hCVE}(hhh!jubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!jubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjreftypeterm refexplicitrefwarnh?CVEuh1hhAhBhCK h!jubah"}(h$]h&]h+]CVEah-]h/]uh1h hAhBhCK h!hhhubh )}(h.. |DTB| replace:: :term:`DTB`h]h)}(h :term:`DTB`h]h)}(hjh]hDTB}(hhh!jubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!jubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjreftypeterm refexplicitrefwarnh?DTBuh1hhAhBhCK h!jubah"}(h$]h&]h+]DTBah-]h/]uh1h hAhBhCK h!hhhubh )}(h .. |DS-5| replace:: :term:`DS-5`h]h)}(h :term:`DS-5`h]h)}(hjh]hDS-5}(hhh!jubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!jubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainj reftypeterm refexplicitrefwarnh?DS-5uh1hhAhBhCK h!jubah"}(h$]h&]h+]DS-5ah-]h/]uh1h hAhBhCK h!hhhubh )}(h.. |DSU| replace:: :term:`DSU`h]h)}(h :term:`DSU`h]h)}(hj*h]hDSU}(hhh!j,ubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!j(ubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainj6reftypeterm refexplicitrefwarnh?DSUuh1hhAhBhCK h!j$ubah"}(h$]h&]h+]DSUah-]h/]uh1h hAhBhCK h!hhhubh )}(h.. |DT| replace:: :term:`DT`h]h)}(h :term:`DT`h]h)}(hjUh]hDT}(hhh!jWubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!jSubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjareftypeterm refexplicitrefwarnh?DTuh1hhAhBhCKh!jOubah"}(h$]h&]h+]DTah-]h/]uh1h hAhBhCKh!hhhubh )}(h.. |EL| replace:: :term:`EL`h]h)}(h :term:`EL`h]h)}(hjh]hEL}(hhh!jubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!j~ubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjreftypeterm refexplicitrefwarnh?ELuh1hhAhBhCKh!jzubah"}(h$]h&]h+]ELah-]h/]uh1h hAhBhCKh!hhhubh )}(h.. |EHF| replace:: :term:`EHF`h]h)}(h :term:`EHF`h]h)}(hjh]hEHF}(hhh!jubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!jubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjreftypeterm refexplicitrefwarnh?EHFuh1hhAhBhCKh!jubah"}(h$]h&]h+]EHFah-]h/]uh1h hAhBhCKh!hhhubh )}(h".. |FCONF| replace:: :term:`FCONF`h]h)}(h :term:`FCONF`h]h)}(hjh]hFCONF}(hhh!jubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!jubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjreftypeterm refexplicitrefwarnh?FCONFuh1hhAhBhCKh!jubah"}(h$]h&]h+]FCONFah-]h/]uh1h hAhBhCKh!hhhubh )}(h.. |FDT| replace:: :term:`FDT`h]h)}(h :term:`FDT`h]h)}(hjh]hFDT}(hhh!jubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!jubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainj reftypeterm refexplicitrefwarnh?FDTuh1hhAhBhCKh!jubah"}(h$]h&]h+]FDTah-]h/]uh1h hAhBhCKh!hhhubh )}(h .. |FF-A| replace:: :term:`FF-A`h]h)}(h :term:`FF-A`h]h)}(hj,h]hFF-A}(hhh!j.ubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!j*ubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainj8reftypeterm refexplicitrefwarnh?FF-Auh1hhAhBhCKh!j&ubah"}(h$]h&]h+]FF-Aah-]h/]uh1h hAhBhCKh!hhhubh )}(h.. |FIP| replace:: :term:`FIP`h]h)}(h :term:`FIP`h]h)}(hjWh]hFIP}(hhh!jYubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!jUubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjcreftypeterm refexplicitrefwarnh?FIPuh1hhAhBhCKh!jQubah"}(h$]h&]h+]FIPah-]h/]uh1h hAhBhCKh!hhhubh )}(h.. |FVP| replace:: :term:`FVP`h]h)}(h :term:`FVP`h]h)}(hjh]hFVP}(hhh!jubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!jubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjreftypeterm refexplicitrefwarnh?FVPuh1hhAhBhCKh!j|ubah"}(h$]h&]h+]FVPah-]h/]uh1h hAhBhCKh!hhhubh )}(h.. |FWU| replace:: :term:`FWU`h]h)}(h :term:`FWU`h]h)}(hjh]hFWU}(hhh!jubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!jubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjreftypeterm refexplicitrefwarnh?FWUuh1hhAhBhCKh!jubah"}(h$]h&]h+]FWUah-]h/]uh1h hAhBhCKh!hhhubh )}(h.. |GIC| replace:: :term:`GIC`h]h)}(h :term:`GIC`h]h)}(hjh]hGIC}(hhh!jubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!jubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjreftypeterm refexplicitrefwarnh?GICuh1hhAhBhCKh!jubah"}(h$]h&]h+]GICah-]h/]uh1h hAhBhCKh!hhhubh )}(h.. |ISA| replace:: :term:`ISA`h]h)}(h :term:`ISA`h]h)}(hjh]hISA}(hhh!jubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!jubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjreftypeterm refexplicitrefwarnh?ISAuh1hhAhBhCKh!jubah"}(h$]h&]h+]ISAah-]h/]uh1h hAhBhCKh!hhhubh )}(h$.. |Linaro| replace:: :term:`Linaro`h]h)}(h:term:`Linaro`h]h)}(hj.h]hLinaro}(hhh!j0ubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!j,ubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainj:reftypeterm refexplicitrefwarnh?Linarouh1hhAhBhCKh!j(ubah"}(h$]h&]h+]Linaroah-]h/]uh1h hAhBhCKh!hhhubh )}(h.. |MMU| replace:: :term:`MMU`h]h)}(h :term:`MMU`h]h)}(hjYh]hMMU}(hhh!j[ubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!jWubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjereftypeterm refexplicitrefwarnh?MMUuh1hhAhBhCKh!jSubah"}(h$]h&]h+]MMUah-]h/]uh1h hAhBhCKh!hhhubh )}(h .. |MPAM| replace:: :term:`MPAM`h]h)}(h :term:`MPAM`h]h)}(hjh]hMPAM}(hhh!jubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!jubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjreftypeterm refexplicitrefwarnh?MPAMuh1hhAhBhCKh!j~ubah"}(h$]h&]h+]MPAMah-]h/]uh1h hAhBhCKh!hhhubh )}(h .. |MPMM| replace:: :term:`MPMM`h]h)}(h :term:`MPMM`h]h)}(hjh]hMPMM}(hhh!jubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!jubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjreftypeterm refexplicitrefwarnh?MPMMuh1hhAhBhCKh!jubah"}(h$]h&]h+]MPMMah-]h/]uh1h hAhBhCKh!hhhubh )}(h".. |MPIDR| replace:: :term:`MPIDR`h]h)}(h :term:`MPIDR`h]h)}(hjh]hMPIDR}(hhh!jubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!jubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjreftypeterm refexplicitrefwarnh?MPIDRuh1hhAhBhCKh!jubah"}(h$]h&]h+]MPIDRah-]h/]uh1h hAhBhCKh!hhhubh )}(h.. |MTE| replace:: :term:`MTE`h]h)}(h :term:`MTE`h]h)}(hjh]hMTE}(hhh!jubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!jubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjreftypeterm refexplicitrefwarnh?MTEuh1hhAhBhCKh!jubah"}(h$]h&]h+]MTEah-]h/]uh1h hAhBhCKh!hhhubh )}(h.. |OEN| replace:: :term:`OEN`h]h)}(h :term:`OEN`h]h)}(hj0h]hOEN}(hhh!j2ubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!j.ubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainj<reftypeterm refexplicitrefwarnh?OENuh1hhAhBhCKh!j*ubah"}(h$]h&]h+]OENah-]h/]uh1h hAhBhCKh!hhhubh )}(h$.. |OP-TEE| replace:: :term:`OP-TEE`h]h)}(h:term:`OP-TEE`h]h)}(hj[h]hOP-TEE}(hhh!j]ubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!jYubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjgreftypeterm refexplicitrefwarnh?OP-TEEuh1hhAhBhCK h!jUubah"}(h$]h&]h+]OP-TEEah-]h/]uh1h hAhBhCK h!hhhubh )}(h.. |OTE| replace:: :term:`OTE`h]h)}(h :term:`OTE`h]h)}(hjh]hOTE}(hhh!jubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!jubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjreftypeterm refexplicitrefwarnh?OTEuh1hhAhBhCK!h!jubah"}(h$]h&]h+]OTEah-]h/]uh1h hAhBhCK!h!hhhubh )}(h.. |PDD| replace:: :term:`PDD`h]h)}(h :term:`PDD`h]h)}(hjh]hPDD}(hhh!jubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!jubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjreftypeterm refexplicitrefwarnh?PDDuh1hhAhBhCK"h!jubah"}(h$]h&]h+]PDDah-]h/]uh1h hAhBhCK"h!hhhubh )}(h".. |PAUTH| replace:: :term:`PAUTH`h]h)}(h :term:`PAUTH`h]h)}(hjh]hPAUTH}(hhh!jubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!jubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjreftypeterm refexplicitrefwarnh?PAUTHuh1hhAhBhCK#h!jubah"}(h$]h&]h+]PAUTHah-]h/]uh1h hAhBhCK#h!hhhubh )}(h.. |PMF| replace:: :term:`PMF`h]h)}(h :term:`PMF`h]h)}(hjh]hPMF}(hhh!j ubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!jubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjreftypeterm refexplicitrefwarnh?PMFuh1hhAhBhCK$h!jubah"}(h$]h&]h+]PMFah-]h/]uh1h hAhBhCK$h!hhhubh )}(h .. |PSCI| replace:: :term:`PSCI`h]h)}(h :term:`PSCI`h]h)}(hj2h]hPSCI}(hhh!j4ubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!j0ubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainj>reftypeterm refexplicitrefwarnh?PSCIuh1hhAhBhCK%h!j,ubah"}(h$]h&]h+]PSCIah-]h/]uh1h hAhBhCK%h!hhhubh )}(h.. |RAS| replace:: :term:`RAS`h]h)}(h :term:`RAS`h]h)}(hj]h]hRAS}(hhh!j_ubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!j[ubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjireftypeterm refexplicitrefwarnh?RASuh1hhAhBhCK&h!jWubah"}(h$]h&]h+]RASah-]h/]uh1h hAhBhCK&h!hhhubh )}(h.. |ROT| replace:: :term:`ROT`h]h)}(h :term:`ROT`h]h)}(hjh]hROT}(hhh!jubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!jubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjreftypeterm refexplicitrefwarnh?ROTuh1hhAhBhCK'h!jubah"}(h$]h&]h+]ROTah-]h/]uh1h hAhBhCK'h!hhhubh )}(h .. |SCMI| replace:: :term:`SCMI`h]h)}(h :term:`SCMI`h]h)}(hjh]hSCMI}(hhh!jubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!jubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjreftypeterm refexplicitrefwarnh?SCMIuh1hhAhBhCK(h!jubah"}(h$]h&]h+]SCMIah-]h/]uh1h hAhBhCK(h!hhhubh )}(h.. |SCP| replace:: :term:`SCP`h]h)}(h :term:`SCP`h]h)}(hjh]hSCP}(hhh!jubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!jubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjreftypeterm refexplicitrefwarnh?SCPuh1hhAhBhCK)h!jubah"}(h$]h&]h+]SCPah-]h/]uh1h hAhBhCK)h!hhhubh )}(h .. |SDEI| replace:: :term:`SDEI`h]h)}(h :term:`SDEI`h]h)}(hj h]hSDEI}(hhh!j ubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!jubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjreftypeterm refexplicitrefwarnh?SDEIuh1hhAhBhCK*h!jubah"}(h$]h&]h+]SDEIah-]h/]uh1h hAhBhCK*h!hhhubh )}(h.. |SDS| replace:: :term:`SDS`h]h)}(h :term:`SDS`h]h)}(hj4h]hSDS}(hhh!j6ubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!j2ubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainj@reftypeterm refexplicitrefwarnh?SDSuh1hhAhBhCK+h!j.ubah"}(h$]h&]h+]SDSah-]h/]uh1h hAhBhCK+h!hhhubh )}(h.. |SEA| replace:: :term:`SEA`h]h)}(h :term:`SEA`h]h)}(hj_h]hSEA}(hhh!jaubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!j]ubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjkreftypeterm refexplicitrefwarnh?SEAuh1hhAhBhCK,h!jYubah"}(h$]h&]h+]SEAah-]h/]uh1h hAhBhCK,h!hhhubh )}(h.. |SiP| replace:: :term:`SiP`h]h)}(h :term:`SiP`h]h)}(hjh]hSiP}(hhh!jubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!jubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjreftypeterm refexplicitrefwarnh?SiPuh1hhAhBhCK-h!jubah"}(h$]h&]h+]SiPah-]h/]uh1h hAhBhCK-h!hhhubh )}(h.. |SIP| replace:: :term:`SIP`h]h)}(h :term:`SIP`h]h)}(hjh]hSIP}(hhh!jubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!jubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjreftypeterm refexplicitrefwarnh?SIPuh1hhAhBhCK.h!jubah"}(h$]h&]h+]SIPah-]h/]uh1h hAhBhCK.h!hhhubh )}(h.. |SMC| replace:: :term:`SMC`h]h)}(h :term:`SMC`h]h)}(hjh]hSMC}(hhh!jubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!jubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjreftypeterm refexplicitrefwarnh?SMCuh1hhAhBhCK/h!jubah"}(h$]h&]h+]SMCah-]h/]uh1h hAhBhCK/h!hhhubh )}(h".. |SMCCC| replace:: :term:`SMCCC`h]h)}(h :term:`SMCCC`h]h)}(hj h]hSMCCC}(hhh!j ubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!j ubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjreftypeterm refexplicitrefwarnh?SMCCCuh1hhAhBhCK0h!jubah"}(h$]h&]h+]SMCCCah-]h/]uh1h hAhBhCK0h!hhhubh )}(h.. |SoC| replace:: :term:`SoC`h]h)}(h :term:`SoC`h]h)}(hj6h]hSoC}(hhh!j8ubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!j4ubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjBreftypeterm refexplicitrefwarnh?SoCuh1hhAhBhCK1h!j0ubah"}(h$]h&]h+]SoCah-]h/]uh1h hAhBhCK1h!hhhubh )}(h.. |SP| replace:: :term:`SP`h]h)}(h :term:`SP`h]h)}(hjah]hSP}(hhh!jcubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!j_ubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjmreftypeterm refexplicitrefwarnh?SPuh1hhAhBhCK2h!j[ubah"}(h$]h&]h+]SPah-]h/]uh1h hAhBhCK2h!hhhubh )}(h.. |SPD| replace:: :term:`SPD`h]h)}(h :term:`SPD`h]h)}(hjh]hSPD}(hhh!jubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!jubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjreftypeterm refexplicitrefwarnh?SPDuh1hhAhBhCK3h!jubah"}(h$]h&]h+]SPDah-]h/]uh1h hAhBhCK3h!hhhubh )}(h.. |SPM| replace:: :term:`SPM`h]h)}(h :term:`SPM`h]h)}(hjh]hSPM}(hhh!jubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!jubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjreftypeterm refexplicitrefwarnh?SPMuh1hhAhBhCK4h!jubah"}(h$]h&]h+]SPMah-]h/]uh1h hAhBhCK4h!hhhubh )}(h .. |SSBS| replace:: :term:`SSBS`h]h)}(h :term:`SSBS`h]h)}(hjh]hSSBS}(hhh!jubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!jubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjreftypeterm refexplicitrefwarnh?SSBSuh1hhAhBhCK5h!jubah"}(h$]h&]h+]SSBSah-]h/]uh1h hAhBhCK5h!hhhubh )}(h.. |SVE| replace:: :term:`SVE`h]h)}(h :term:`SVE`h]h)}(hj h]hSVE}(hhh!j ubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!j ubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainj reftypeterm refexplicitrefwarnh?SVEuh1hhAhBhCK6h!j ubah"}(h$]h&]h+]SVEah-]h/]uh1h hAhBhCK6h!hhhubh )}(h.. |TBB| replace:: :term:`TBB`h]h)}(h :term:`TBB`h]h)}(hj8 h]hTBB}(hhh!j: ubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!j6 ubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjD reftypeterm refexplicitrefwarnh?TBBuh1hhAhBhCK7h!j2 ubah"}(h$]h&]h+]TBBah-]h/]uh1h hAhBhCK7h!hhhubh )}(h .. |TBBR| replace:: :term:`TBBR`h]h)}(h :term:`TBBR`h]h)}(hjc h]hTBBR}(hhh!je ubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!ja ubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjo reftypeterm refexplicitrefwarnh?TBBRuh1hhAhBhCK8h!j] ubah"}(h$]h&]h+]TBBRah-]h/]uh1h hAhBhCK8h!hhhubh )}(h.. |TEE| replace:: :term:`TEE`h]h)}(h :term:`TEE`h]h)}(hj h]hTEE}(hhh!j ubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!j ubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainj reftypeterm refexplicitrefwarnh?TEEuh1hhAhBhCK9h!j ubah"}(h$]h&]h+]TEEah-]h/]uh1h hAhBhCK9h!hhhubh )}(h .. |TF-A| replace:: :term:`TF-A`h]h)}(h :term:`TF-A`h]h)}(hj h]hTF-A}(hhh!j ubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!j ubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainj reftypeterm refexplicitrefwarnh?TF-Auh1hhAhBhCK:h!j ubah"}(h$]h&]h+]TF-Aah-]h/]uh1h hAhBhCK:h!hhhubh )}(h .. |TF-M| replace:: :term:`TF-M`h]h)}(h :term:`TF-M`h]h)}(hj h]hTF-M}(hhh!j ubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!j ubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainj reftypeterm refexplicitrefwarnh?TF-Muh1hhAhBhCK;h!j ubah"}(h$]h&]h+]TF-Mah-]h/]uh1h hAhBhCK;h!hhhubh )}(h.. |TLB| replace:: :term:`TLB`h]h)}(h :term:`TLB`h]h)}(hj h]hTLB}(hhh!j ubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!j ubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainj reftypeterm refexplicitrefwarnh?TLBuh1hhAhBhCKh!j_ ubah"}(h$]h&]h+]TRNGah-]h/]uh1h hAhBhCK>h!hhhubh )}(h.. |TSP| replace:: :term:`TSP`h]h)}(h :term:`TSP`h]h)}(hj h]hTSP}(hhh!j ubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!j ubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainj reftypeterm refexplicitrefwarnh?TSPuh1hhAhBhCK?h!j ubah"}(h$]h&]h+]TSPah-]h/]uh1h hAhBhCK?h!hhhubh )}(h.. |TZC| replace:: :term:`TZC`h]h)}(h :term:`TZC`h]h)}(hj h]hTZC}(hhh!j ubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!j ubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainj reftypeterm refexplicitrefwarnh?TZCuh1hhAhBhCK@h!j ubah"}(h$]h&]h+]TZCah-]h/]uh1h hAhBhCK@h!hhhubh )}(h".. |UBSAN| replace:: :term:`UBSAN`h]h)}(h :term:`UBSAN`h]h)}(hj h]hUBSAN}(hhh!j ubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!j ubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainj reftypeterm refexplicitrefwarnh?UBSANuh1hhAhBhCKAh!j ubah"}(h$]h&]h+]UBSANah-]h/]uh1h hAhBhCKAh!hhhubh )}(h .. |UEFI| replace:: :term:`UEFI`h]h)}(h :term:`UEFI`h]h)}(hj h]hUEFI}(hhh!j ubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!j ubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainj reftypeterm refexplicitrefwarnh?UEFIuh1hhAhBhCKBh!j ubah"}(h$]h&]h+]UEFIah-]h/]uh1h hAhBhCKBh!hhhubh )}(h .. |WDOG| replace:: :term:`WDOG`h]h)}(h :term:`WDOG`h]h)}(hj< h]hWDOG}(hhh!j> ubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!j: ubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjH reftypeterm refexplicitrefwarnh?WDOGuh1hhAhBhCKCh!j6 ubah"}(h$]h&]h+]WDOGah-]h/]uh1h hAhBhCKCh!hhhubh )}(h!.. |XLAT| replace:: :term:`XLAT` h]h)}(h :term:`XLAT`h]h)}(hjg h]hXLAT}(hhh!ji ubah"}(h$]h&](h(stdstd-termeh+]h-]h/]uh1hh!je ubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjs reftypeterm refexplicitrefwarnh?XLATuh1hhAhBhCKDh!ja ubah"}(h$]h&]h+]XLATah-]h/]uh1h hAhBhCKDh!hhhubh section)}(hhh](h title)}(hCode Review Guidelinesh]hCode Review Guidelines}(hj h!j hhhANhCNubah"}(h$]h&]h+]h-]h/]uh1j h!j hhhA_/home/test/workspace/code/optee_3.16/trusted-firmware-a/docs/process/code-review-guidelines.rsthCKubh paragraph)}(hThis document provides TF-A specific details about the project's code review process. It should be read in conjunction with the `Project Maintenance Process`_, which it supplements.h](hThis document provides TF-A specific details about the project’s code review process. It should be read in conjunction with the }(hThis document provides TF-A specific details about the project's code review process. It should be read in conjunction with the h!j hhhANhCNubh reference)}(h`Project Maintenance Process`_h]hProject Maintenance Process}(hProject Maintenance Processh!j ubah"}(h$]h&]h+]h-]h/]nameProject Maintenance ProcessrefuriRhttps://developer.trustedfirmware.org/w/collaboration/project-maintenance-process/uh1j h!j resolvedKubh, which it supplements.}(h, which it supplements.h!j hhhANhCNubeh"}(h$]h&]h+]h-]h/]uh1j hAj hCKh!j hhubj )}(hhh](j )}(hWhy do we do code reviews?h]hWhy do we do code reviews?}(hj h!j hhhANhCNubah"}(h$]h&]h+]h-]h/]uh1j h!j hhhAj hCK ubj )}(hXTThe main goal of code reviews is to improve the code quality. By reviewing each other's code, we can help catch issues that were missed by the author before they are integrated in the source tree. Different people bring different perspectives, depending on their past work, experiences and their current use cases of TF-A in their products.h]hXVThe main goal of code reviews is to improve the code quality. By reviewing each other’s code, we can help catch issues that were missed by the author before they are integrated in the source tree. Different people bring different perspectives, depending on their past work, experiences and their current use cases of TF-A in their products.}(hj h!j hhhANhCNubah"}(h$]h&]h+]h-]h/]uh1j hAj hCK h!j hhubj )}(hCode reviews also play a key role in sharing knowledge within the community. People with more expertise in one area of the code base can help those that are less familiar with it.h]hCode reviews also play a key role in sharing knowledge within the community. People with more expertise in one area of the code base can help those that are less familiar with it.}(hj h!j hhhANhCNubah"}(h$]h&]h+]h-]h/]uh1j hAj hCKh!j hhubj )}(hCode reviews are meant to benefit everyone through team work. It is not about unfairly criticizing or belittling the work of any contributor.h]hCode reviews are meant to benefit everyone through team work. It is not about unfairly criticizing or belittling the work of any contributor.}(hj h!j hhhANhCNubah"}(h$]h&]h+]h-]h/]uh1j hAj hCKh!j hhubeh"}(h$]why-do-we-do-code-reviewsah&]h+]why do we do code reviews?ah-]h/]uh1j h!j hhhAj hCK ubj )}(hhh](j )}(hGood practicesh]hGood practices}(hj h!j hhhANhCNubah"}(h$]h&]h+]h-]h/]uh1j h!j hhhAj hCKubj )}(hbTo ensure the code review gives the greatest possible benefit, participants in the project should:h]hbTo ensure the code review gives the greatest possible benefit, participants in the project should:}(hj$ h!j" hhhANhCNubah"}(h$]h&]h+]h-]h/]uh1j hAj hCKh!j hhubh bullet_list)}(hhh](h list_item)}(hXBe considerate of other people and their needs. Participants may be working to different timescales, and have different priorities. Keep this in mind - be gracious while waiting for action from others, and timely in your actions when others are waiting for you. h]j )}(hXBe considerate of other people and their needs. Participants may be working to different timescales, and have different priorities. Keep this in mind - be gracious while waiting for action from others, and timely in your actions when others are waiting for you.h]hXBe considerate of other people and their needs. Participants may be working to different timescales, and have different priorities. Keep this in mind - be gracious while waiting for action from others, and timely in your actions when others are waiting for you.}(hj= h!j; ubah"}(h$]h&]h+]h-]h/]uh1j hAj hCK h!j7 ubah"}(h$]h&]h+]h-]h/]uh1j5 h!j2 hhhAj hCNubj6 )}(hXReview other people's patches where possible. The more active reviewers there are, the more quickly new patches can be reviewed and merged. Contributing to code review helps everyone in the long run, as it creates a culture of participation which serves everyone's interests. h]j )}(hXReview other people's patches where possible. The more active reviewers there are, the more quickly new patches can be reviewed and merged. Contributing to code review helps everyone in the long run, as it creates a culture of participation which serves everyone's interests.h]hXReview other people’s patches where possible. The more active reviewers there are, the more quickly new patches can be reviewed and merged. Contributing to code review helps everyone in the long run, as it creates a culture of participation which serves everyone’s interests.}(hjU h!jS ubah"}(h$]h&]h+]h-]h/]uh1j hAj hCK%h!jO ubah"}(h$]h&]h+]h-]h/]uh1j5 h!j2 hhhAj hCNubeh"}(h$]h&]h+]h-]h/]bullet-uh1j0 hAj hCK h!j hhubeh"}(h$]good-practicesah&]h+]good practicesah-]h/]uh1j h!j hhhAj hCKubj )}(hhh](j )}(h!Guidelines for patch contributorsh]h!Guidelines for patch contributors}(hj| h!jz hhhANhCNubah"}(h$]h&]h+]h-]h/]uh1j h!jw hhhAj hCK,ubj )}(hpIn addition to the rules outlined in the :ref:`Contributor's Guide`, as a patch contributor you are expected to:h](h)In addition to the rules outlined in the }(h)In addition to the rules outlined in the h!j hhhANhCNubh)}(h:ref:`Contributor's Guide`h]h)}(hj h]hContributor’s Guide}(hhh!j ubah"}(h$]h&](h(stdstd-refeh+]h-]h/]uh1hh!j ubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainj reftyperef refexplicitrefwarnh?contributor's guideuh1hhAj hCK.h!j ubh-, as a patch contributor you are expected to:}(h-, as a patch contributor you are expected to:h!j hhhANhCNubeh"}(h$]h&]h+]h-]h/]uh1j hAj hCK.h!jw hhubj1 )}(hhh](j6 )}(hJAnswer all comments from people who took the time to review your patches. h]j )}(hIAnswer all comments from people who took the time to review your patches.h]hIAnswer all comments from people who took the time to review your patches.}(hj h!j ubah"}(h$]h&]h+]h-]h/]uh1j hAj hCK1h!j ubah"}(h$]h&]h+]h-]h/]uh1j5 h!j hhhAj hCNubj6 )}(hXBe patient and resilient. It is quite common for patches to go through several rounds of reviews and rework before they get approved, especially for larger features. In the event that a code review takes longer than you would hope for, you may try the following actions to speed it up: h](j )}(hBe patient and resilient. It is quite common for patches to go through several rounds of reviews and rework before they get approved, especially for larger features.h]hBe patient and resilient. It is quite common for patches to go through several rounds of reviews and rework before they get approved, especially for larger features.}(hj h!j ubah"}(h$]h&]h+]h-]h/]uh1j hAj hCK4h!j ubj )}(hwIn the event that a code review takes longer than you would hope for, you may try the following actions to speed it up:h]hwIn the event that a code review takes longer than you would hope for, you may try the following actions to speed it up:}(hj h!j ubah"}(h$]h&]h+]h-]h/]uh1j hAj hCK8h!j ubeh"}(h$]h&]h+]h-]h/]uh1j5 h!j hhhAj hCNubeh"}(h$]h&]h+]h-]h/]jm jn uh1j0 hAj hCK1h!jw hhubh block_quote)}(hhh]j1 )}(hhh](j6 )}(hPing the reviewers on Gerrit or on the mailing list. If it is urgent, explain why. Please remain courteous and do not abuse this. h]j )}(hPing the reviewers on Gerrit or on the mailing list. If it is urgent, explain why. Please remain courteous and do not abuse this.h]hPing the reviewers on Gerrit or on the mailing list. If it is urgent, explain why. Please remain courteous and do not abuse this.}(hj h!j ubah"}(h$]h&]h+]h-]h/]uh1j hAj hCK;h!j ubah"}(h$]h&]h+]h-]h/]uh1j5 h!j ubj6 )}(heIf one code owner has become unresponsive, ask the other code owners for help progressing the patch. h]j )}(hdIf one code owner has become unresponsive, ask the other code owners for help progressing the patch.h]hdIf one code owner has become unresponsive, ask the other code owners for help progressing the patch.}(hj) h!j' ubah"}(h$]h&]h+]h-]h/]uh1j hAj hCK>h!j# ubah"}(h$]h&]h+]h-]h/]uh1j5 h!j ubj6 )}(hpIf there is only one code owner and they have become unresponsive, ask one of the project maintainers for help. h]j )}(hoIf there is only one code owner and they have become unresponsive, ask one of the project maintainers for help.h]hoIf there is only one code owner and they have become unresponsive, ask one of the project maintainers for help.}(hjA h!j? ubah"}(h$]h&]h+]h-]h/]uh1j hAj hCKAh!j; ubah"}(h$]h&]h+]h-]h/]uh1j5 h!j ubeh"}(h$]h&]h+]h-]h/]jm jn uh1j0 hAj hCK;h!j ubah"}(h$]h&]h+]h-]h/]uh1j h!jw hhhANhCNubj1 )}(hhh]j6 )}(hXDo the right thing for the project, not the fastest thing to get code merged. For example, if some existing piece of code - say a driver - does not quite meet your exact needs, go the extra mile and extend the code with the missing functionality you require - as opposed to copying the code into some other directory to have the freedom to change it in any way. This way, your changes benefit everyone and will be maintained over time. h](j )}(hMDo the right thing for the project, not the fastest thing to get code merged.h]hMDo the right thing for the project, not the fastest thing to get code merged.}(hjh h!jf ubah"}(h$]h&]h+]h-]h/]uh1j hAj hCKDh!jb ubj )}(hXeFor example, if some existing piece of code - say a driver - does not quite meet your exact needs, go the extra mile and extend the code with the missing functionality you require - as opposed to copying the code into some other directory to have the freedom to change it in any way. This way, your changes benefit everyone and will be maintained over time.h]hXeFor example, if some existing piece of code - say a driver - does not quite meet your exact needs, go the extra mile and extend the code with the missing functionality you require - as opposed to copying the code into some other directory to have the freedom to change it in any way. This way, your changes benefit everyone and will be maintained over time.}(hjv h!jt ubah"}(h$]h&]h+]h-]h/]uh1j hAj hCKFh!jb ubeh"}(h$]h&]h+]h-]h/]uh1j5 h!j_ hhhAj hCNubah"}(h$]h&]h+]h-]h/]jm jn uh1j0 hAj hCKDh!jw hhubeh"}(h$]!guidelines-for-patch-contributorsah&]h+]!guidelines for patch contributorsah-]h/]uh1j h!j hhhAj hCK,ubj )}(hhh](j )}(hGuidelines for all reviewersh]hGuidelines for all reviewers}(hj h!j hhhANhCNubah"}(h$]h&]h+]h-]h/]uh1j h!j hhhAj hCKNubj )}(hThere are no good or bad review comments. If you have any doubt about a patch or need some clarifications, it's better to ask rather than letting a potential issue slip. Examples of review comments could be:h]hThere are no good or bad review comments. If you have any doubt about a patch or need some clarifications, it’s better to ask rather than letting a potential issue slip. Examples of review comments could be:}(hj h!j hhhANhCNubah"}(h$]h&]h+]h-]h/]uh1j hAj hCKPh!j hhubj1 )}(hhh](j6 )}(h?Questions ("Why do you need to do this?", "What if X happens?")h]j )}(hj h]hGQuestions (“Why do you need to do this?”, “What if X happens?”)}(hj h!j ubah"}(h$]h&]h+]h-]h/]uh1j hAj hCKTh!j ubah"}(h$]h&]h+]h-]h/]uh1j5 h!j hhhAj hCNubj6 )}(hBBugs ("I think you need a logical \|\| rather than a bitwise \|.")h]j )}(hj h]hFBugs (“I think you need a logical || rather than a bitwise |.”)}(hBBugs ("I think you need a logical \|\| rather than a bitwise \|.")h!j ubah"}(h$]h&]h+]h-]h/]uh1j hAj hCKUh!j ubah"}(h$]h&]h+]h-]h/]uh1j5 h!j hhhAj hCNubj6 )}(hDDesign issues ("This won't scale well when we introduce feature X.")h]j )}(hj h]hJDesign issues (“This won’t scale well when we introduce feature X.”)}(hj h!j ubah"}(h$]h&]h+]h-]h/]uh1j hAj hCKVh!j ubah"}(h$]h&]h+]h-]h/]uh1j5 h!j hhhAj hCNubj6 )}(h:Improvements ("Would it be better if we did Y instead?") h]j )}(h8Improvements ("Would it be better if we did Y instead?")h]h` page, along with the module(s) they look after.h](hCode owners are listed on the }(hCode owners are listed on the h!j5hhhANhCNubh)}(h':ref:`Project Maintenance`h]h)}(hj@h]hProject Maintenance}(hhh!jBubah"}(h$]h&](h(stdstd-refeh+]h-]h/]uh1hh!j>ubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjLreftyperef refexplicitrefwarnh? code ownersuh1hhAj hCK]h!j5ubh0 page, along with the module(s) they look after.}(h0 page, along with the module(s) they look after.h!j5hhhANhCNubeh"}(h$]h&]h+]h-]h/]uh1j hAj hCK]h!j$hhubj )}(hHWhen reviewing a patch, code owners are expected to check the following:h]hHWhen reviewing a patch, code owners are expected to check the following:}(hjkh!jihhhANhCNubah"}(h$]h&]h+]h-]h/]uh1j hAj hCK`h!j$hhubj1 )}(hhh]j6 )}(hBThe patch looks good from a technical point of view. For example: h]j )}(hAThe patch looks good from a technical point of view. For example:h]hAThe patch looks good from a technical point of view. For example:}(hjh!j~ubah"}(h$]h&]h+]h-]h/]uh1j hAj hCKbh!jzubah"}(h$]h&]h+]h-]h/]uh1j5 h!jwhhhAj hCNubah"}(h$]h&]h+]h-]h/]jm jn uh1j0 hAj hCKbh!j$hhubj )}(hhh]j1 )}(hhh](j6 )}(h$The structure of the code is clear. h]j )}(h#The structure of the code is clear.h]h#The structure of the code is clear.}(hjh!jubah"}(h$]h&]h+]h-]h/]uh1j hAj hCKdh!jubah"}(h$]h&]h+]h-]h/]uh1j5 h!jubj6 )}(hWIt complies with the relevant standards or technical documentation (where applicable). h]j )}(hVIt complies with the relevant standards or technical documentation (where applicable).h]hVIt complies with the relevant standards or technical documentation (where applicable).}(hjh!jubah"}(h$]h&]h+]h-]h/]uh1j hAj hCKfh!jubah"}(h$]h&]h+]h-]h/]uh1j5 h!jubj6 )}(hQIt leverages existing interfaces rather than introducing new ones unnecessarily. h]j )}(hPIt leverages existing interfaces rather than introducing new ones unnecessarily.h]hPIt leverages existing interfaces rather than introducing new ones unnecessarily.}(hjh!jubah"}(h$]h&]h+]h-]h/]uh1j hAj hCKih!jubah"}(h$]h&]h+]h-]h/]uh1j5 h!jubj6 )}(h*It fits well in the design of the module. h]j )}(h)It fits well in the design of the module.h]h)It fits well in the design of the module.}(hjh!jubah"}(h$]h&]h+]h-]h/]uh1j hAj hCKlh!jubah"}(h$]h&]h+]h-]h/]uh1j5 h!jubj6 )}(hIt adheres to the security model of the project. In particular, it does not increase the attack surface (e.g. new SMCs) without justification. h]j )}(hIt adheres to the security model of the project. In particular, it does not increase the attack surface (e.g. new SMCs) without justification.h]hIt adheres to the security model of the project. In particular, it does not increase the attack surface (e.g. new SMCs) without justification.}(hjh!jubah"}(h$]h&]h+]h-]h/]uh1j hAj hCKnh!jubah"}(h$]h&]h+]h-]h/]uh1j5 h!jubeh"}(h$]h&]h+]h-]h/]jm jn uh1j0 hAj hCKdh!jubah"}(h$]h&]h+]h-]h/]uh1j h!j$hhhANhCNubj1 )}(hhh](j6 )}(hlThe patch adheres to the TF-A :ref:`Coding Style`. The CI system should help catch coding style violations. h]j )}(hkThe patch adheres to the TF-A :ref:`Coding Style`. The CI system should help catch coding style violations.h](hThe patch adheres to the TF-A }(hThe patch adheres to the TF-A h!j)ubh)}(h:ref:`Coding Style`h]h)}(hj4h]h Coding Style}(hhh!j6ubah"}(h$]h&](h(stdstd-refeh+]h-]h/]uh1hh!j2ubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainj@reftyperef refexplicitrefwarnh? coding styleuh1hhAj hCKqh!j)ubh:. The CI system should help catch coding style violations.}(h:. The CI system should help catch coding style violations.h!j)ubeh"}(h$]h&]h+]h-]h/]uh1j hAj hCKqh!j%ubah"}(h$]h&]h+]h-]h/]uh1j5 h!j"hhhAj hCNubj6 )}(h(Only applicable to generic code) The code is MISRA-compliant (see :ref:`misra-compliance`). The CI system should help catch violations. h]j )}(h(Only applicable to generic code) The code is MISRA-compliant (see :ref:`misra-compliance`). The CI system should help catch violations.h](hC(Only applicable to generic code) The code is MISRA-compliant (see }(hC(Only applicable to generic code) The code is MISRA-compliant (see h!jgubh)}(h:ref:`misra-compliance`h]h)}(hjrh]hmisra-compliance}(hhh!jtubah"}(h$]h&](h(stdstd-refeh+]h-]h/]uh1hh!jpubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainj~reftyperef refexplicitrefwarnh?misra-complianceuh1hhAj hCKth!jgubh.). The CI system should help catch violations.}(h.). The CI system should help catch violations.h!jgubeh"}(h$]h&]h+]h-]h/]uh1j hAj hCKth!jcubah"}(h$]h&]h+]h-]h/]uh1j5 h!j"hhhAj hCNubj6 )}(h6Documentation is provided/updated (where applicable). h]j )}(h5Documentation is provided/updated (where applicable).h]h5Documentation is provided/updated (where applicable).}(hjh!jubah"}(h$]h&]h+]h-]h/]uh1j hAj hCKwh!jubah"}(h$]h&]h+]h-]h/]uh1j5 h!j"hhhAj hCNubj6 )}(hThe patch has had an appropriate level of testing. Testing details are expected to be provided by the patch author. If they are not, do not hesitate to request this information. h]j )}(hThe patch has had an appropriate level of testing. Testing details are expected to be provided by the patch author. If they are not, do not hesitate to request this information.h]hThe patch has had an appropriate level of testing. Testing details are expected to be provided by the patch author. If they are not, do not hesitate to request this information.}(hjh!jubah"}(h$]h&]h+]h-]h/]uh1j hAj hCKyh!jubah"}(h$]h&]h+]h-]h/]uh1j5 h!j"hhhAj hCNubj6 )}(hAll CI automated tests pass. h]j )}(hAll CI automated tests pass.h]hAll CI automated tests pass.}(hjh!jubah"}(h$]h&]h+]h-]h/]uh1j hAj hCK}h!jubah"}(h$]h&]h+]h-]h/]uh1j5 h!j"hhhAj hCNubeh"}(h$]h&]h+]h-]h/]jm jn uh1j0 hAj hCKqh!j$hhubj )}(hIf a code owner is happy with a patch, they should give their approval through the ``Code-Owner-Review+1`` label in Gerrit. If instead, they have concerns, questions, or any other type of blocking comment, they should set ``Code-Owner-Review-1``.h](hSIf a code owner is happy with a patch, they should give their approval through the }(hSIf a code owner is happy with a patch, they should give their approval through the h!jhhhANhCNubh literal)}(h``Code-Owner-Review+1``h]hCode-Owner-Review+1}(hhh!jubah"}(h$]h&]h+]h-]h/]uh1jh!jubht label in Gerrit. If instead, they have concerns, questions, or any other type of blocking comment, they should set }(ht label in Gerrit. If instead, they have concerns, questions, or any other type of blocking comment, they should set h!jhhhANhCNubj)}(h``Code-Owner-Review-1``h]hCode-Owner-Review-1}(hhh!j ubah"}(h$]h&]h+]h-]h/]uh1jh!jubh.}(h.h!jhhhANhCNubeh"}(h$]h&]h+]h-]h/]uh1j hAj hCKh!j$hhubj )}(heCode owners are expected to behave professionally and responsibly. Here are some guidelines for them:h]heCode owners are expected to behave professionally and responsibly. Here are some guidelines for them:}(hj(h!j&hhhANhCNubah"}(h$]h&]h+]h-]h/]uh1j hAj hCKh!j$hhubj1 )}(hhh](j6 )}(hXOnce you are engaged in a review, make sure you stay involved until the patch is merged. Rejecting a patch and going away is not very helpful. You are expected to monitor the patch author's answers to your review comments, answer back if needed and review new revisions of their patch. h]j )}(hXOnce you are engaged in a review, make sure you stay involved until the patch is merged. Rejecting a patch and going away is not very helpful. You are expected to monitor the patch author's answers to your review comments, answer back if needed and review new revisions of their patch.h]hXOnce you are engaged in a review, make sure you stay involved until the patch is merged. Rejecting a patch and going away is not very helpful. You are expected to monitor the patch author’s answers to your review comments, answer back if needed and review new revisions of their patch.}(hj=h!j;ubah"}(h$]h&]h+]h-]h/]uh1j hAj hCKh!j7ubah"}(h$]h&]h+]h-]h/]uh1j5 h!j4hhhAj hCNubj6 )}(hProvide constructive feedback. Just saying, "This is wrong, you should do X instead." is usually not very helpful. The patch author is unlikely to understand why you are requesting this change and might feel personally attacked. h]j )}(hProvide constructive feedback. Just saying, "This is wrong, you should do X instead." is usually not very helpful. The patch author is unlikely to understand why you are requesting this change and might feel personally attacked.h]hProvide constructive feedback. Just saying, “This is wrong, you should do X instead.” is usually not very helpful. The patch author is unlikely to understand why you are requesting this change and might feel personally attacked.}(hjUh!jSubah"}(h$]h&]h+]h-]h/]uh1j hAj hCKh!jOubah"}(h$]h&]h+]h-]h/]uh1j5 h!j4hhhAj hCNubj6 )}(hX$Be mindful when reviewing a patch. As a code owner, you are viewed as the expert for the relevant module. By approving a patch, you are partially responsible for its quality and the effects it has for all TF-A users. Make sure you fully understand what the implications of a patch might be. h]j )}(hX"Be mindful when reviewing a patch. As a code owner, you are viewed as the expert for the relevant module. By approving a patch, you are partially responsible for its quality and the effects it has for all TF-A users. Make sure you fully understand what the implications of a patch might be.h]hX"Be mindful when reviewing a patch. As a code owner, you are viewed as the expert for the relevant module. By approving a patch, you are partially responsible for its quality and the effects it has for all TF-A users. Make sure you fully understand what the implications of a patch might be.}(hjmh!jkubah"}(h$]h&]h+]h-]h/]uh1j hAj hCKh!jgubah"}(h$]h&]h+]h-]h/]uh1j5 h!j4hhhAj hCNubeh"}(h$]h&]h+]h-]h/]jm jn uh1j0 hAj hCKh!j$hhubeh"}(h$]guidelines-for-code-ownersah&]h+]guidelines for code ownersah-]h/]uh1j h!j hhhAj hCK[ubj )}(hhh](j )}(hGuidelines for maintainersh]hGuidelines for maintainers}(hjh!jhhhANhCNubah"}(h$]h&]h+]h-]h/]uh1j h!jhhhAj hCKubj )}(hKMaintainers are listed on the :ref:`Project Maintenance` page.h](hMaintainers are listed on the }(hMaintainers are listed on the h!jhhhANhCNubh)}(h':ref:`Project Maintenance`h]h)}(hjh]hProject Maintenance}(hhh!jubah"}(h$]h&](h(stdstd-refeh+]h-]h/]uh1hh!jubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjreftyperef refexplicitrefwarnh? maintainersuh1hhAj hCKh!jubh page.}(h page.h!jhhhANhCNubeh"}(h$]h&]h+]h-]h/]uh1j hAj hCKh!jhhubj )}(hHWhen reviewing a patch, maintainers are expected to check the following:h]hHWhen reviewing a patch, maintainers are expected to check the following:}(hjh!jhhhANhCNubah"}(h$]h&]h+]h-]h/]uh1j hAj hCKh!jhhubj1 )}(hhh](j6 )}(hXuThe general structure of the patch looks good. This covers things like: - Code organization. - Files and directories, names and locations. For example, platform code should be added under the ``plat/`` directory. - Naming conventions. For example, platform identifiers should be properly namespaced to avoid name clashes with generic code. - API design. h](j )}(hGThe general structure of the patch looks good. This covers things like:h]hGThe general structure of the patch looks good. This covers things like:}(hjh!jubah"}(h$]h&]h+]h-]h/]uh1j hAj hCKh!jubj1 )}(hhh](j6 )}(hCode organization. h]j )}(hCode organization.h]hCode organization.}(hjh!jubah"}(h$]h&]h+]h-]h/]uh1j hAj hCKh!jubah"}(h$]h&]h+]h-]h/]uh1j5 h!jubj6 )}(hwFiles and directories, names and locations. For example, platform code should be added under the ``plat/`` directory. h](j )}(h+Files and directories, names and locations.h]h+Files and directories, names and locations.}(hjh!jubah"}(h$]h&]h+]h-]h/]uh1j hAj hCKh!jubj )}(hIFor example, platform code should be added under the ``plat/`` directory.h](h5For example, platform code should be added under the }(h5For example, platform code should be added under the h!j"ubj)}(h ``plat/``h]hplat/}(hhh!j+ubah"}(h$]h&]h+]h-]h/]uh1jh!j"ubh directory.}(h directory.h!j"ubeh"}(h$]h&]h+]h-]h/]uh1j hAj hCKh!jubeh"}(h$]h&]h+]h-]h/]uh1j5 h!jubj6 )}(h~Naming conventions. For example, platform identifiers should be properly namespaced to avoid name clashes with generic code. h](j )}(hNaming conventions.h]hNaming conventions.}(hjPh!jNubah"}(h$]h&]h+]h-]h/]uh1j hAj hCKh!jJubj )}(hhFor example, platform identifiers should be properly namespaced to avoid name clashes with generic code.h]hhFor example, platform identifiers should be properly namespaced to avoid name clashes with generic code.}(hj^h!j\ubah"}(h$]h&]h+]h-]h/]uh1j hAj hCKh!jJubeh"}(h$]h&]h+]h-]h/]uh1j5 h!jubj6 )}(h API design. h]j )}(h API design.h]h API design.}(hjvh!jtubah"}(h$]h&]h+]h-]h/]uh1j hAj hCKh!jpubah"}(h$]h&]h+]h-]h/]uh1j5 h!jubeh"}(h$]h&]h+]h-]h/]jm jn uh1j0 hAj hCKh!jubeh"}(h$]h&]h+]h-]h/]uh1j5 h!jhhhANhCNubj6 )}(h>Interaction of the patch with other modules in the code base. h]j )}(h=Interaction of the patch with other modules in the code base.h]h=Interaction of the patch with other modules in the code base.}(hjh!jubah"}(h$]h&]h+]h-]h/]uh1j hAj hCKh!jubah"}(h$]h&]h+]h-]h/]uh1j5 h!jhhhAj hCNubj6 )}(hWThe patch aims at complying with any standard or technical documentation that applies. h]j )}(hVThe patch aims at complying with any standard or technical documentation that applies.h]hVThe patch aims at complying with any standard or technical documentation that applies.}(hjh!jubah"}(h$]h&]h+]h-]h/]uh1j hAj hCKh!jubah"}(h$]h&]h+]h-]h/]uh1j5 h!jhhhAj hCNubj6 )}(hNew files must have the correct license and copyright headers. See :ref:`this paragraph` for more information. The CI system should help catch files with incorrect or no copyright/license headers. h]j )}(hNew files must have the correct license and copyright headers. See :ref:`this paragraph` for more information. The CI system should help catch files with incorrect or no copyright/license headers.h](hCNew files must have the correct license and copyright headers. See }(hCNew files must have the correct license and copyright headers. See h!jubh)}(h1:ref:`this paragraph`h]h)}(hjh]hthis paragraph}(hhh!jubah"}(h$]h&](h(stdstd-refeh+]h-]h/]uh1hh!jubah"}(h$]h&]h+]h-]h/]refdoch9 refdomainjreftyperef refexplicitrefwarnh?copyright-license-guidanceuh1hhAj hCKh!jubhl for more information. The CI system should help catch files with incorrect or no copyright/license headers.}(hl for more information. The CI system should help catch files with incorrect or no copyright/license headers.h!jubeh"}(h$]h&]h+]h-]h/]uh1j hAj hCKh!jubah"}(h$]h&]h+]h-]h/]uh1j5 h!jhhhAj hCNubj6 )}(hThere is no third party code or binary blobs with potential IP concerns. Maintainers should look for copyright or license notices in code, and use their best judgement. If they are unsure about a patch, they should ask other maintainers for help. h]j )}(hThere is no third party code or binary blobs with potential IP concerns. Maintainers should look for copyright or license notices in code, and use their best judgement. If they are unsure about a patch, they should ask other maintainers for help.h]hThere is no third party code or binary blobs with potential IP concerns. Maintainers should look for copyright or license notices in code, and use their best judgement. If they are unsure about a patch, they should ask other maintainers for help.}(hjh!jubah"}(h$]h&]h+]h-]h/]uh1j hAj hCKh!jubah"}(h$]h&]h+]h-]h/]uh1j5 h!jhhhAj hCNubj6 )}(hGenerally speaking, new driver code should be placed in the generic layer. There are cases where a driver has to stay into the platform layer but this should be the exception, rather than the rule. h]j )}(hGenerally speaking, new driver code should be placed in the generic layer. There are cases where a driver has to stay into the platform layer but this should be the exception, rather than the rule.h]hGenerally speaking, new driver code should be placed in the generic layer. There are cases where a driver has to stay into the platform layer but this should be the exception, rather than the rule.}(hj h!jubah"}(h$]h&]h+]h-]h/]uh1j hAj hCKh!jubah"}(h$]h&]h+]h-]h/]uh1j5 h!jhhhAj hCNubj6 )}(hXExisting common drivers (in particular for Arm IPs like the GIC driver) should not be copied into the platform layer to cater for platform quirks. This type of code duplication hurts the maintainability of the project. The duplicate driver is less likely to benefit from bug fixes and future enhancements. In most cases, it is possible to rework a generic driver to make it more flexible and fit slightly different use cases. That way, these enhancements benefit everyone. h]j )}(hXExisting common drivers (in particular for Arm IPs like the GIC driver) should not be copied into the platform layer to cater for platform quirks. This type of code duplication hurts the maintainability of the project. The duplicate driver is less likely to benefit from bug fixes and future enhancements. In most cases, it is possible to rework a generic driver to make it more flexible and fit slightly different use cases. That way, these enhancements benefit everyone.h]hXExisting common drivers (in particular for Arm IPs like the GIC driver) should not be copied into the platform layer to cater for platform quirks. This type of code duplication hurts the maintainability of the project. The duplicate driver is less likely to benefit from bug fixes and future enhancements. In most cases, it is possible to rework a generic driver to make it more flexible and fit slightly different use cases. That way, these enhancements benefit everyone.}(hj8h!j6ubah"}(h$]h&]h+]h-]h/]uh1j hAj hCKh!j2ubah"}(h$]h&]h+]h-]h/]uh1j5 h!jhhhAj hCNubj6 )}(hWhen a platform specific driver really is required, the burden lies with the patch author to prove the need for it. A detailed justification should be posted via the commit message or on the mailing list. h]j )}(hWhen a platform specific driver really is required, the burden lies with the patch author to prove the need for it. A detailed justification should be posted via the commit message or on the mailing list.h]hWhen a platform specific driver really is required, the burden lies with the patch author to prove the need for it. A detailed justification should be posted via the commit message or on the mailing list.}(hjPh!jNubah"}(h$]h&]h+]h-]h/]uh1j hAj hCKh!jJubah"}(h$]h&]h+]h-]h/]uh1j5 h!jhhhAj hCNubj6 )}(hBefore merging a patch, verify that all review comments have been addressed. If this is not the case, encourage the patch author and the relevant reviewers to resolve these together. h]j )}(hBefore merging a patch, verify that all review comments have been addressed. If this is not the case, encourage the patch author and the relevant reviewers to resolve these together.h]hBefore merging a patch, verify that all review comments have been addressed. If this is not the case, encourage the patch author and the relevant reviewers to resolve these together.}(hjhh!jfubah"}(h$]h&]h+]h-]h/]uh1j hAj hCKh!jbubah"}(h$]h&]h+]h-]h/]uh1j5 h!jhhhAj hCNubeh"}(h$]h&]h+]h-]h/]jm jn uh1j0 hAj hCKh!jhhubj )}(hIf a maintainer is happy with a patch, they should give their approval through the ``Maintainer-Review+1`` label in Gerrit. If instead, they have concerns, questions, or any other type of blocking comment, they should set ``Maintainer-Review-1``.h](hSIf a maintainer is happy with a patch, they should give their approval through the }(hSIf a maintainer is happy with a patch, they should give their approval through the h!jhhhANhCNubj)}(h``Maintainer-Review+1``h]hMaintainer-Review+1}(hhh!jubah"}(h$]h&]h+]h-]h/]uh1jh!jubht label in Gerrit. If instead, they have concerns, questions, or any other type of blocking comment, they should set }(ht label in Gerrit. If instead, they have concerns, questions, or any other type of blocking comment, they should set h!jhhhANhCNubj)}(h``Maintainer-Review-1``h]hMaintainer-Review-1}(hhh!jubah"}(h$]h&]h+]h-]h/]uh1jh!jubh.}(hjh!jhhhANhCNubeh"}(h$]h&]h+]h-]h/]uh1j hAj hCKh!jhhubh transition)}(h--------------h]h"}(h$]h&]h+]h-]h/]uh1jhAj hCKh!jhhubj )}(h7*Copyright (c) 2020, Arm Limited. All rights reserved.*h]h emphasis)}(hjh]h5Copyright (c) 2020, Arm Limited. All rights reserved.}(hhh!jubah"}(h$]h&]h+]h-]h/]uh1jh!jubah"}(h$]h&]h+]h-]h/]uh1j hAj hCKh!jhhubh target)}(hs.. _Project Maintenance Process: https://developer.trustedfirmware.org/w/collaboration/project-maintenance-process/h]h"}(h$]project-maintenance-processah&]h+]project maintenance processah-]h/]j j uh1jhCMh!jhhhAj referencedKubeh"}(h$]guidelines-for-maintainersah&]h+]guidelines for maintainersah-]h/]uh1j h!j hhhAj hCKubeh"}(h$]code-review-guidelinesah&]h+]code review guidelinesah-]h/]uh1j h!hhhhAj hCKubeh"}(h$]h&]h+]h-]h/]sourcej uh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(j N generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_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_handlerjerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourcej _destinationN _config_files]pep_referencesN pep_base_url https://www.python.org/dev/peps/pep_file_url_templatepep-%04drfc_referencesN rfc_base_urlhttps://tools.ietf.org/html/ tab_widthKtrim_footnote_reference_spacefile_insertion_enabled raw_enabledKsyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xformembed_stylesheetcloak_email_addressesenvNubreporterNindirect_targets]substitution_defs}(hHh hshKhhvhhhhjhjJj"jujMjjxjjjjj!jjLj$jwjOjjzjjjjj#jjNj&jyjQjj|jjjjj%jjPj(j{jSjj~jjjjj'jjRj*j}jUjjjjjjj)jjTj,jjWjjjjjjj+jjVj.jjYjjjjjjj-jjXj0jj[jjjjj jj/ j jZ j2 j j] j j j j j j j1 j j\ j4 j j_ j j j j j j j3 j j^ j6 j ja usubstitution_names}(aarch32hHaarch64hsamuhamushɌapihbtijcotjucssjcvejdtbjds-5j!dsujLdtjweljehfjfconfjfdtj#ff-ajNfipjyfvpjfwujgicjisaj%linarojPmmuj{mpamjmpmmjmpidrjmtej'oenjRop-teej}otejpddjpauthjpmfj)pscijTrasjrotjscmijscpjsdeij+sdsjVseajsipjsmcjsmcccj-socjXspjspdjspmjssbsj svej/ tbbjZ tbbrj teej tf-aj tf-mj tlbj1 tlkj\ trngj tspj tzcj ubsanj uefij3 wdogj^ xlatj urefnames}project maintenance process]j asrefids}nameids}(jjj j jt jq j j j!jjjjjjju nametypes}(jNj Njt Nj Nj!NjNjNjuh$}(jj j j jq j j jw jj jj$jjjju 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 decorationNhhub.