1/** 2 * \file 3 * \brief Arch independent accessor functions for use in generic code 4 * Generic include for kernel 5 */ 6 7/* 8 * Copyright (c) 2010, ETH Zurich. 9 * All rights reserved. 10 * 11 * This file is distributed under the terms in the attached LICENSE file. 12 * If you do not find this file, copies can be found by writing to: 13 * ETH Zurich D-INFK, Haldeneggsteig 4, CH-8092 Zurich. Attn: Systems Group. 14 */ 15 16#ifndef ARCH_X86_64_BARRELFISH_KPI_REGISTERS_H 17#define ARCH_X86_64_BARRELFISH_KPI_REGISTERS_H 18 19#include <barrelfish_kpi/types.h> // for lvaddr_t 20#include <target/x86_64/barrelfish_kpi/registers_target.h> 21 22///< Opaque handle for the register state 23typedef struct registers_x86_64 arch_registers_state_t; 24 25static inline void 26registers_set_entry(arch_registers_state_t *regs, lvaddr_t entry) 27{ 28 registers_x86_64_set_entry(regs, entry); 29} 30 31static inline void 32registers_set_param(arch_registers_state_t *regs, uint64_t param) 33{ 34 registers_x86_64_set_param(regs, param); 35} 36 37static inline void 38registers_get_param(arch_registers_state_t *regs, uintptr_t *param) 39{ 40 registers_x86_64_get_param(regs, param); 41} 42 43static inline uint64_t 44registers_get_ip(arch_registers_state_t *regs) 45{ 46 return registers_x86_64_get_ip(regs); 47} 48 49static inline uint64_t 50registers_get_sp(arch_registers_state_t *regs) 51{ 52 return registers_x86_64_get_sp(regs); 53} 54 55#endif // ARCH_X86_64_BARRELFISH_KPI_REGISTERS_H 56