hypervisor.h (1829d5da5355930d5cfa8ec8add8ff47dc0bebab) hypervisor.h (3a6d1fcf9c8ed864c98e449a0b7696be6c838aea)
1/******************************************************************************
2 * hypervisor.h
3 *
4 * Linux-specific hypervisor handling.
5 *
6 * Copyright (c) 2002, K A Fraser
7 *
8 * $FreeBSD$
9 */
10
1/******************************************************************************
2 * hypervisor.h
3 *
4 * Linux-specific hypervisor handling.
5 *
6 * Copyright (c) 2002, K A Fraser
7 *
8 * $FreeBSD$
9 */
10
11#ifndef __XEN_HYPERVISOR_H__
12#define __XEN_HYPERVISOR_H__
11#ifndef __HYPERVISOR_H__
12#define __HYPERVISOR_H__
13
13
14#ifdef XENHVM
15
16#define is_running_on_xen() (HYPERVISOR_shared_info != NULL)
17
18#else
19
20#define is_running_on_xen() 1
21
14#define is_running_on_xen() 1
15
22#endif
23
24#ifdef PAE
25#ifndef CONFIG_X86_PAE
26#define CONFIG_X86_PAE
27#endif
28#endif
29
30#include <sys/cdefs.h>
31#include <sys/systm.h>
32#include <xen/interface/xen.h>
33#include <xen/interface/platform.h>
34#include <xen/interface/event_channel.h>
35#include <xen/interface/physdev.h>
36#include <xen/interface/sched.h>
37#include <xen/interface/callback.h>
16#ifdef PAE
17#ifndef CONFIG_X86_PAE
18#define CONFIG_X86_PAE
19#endif
20#endif
21
22#include <sys/cdefs.h>
23#include <sys/systm.h>
24#include <xen/interface/xen.h>
25#include <xen/interface/platform.h>
26#include <xen/interface/event_channel.h>
27#include <xen/interface/physdev.h>
28#include <xen/interface/sched.h>
29#include <xen/interface/callback.h>
38#include <xen/interface/memory.h>
39#include <machine/xen/hypercall.h>
40
41#if defined(__amd64__)
42#define MULTI_UVMFLAGS_INDEX 2
43#define MULTI_UVMDOMID_INDEX 3
44#else
45#define MULTI_UVMFLAGS_INDEX 3
46#define MULTI_UVMDOMID_INDEX 4

--- 88 unchanged lines hidden (view full) ---

135static inline void
136MULTI_update_va_mapping(
137 multicall_entry_t *mcl, unsigned long va,
138 uint64_t new_val, unsigned long flags)
139{
140 mcl->op = __HYPERVISOR_update_va_mapping;
141 mcl->args[0] = va;
142#if defined(__amd64__)
30#include <machine/xen/hypercall.h>
31
32#if defined(__amd64__)
33#define MULTI_UVMFLAGS_INDEX 2
34#define MULTI_UVMDOMID_INDEX 3
35#else
36#define MULTI_UVMFLAGS_INDEX 3
37#define MULTI_UVMDOMID_INDEX 4

--- 88 unchanged lines hidden (view full) ---

126static inline void
127MULTI_update_va_mapping(
128 multicall_entry_t *mcl, unsigned long va,
129 uint64_t new_val, unsigned long flags)
130{
131 mcl->op = __HYPERVISOR_update_va_mapping;
132 mcl->args[0] = va;
133#if defined(__amd64__)
143 mcl->args[1] = new_val;
134 mcl->args[1] = new_val.pte;
144#elif defined(PAE)
145 mcl->args[1] = (uint32_t)(new_val & 0xffffffff) ;
146 mcl->args[2] = (uint32_t)(new_val >> 32);
147#else
148 mcl->args[1] = new_val;
149 mcl->args[2] = 0;
150#endif
151 mcl->args[MULTI_UVMFLAGS_INDEX] = flags;
152}
153
135#elif defined(PAE)
136 mcl->args[1] = (uint32_t)(new_val & 0xffffffff) ;
137 mcl->args[2] = (uint32_t)(new_val >> 32);
138#else
139 mcl->args[1] = new_val;
140 mcl->args[2] = 0;
141#endif
142 mcl->args[MULTI_UVMFLAGS_INDEX] = flags;
143}
144
154#endif /* __XEN_HYPERVISOR_H__ */
145#endif /* __HYPERVISOR_H__ */