1/* 2 * Copyright 2016, General Dynamics C4 Systems 3 * 4 * SPDX-License-Identifier: GPL-2.0-only 5 */ 6 7#pragma once 8 9#include <types.h> 10#include <api/failures.h> 11#include <object/structures.h> 12 13#ifdef CONFIG_TK1_SMMU 14 15seL4_SlotRegion create_iospace_caps(cap_t root_cnode_cap); 16exception_t decodeARMIOPTInvocation(word_t invLabel, uint32_t length, cte_t *slot, cap_t cap, extra_caps_t excaps, 17 word_t *buffer); 18exception_t decodeARMIOMapInvocation(word_t invLabel, uint32_t length, cte_t *slot, cap_t cap, extra_caps_t excaps, 19 word_t *buffer); 20exception_t performPageInvocationUnmapIO(cap_t cap, cte_t *slot); 21exception_t decodeARMIOSpaceInvocation(word_t invLabel, cap_t cap); 22void unmapIOPage(cap_t cap); 23void deleteIOPageTable(cap_t cap); 24void clearIOPageDirectory(cap_t cap); 25 26#else 27 28/* define dummy functions */ 29static inline seL4_SlotRegion create_iospace_caps(cap_t root_cnode_cap) 30{ 31 return S_REG_EMPTY; 32} 33 34static inline exception_t decodeARMIOPTInvocation(word_t invLabel, uint32_t length, cte_t *slot, cap_t cap, 35 extra_caps_t excaps, word_t *buffer) 36{ 37 return EXCEPTION_NONE; 38} 39 40static inline exception_t decodeARMIOMapInvocation(word_t invLabel, uint32_t length, cte_t *slot, cap_t cap, 41 extra_caps_t excaps, word_t *buffer) 42{ 43 return EXCEPTION_NONE; 44} 45 46static inline exception_t performPageInvocationUnmapIO(cap_t cap, cte_t *slot) 47{ 48 return EXCEPTION_NONE; 49} 50 51static inline exception_t decodeARMIOSpaceInvocation(word_t invLabel, cap_t cap) 52{ 53 return EXCEPTION_NONE; 54} 55 56static inline void unmapIOPage(cap_t cap) 57{ 58} 59 60static inline void deleteIOPageTable(cap_t cap) 61{ 62} 63 64static inline void clearIOPageDirectory(cap_t cap) 65{ 66} 67 68#endif /* end of !CONFIG_TK1_SMMU */ 69 70 71