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