exec: Add target-specific tlb bits to MemTxAttrs

These bits can be used to cache target-specific data in cputlb
read from the page tables.

Backports commit d3765835ed02f91f0c6cbb452874209a6af4a730 from qemu
This commit is contained in:
Richard Henderson 2019-02-05 17:00:53 -05:00 committed by Lioncash
parent cf3ac035bc
commit 9c2a5963d0
No known key found for this signature in database
GPG Key ID: 4E3C3CC1031BA9C7

View File

@ -35,6 +35,18 @@ typedef struct MemTxAttrs {
unsigned int secure:1; unsigned int secure:1;
/* Memory access is usermode (unprivileged) */ /* Memory access is usermode (unprivileged) */
unsigned int user:1; unsigned int user:1;
/* Requester ID (for MSI for example) */
unsigned int requester_id:16;
/*
* The following are target-specific page-table bits. These are not
* related to actual memory transactions at all. However, this structure
* is part of the tlb_fill interface, cached in the cputlb structure,
* and has unused bits. These fields will be read by target-specific
* helpers using env->iotlb[mmu_idx][tlb_index()].attrs.target_tlb_bitN.
*/
unsigned int target_tlb_bit0 : 1;
unsigned int target_tlb_bit1 : 1;
unsigned int target_tlb_bit2 : 1;
} MemTxAttrs; } MemTxAttrs;
/* Bus masters which don't specify any attributes will get this, /* Bus masters which don't specify any attributes will get this,