On Thu, Nov 02, 2023 at 05:40:12PM +0800, Ethan Chen wrote: > Signed-off-by: Ethan Chen <etha...@andestech.com> > --- > include/exec/memattrs.h | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/include/exec/memattrs.h b/include/exec/memattrs.h > index d04170aa27..fc15e5d7d3 100644 > --- a/include/exec/memattrs.h > +++ b/include/exec/memattrs.h > @@ -64,6 +64,12 @@ typedef struct MemTxAttrs { > unsigned int target_tlb_bit0 : 1; > unsigned int target_tlb_bit1 : 1; > unsigned int target_tlb_bit2 : 1; > + > + /* IOPMP support up to 65535 sources */ > + unsigned int iopmp_sid:16;
There's MemTxAttrs.requester_id, SID for pci, same length. Reuse it? > + /* Transaction infomation for IOPMP */ > + unsigned long long iopmp_start_addr; > + unsigned long long iopmp_end_addr; PS: encoding addresses into memattrs is.. strange, but since I know nothing about iopmp, I'll leave that for other reviewers. Currently MemTxAttrs are passed as a whole int on the stack, if it keeps growing we may start to consider a pointer, but need to check the side effects of unexpected fields modified within a call. Thanks, -- Peter Xu