1/** 2 * \file 3 * \brief Architecture specific dispatcher struct shared between kernel and user 4 */ 5 6/* 7 * Copyright (c) 2015, ETH Zurich. 8 * All rights reserved. 9 * 10 * This file is distributed under the terms in the attached LICENSE file. 11 * If you do not find this file, copies can be found by writing to: 12 * ETH Zurich D-INFK, Universitaetstrasse 6, CH-8092 Zurich. Attn: Systems Group. 13 */ 14 15#ifndef TARGET_AARCH64_BARRELFISH_KPI_DISPATCHER_SHARED_H 16#define TARGET_AARCH64_BARRELFISH_KPI_DISPATCHER_SHARED_H 17 18#include <barrelfish_kpi/dispatcher_shared.h> 19 20///< Architecture specific kernel/user shared dispatcher struct 21struct dispatcher_shared_aarch64 { 22 struct dispatcher_shared_generic d; ///< Generic portion 23 24 lvaddr_t crit_pc_low; ///< Critical section lower PC bound 25 lvaddr_t crit_pc_high; ///< Critical section upper PC bound 26 lvaddr_t got_base; ///< Global Offset Table base 27 28 union registers_aarch64 enabled_save_area; ///< Enabled register save area 29 union registers_aarch64 disabled_save_area; ///< Disabled register save area 30 union registers_aarch64 trap_save_area; ///< Trap register save area 31}; 32 33static inline struct dispatcher_shared_aarch64* 34get_dispatcher_shared_aarch64(dispatcher_handle_t handle) 35{ 36 return (struct dispatcher_shared_aarch64*)handle; 37} 38 39#endif // TARGET_AARCH64_BARRELFISH_KPI_DISPATCHER_SHARED_H 40