1/* 2 * Copyright 2014, General Dynamics C4 Systems 3 * 4 * SPDX-License-Identifier: GPL-2.0-only 5 */ 6 7#pragma once 8 9#include <arch/object/structures.h> 10#include <arch/api/types.h> 11#include <mode/model/statedata.h> 12 13static inline void setHardwareASID(hw_asid_t hw_asid) 14{ 15 dsb(); 16 flushBTAC(); 17 writeContextID(hw_asid); 18} 19 20static inline void armv_contextSwitch_HWASID(pde_t *cap_pd, hw_asid_t hw_asid) 21{ 22 setCurrentPD(addrFromPPtr(cap_pd)); 23 setHardwareASID(hw_asid); 24} 25 26static inline void armv_contextSwitch(pde_t *cap_pd, asid_t asid) 27{ 28 armv_contextSwitch_HWASID(cap_pd, getHWASID(asid)); 29} 30 31