67 int size_mask_wrap =
mask(
70 if ((
smmu.regs.cmdq_cons & size_mask_wrap) ==
71 (
smmu.regs.cmdq_prod & size_mask_wrap))
79 smmu.regs.cmdq_cons = (
smmu.regs.cmdq_cons + 1) & size_mask_wrap;
87 smmu.signalDrainDone();
virtual void main(Yield &yield)
void doSleep(Yield &yield)
Coroutine::CallerType Yield
void doRead(Yield &yield, Addr addr, void *ptr, size_t size)
Copyright (c) 2024 Arm Limited All rights reserved.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
This is an implementation of the SMMUv3 architecture.