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