1 /* 2 * Copyright 2020, Data61, CSIRO (ABN 41 687 119 230) 3 * 4 * SPDX-License-Identifier: GPL-2.0-only 5 */ 6 7 #pragma once 8 9 10 #define SMMU_SID_CNODE_SLOT_BITS 8 11 #define SMMU_CB_CNODE_SLOT_BITS 6 12 #define SID_INVALID SMMU_MAX_SID 13 #define CB_INVALID SMMU_MAX_CB 14 #define ASID_INVALID nASIDs 15 16 17 exception_t decodeARMSIDControlInvocation(word_t label, unsigned int length, cptr_t cptr, 18 cte_t *srcSlot, cap_t cap, 19 bool_t call, word_t *buffer); 20 21 exception_t decodeARMSIDInvocation(word_t label, unsigned int length, cptr_t cptr, 22 cte_t *srcSlot, cap_t cap, bool_t call, word_t *buffer); 23 24 exception_t decodeARMCBControlInvocation(word_t label, unsigned int length, cptr_t cptr, 25 cte_t *srcSlot, cap_t cap, 26 bool_t call, word_t *buffer); 27 28 exception_t decodeARMCBInvocation(word_t label, unsigned int length, cptr_t cptr, 29 cte_t *srcSlot, cap_t cap, bool_t call, word_t *buffer); 30 exception_t smmu_delete_cb(cap_t cap); 31 exception_t smmu_delete_sid(cap_t cap); 32 void smmu_cb_delete_vspace(word_t cb, asid_t asid); 33 void invalidateSMMUTLBByASID(asid_t asid, word_t bind_cb); 34 void invalidateSMMUTLBByASIDVA(asid_t asid, vptr_t vaddr, word_t bind_cb); 35 36