include/exec: Improve probe_access_full{, _mmu} documentation

Suggested-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-ID: <20241013184733.1423747-2-richard.henderson@linaro.org>
This commit is contained in:
Richard Henderson 2024-10-13 11:47:31 -07:00
parent 9a2a5f1b63
commit 4a75c8c7d6

View File

@ -368,6 +368,13 @@ int probe_access_flags(CPUArchState *env, vaddr addr, int size,
* The CPUTLBEntryFull structure returned via @pfull is transient * The CPUTLBEntryFull structure returned via @pfull is transient
* and must be consumed or copied immediately, before any further * and must be consumed or copied immediately, before any further
* access or changes to TLB @mmu_idx. * access or changes to TLB @mmu_idx.
*
* This function will not fault if @nonfault is set, but will
* return TLB_INVALID_MASK if the page is not mapped, or is not
* accessible with @access_type.
*
* This function will return TLB_MMIO in order to force the access
* to be handled out-of-line if plugins wish to instrument the access.
*/ */
int probe_access_full(CPUArchState *env, vaddr addr, int size, int probe_access_full(CPUArchState *env, vaddr addr, int size,
MMUAccessType access_type, int mmu_idx, MMUAccessType access_type, int mmu_idx,
@ -375,22 +382,14 @@ int probe_access_full(CPUArchState *env, vaddr addr, int size,
CPUTLBEntryFull **pfull, uintptr_t retaddr); CPUTLBEntryFull **pfull, uintptr_t retaddr);
/** /**
* probe_access_mmu() - Like probe_access_full except cannot fault and * probe_access_full_mmu:
* doesn't trigger instrumentation. * Like probe_access_full, except:
* *
* @env: CPUArchState * This function is intended to be used for page table accesses by
* @vaddr: virtual address to probe * the target mmu itself. Since such page walking happens while
* @size: size of the probe * handling another potential mmu fault, this function never raises
* @access_type: read, write or execute permission * exceptions (akin to @nonfault true for probe_access_full).
* @mmu_idx: softmmu index * Likewise this function does not trigger plugin instrumentation.
* @phost: ptr to return value host address or NULL
* @pfull: ptr to return value CPUTLBEntryFull structure or NULL
*
* The CPUTLBEntryFull structure returned via @pfull is transient
* and must be consumed or copied immediately, before any further
* access or changes to TLB @mmu_idx.
*
* Returns: TLB flags as per probe_access_flags()
*/ */
int probe_access_full_mmu(CPUArchState *env, vaddr addr, int size, int probe_access_full_mmu(CPUArchState *env, vaddr addr, int size,
MMUAccessType access_type, int mmu_idx, MMUAccessType access_type, int mmu_idx,