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, Universitaetstrasse 6, CH-8092 Zurich. Attn: Systems Group. 14 */ 15 16#ifndef ARCH_X86_32_BARRELFISH_KPI_REGISTERS_H 17#define ARCH_X86_32_BARRELFISH_KPI_REGISTERS_H 18 19#include <barrelfish_kpi/types.h> // for lvaddr_t 20#include <target/x86_32/barrelfish_kpi/registers_target.h> 21 22///< Opaque handle for the register state 23typedef struct registers_x86_32 arch_registers_state_t; 24 25///< Opaque handle for the FPU register state 26typedef struct registers_fpu_x86_32 arch_registers_fpu_state_t; 27 28static inline void 29registers_set_entry(arch_registers_state_t *regs, lvaddr_t entry) 30{ 31 registers_x86_32_set_entry(regs, entry); 32} 33 34static inline void 35registers_set_param(arch_registers_state_t *regs, uint32_t param) 36{ 37 registers_x86_32_set_param(regs, param); 38} 39 40static inline void 41registers_get_param(arch_registers_state_t *regs, uintptr_t *param) 42{ 43 registers_x86_32_get_param(regs, param); 44} 45 46static inline uint32_t 47registers_get_ip(arch_registers_state_t *regs) 48{ 49 return registers_x86_32_get_ip(regs); 50} 51 52static inline uint32_t 53registers_get_sp(arch_registers_state_t *regs) 54{ 55 return registers_x86_32_get_sp(regs); 56} 57 58#endif // ARCH_X86_32_BARRELFISH_KPI_REGISTERS_H 59