ia64/xen-unstable

annotate xen/include/public/arch-ia64.h @ 10692:306d7857928c

[IA64] Save & restore.

xc_ia64_linux_save.c and xc_ia64_linux_restore.c added.
vcpu context has more registers and states (eg: tr registers).
Per cpu irqs are deallocated when cpu is switched off.
#if/#endif added in reboot.c for ia64.

Signed-off-by: Tristan Gingold <tristan.gingold@bull.net>
author awilliam@xenbuild.aw
date Tue Jul 11 12:51:18 2006 -0600 (2006-07-11)
parents 63595abd80c5
children 8d501f39286c
rev   line source
iap10@3833 1 /******************************************************************************
iap10@3833 2 * arch-ia64/hypervisor-if.h
iap10@3833 3 *
iap10@3833 4 * Guest OS interface to IA64 Xen.
iap10@3833 5 */
iap10@3833 6
iap10@3833 7 #ifndef __HYPERVISOR_IF_IA64_H__
iap10@3833 8 #define __HYPERVISOR_IF_IA64_H__
iap10@3833 9
kaf24@9873 10 #define __DEFINE_XEN_GUEST_HANDLE(name, type) \
kaf24@9138 11 typedef struct { type *p; } __guest_handle_ ## name
kaf24@9138 12
kaf24@9874 13 #define DEFINE_XEN_GUEST_HANDLE(name) __DEFINE_XEN_GUEST_HANDLE(name, name)
kaf24@9874 14 #define XEN_GUEST_HANDLE(name) __guest_handle_ ## name
kaf24@9881 15 #define set_xen_guest_handle(hnd, val) do { (hnd).p = val; } while (0)
kaf24@9876 16 #ifdef __XEN_TOOLS__
kaf24@9881 17 #define get_xen_guest_handle(val, hnd) do { val = (hnd).p; } while (0)
kaf24@9876 18 #endif
kaf24@9138 19
kaf24@9138 20 #ifndef __ASSEMBLY__
kaf24@9138 21 /* Guest handles for primitive C types. */
kaf24@9873 22 __DEFINE_XEN_GUEST_HANDLE(uchar, unsigned char);
kaf24@9873 23 __DEFINE_XEN_GUEST_HANDLE(uint, unsigned int);
kaf24@9873 24 __DEFINE_XEN_GUEST_HANDLE(ulong, unsigned long);
kaf24@9873 25 DEFINE_XEN_GUEST_HANDLE(char);
kaf24@9873 26 DEFINE_XEN_GUEST_HANDLE(int);
kaf24@9873 27 DEFINE_XEN_GUEST_HANDLE(long);
kaf24@9873 28 DEFINE_XEN_GUEST_HANDLE(void);
kaf24@10314 29
kaf24@10314 30 typedef unsigned long xen_pfn_t;
kaf24@10314 31 DEFINE_XEN_GUEST_HANDLE(xen_pfn_t);
kaf24@9138 32 #endif
kaf24@9138 33
kaf24@9887 34 /* Arch specific VIRQs definition */
kaf24@9887 35 #define VIRQ_ITC VIRQ_ARCH_0 /* V. Virtual itc timer */
kaf24@9887 36
djm@5469 37 /* Maximum number of virtual CPUs in multi-processor guests. */
djm@5469 38 /* WARNING: before changing this, check that shared_info fits on a page */
awilliam@9495 39 #define MAX_VIRT_CPUS 64
djm@5469 40
iap10@3833 41 #ifndef __ASSEMBLY__
iap10@3833 42
kaf24@10597 43 typedef unsigned long xen_ulong_t;
kaf24@10597 44
kaf24@7349 45 #define GPFN_MEM (0UL << 56) /* Guest pfn is normal mem */
kaf24@7349 46 #define GPFN_FRAME_BUFFER (1UL << 56) /* VGA framebuffer */
kaf24@7349 47 #define GPFN_LOW_MMIO (2UL << 56) /* Low MMIO range */
kaf24@7349 48 #define GPFN_PIB (3UL << 56) /* PIB base */
kaf24@7349 49 #define GPFN_IOSAPIC (4UL << 56) /* IOSAPIC base */
kaf24@7349 50 #define GPFN_LEGACY_IO (5UL << 56) /* Legacy I/O base */
kaf24@7349 51 #define GPFN_GFW (6UL << 56) /* Guest Firmware */
kaf24@7349 52 #define GPFN_HIGH_MMIO (7UL << 56) /* High MMIO range */
djm@5455 53
kaf24@7349 54 #define GPFN_IO_MASK (7UL << 56) /* Guest pfn is I/O type */
kaf24@7349 55 #define GPFN_INV_MASK (31UL << 59) /* Guest pfn is invalid */
djm@5455 56
kaf24@7349 57 #define INVALID_MFN (~0UL)
djm@5455 58
cl349@9173 59 #define MEM_G (1UL << 30)
cl349@9173 60 #define MEM_M (1UL << 20)
djm@7333 61
djm@7333 62 #define MMIO_START (3 * MEM_G)
djm@7333 63 #define MMIO_SIZE (512 * MEM_M)
djm@7333 64
djm@7333 65 #define VGA_IO_START 0xA0000UL
djm@7333 66 #define VGA_IO_SIZE 0x20000
djm@7333 67
djm@7333 68 #define LEGACY_IO_START (MMIO_START + MMIO_SIZE)
cl349@9173 69 #define LEGACY_IO_SIZE (64*MEM_M)
djm@7333 70
djm@7333 71 #define IO_PAGE_START (LEGACY_IO_START + LEGACY_IO_SIZE)
djm@7333 72 #define IO_PAGE_SIZE PAGE_SIZE
djm@7333 73
djm@7333 74 #define STORE_PAGE_START (IO_PAGE_START + IO_PAGE_SIZE)
djm@7333 75 #define STORE_PAGE_SIZE PAGE_SIZE
djm@7333 76
djm@7333 77 #define IO_SAPIC_START 0xfec00000UL
djm@7333 78 #define IO_SAPIC_SIZE 0x100000
djm@7333 79
djm@7333 80 #define PIB_START 0xfee00000UL
awilliam@10269 81 #define PIB_SIZE 0x200000
djm@7333 82
djm@7333 83 #define GFW_START (4*MEM_G -16*MEM_M)
djm@7333 84 #define GFW_SIZE (16*MEM_M)
djm@7333 85
djm@5470 86 struct pt_fpreg {
kaf24@7349 87 union {
kaf24@7349 88 unsigned long bits[2];
kaf24@7349 89 long double __dummy; /* force 16-byte alignment */
kaf24@7349 90 } u;
djm@5470 91 };
djm@5470 92
kaf24@10124 93 struct cpu_user_regs {
kaf24@7349 94 /* The following registers are saved by SAVE_MIN: */
kaf24@7349 95 unsigned long b6; /* scratch */
kaf24@7349 96 unsigned long b7; /* scratch */
djm@5470 97
kaf24@7349 98 unsigned long ar_csd; /* used by cmp8xchg16 (scratch) */
kaf24@7349 99 unsigned long ar_ssd; /* reserved for future use (scratch) */
djm@5470 100
kaf24@7349 101 unsigned long r8; /* scratch (return value register 0) */
kaf24@7349 102 unsigned long r9; /* scratch (return value register 1) */
kaf24@7349 103 unsigned long r10; /* scratch (return value register 2) */
kaf24@7349 104 unsigned long r11; /* scratch (return value register 3) */
djm@5470 105
kaf24@7349 106 unsigned long cr_ipsr; /* interrupted task's psr */
kaf24@7349 107 unsigned long cr_iip; /* interrupted task's instruction pointer */
kaf24@7349 108 unsigned long cr_ifs; /* interrupted task's function state */
kaf24@7349 109
kaf24@7349 110 unsigned long ar_unat; /* interrupted task's NaT register (preserved) */
kaf24@7349 111 unsigned long ar_pfs; /* prev function state */
kaf24@7349 112 unsigned long ar_rsc; /* RSE configuration */
kaf24@7349 113 /* The following two are valid only if cr_ipsr.cpl > 0: */
kaf24@7349 114 unsigned long ar_rnat; /* RSE NaT */
kaf24@7349 115 unsigned long ar_bspstore; /* RSE bspstore */
kaf24@7349 116
kaf24@7349 117 unsigned long pr; /* 64 predicate registers (1 bit each) */
kaf24@7349 118 unsigned long b0; /* return pointer (bp) */
kaf24@7349 119 unsigned long loadrs; /* size of dirty partition << 16 */
kaf24@7349 120
kaf24@7349 121 unsigned long r1; /* the gp pointer */
kaf24@7349 122 unsigned long r12; /* interrupted task's memory stack pointer */
kaf24@7349 123 unsigned long r13; /* thread pointer */
kaf24@7349 124
kaf24@7349 125 unsigned long ar_fpsr; /* floating point status (preserved) */
kaf24@7349 126 unsigned long r15; /* scratch */
kaf24@7349 127
kaf24@7349 128 /* The remaining registers are NOT saved for system calls. */
kaf24@7349 129
kaf24@7349 130 unsigned long r14; /* scratch */
kaf24@7349 131 unsigned long r2; /* scratch */
kaf24@7349 132 unsigned long r3; /* scratch */
kaf24@7349 133 unsigned long r16; /* scratch */
kaf24@7349 134 unsigned long r17; /* scratch */
kaf24@7349 135 unsigned long r18; /* scratch */
kaf24@7349 136 unsigned long r19; /* scratch */
kaf24@7349 137 unsigned long r20; /* scratch */
kaf24@7349 138 unsigned long r21; /* scratch */
kaf24@7349 139 unsigned long r22; /* scratch */
kaf24@7349 140 unsigned long r23; /* scratch */
kaf24@7349 141 unsigned long r24; /* scratch */
kaf24@7349 142 unsigned long r25; /* scratch */
kaf24@7349 143 unsigned long r26; /* scratch */
kaf24@7349 144 unsigned long r27; /* scratch */
kaf24@7349 145 unsigned long r28; /* scratch */
kaf24@7349 146 unsigned long r29; /* scratch */
kaf24@7349 147 unsigned long r30; /* scratch */
kaf24@7349 148 unsigned long r31; /* scratch */
kaf24@7349 149 unsigned long ar_ccv; /* compare/exchange value (scratch) */
kaf24@7349 150
kaf24@7349 151 /*
kaf24@7349 152 * Floating point registers that the kernel considers scratch:
kaf24@7349 153 */
kaf24@7349 154 struct pt_fpreg f6; /* scratch */
kaf24@7349 155 struct pt_fpreg f7; /* scratch */
kaf24@7349 156 struct pt_fpreg f8; /* scratch */
kaf24@7349 157 struct pt_fpreg f9; /* scratch */
kaf24@7349 158 struct pt_fpreg f10; /* scratch */
kaf24@7349 159 struct pt_fpreg f11; /* scratch */
kaf24@7349 160 unsigned long r4; /* preserved */
kaf24@7349 161 unsigned long r5; /* preserved */
kaf24@7349 162 unsigned long r6; /* preserved */
kaf24@7349 163 unsigned long r7; /* preserved */
kaf24@7349 164 unsigned long eml_unat; /* used for emulating instruction */
awilliam@10573 165 unsigned long pad0; /* alignment pad */
djm@6867 166
kaf24@10124 167 };
kaf24@10124 168 typedef struct cpu_user_regs cpu_user_regs_t;
iap10@3833 169
kaf24@10124 170 union vac {
kaf24@7349 171 unsigned long value;
kaf24@7349 172 struct {
kaf24@7349 173 int a_int:1;
kaf24@7349 174 int a_from_int_cr:1;
kaf24@7349 175 int a_to_int_cr:1;
kaf24@7349 176 int a_from_psr:1;
kaf24@7349 177 int a_from_cpuid:1;
kaf24@7349 178 int a_cover:1;
kaf24@7349 179 int a_bsw:1;
kaf24@7349 180 long reserved:57;
kaf24@7349 181 };
kaf24@10124 182 };
kaf24@10124 183 typedef union vac vac_t;
fred@5818 184
kaf24@10124 185 union vdc {
kaf24@7349 186 unsigned long value;
kaf24@7349 187 struct {
kaf24@7349 188 int d_vmsw:1;
kaf24@7349 189 int d_extint:1;
kaf24@7349 190 int d_ibr_dbr:1;
kaf24@7349 191 int d_pmc:1;
kaf24@7349 192 int d_to_pmd:1;
kaf24@7349 193 int d_itm:1;
kaf24@7349 194 long reserved:58;
kaf24@7349 195 };
kaf24@10124 196 };
kaf24@10124 197 typedef union vdc vdc_t;
fred@5818 198
kaf24@10124 199 struct mapped_regs {
kaf24@10124 200 union vac vac;
kaf24@10124 201 union vdc vdc;
kaf24@7349 202 unsigned long virt_env_vaddr;
kaf24@7349 203 unsigned long reserved1[29];
kaf24@7349 204 unsigned long vhpi;
kaf24@7349 205 unsigned long reserved2[95];
kaf24@7349 206 union {
kaf24@7349 207 unsigned long vgr[16];
kaf24@7349 208 unsigned long bank1_regs[16]; // bank1 regs (r16-r31) when bank0 active
kaf24@7349 209 };
kaf24@7349 210 union {
kaf24@7349 211 unsigned long vbgr[16];
kaf24@7349 212 unsigned long bank0_regs[16]; // bank0 regs (r16-r31) when bank1 active
kaf24@7349 213 };
kaf24@7349 214 unsigned long vnat;
kaf24@7349 215 unsigned long vbnat;
kaf24@7349 216 unsigned long vcpuid[5];
kaf24@7349 217 unsigned long reserved3[11];
kaf24@7349 218 unsigned long vpsr;
kaf24@7349 219 unsigned long vpr;
kaf24@7349 220 unsigned long reserved4[76];
kaf24@7349 221 union {
kaf24@7349 222 unsigned long vcr[128];
kaf24@7349 223 struct {
kaf24@7349 224 unsigned long dcr; // CR0
kaf24@7349 225 unsigned long itm;
kaf24@7349 226 unsigned long iva;
kaf24@7349 227 unsigned long rsv1[5];
kaf24@7349 228 unsigned long pta; // CR8
kaf24@7349 229 unsigned long rsv2[7];
kaf24@7349 230 unsigned long ipsr; // CR16
kaf24@7349 231 unsigned long isr;
kaf24@7349 232 unsigned long rsv3;
kaf24@7349 233 unsigned long iip;
kaf24@7349 234 unsigned long ifa;
kaf24@7349 235 unsigned long itir;
kaf24@7349 236 unsigned long iipa;
kaf24@7349 237 unsigned long ifs;
kaf24@7349 238 unsigned long iim; // CR24
kaf24@7349 239 unsigned long iha;
kaf24@7349 240 unsigned long rsv4[38];
kaf24@7349 241 unsigned long lid; // CR64
kaf24@7349 242 unsigned long ivr;
kaf24@7349 243 unsigned long tpr;
kaf24@7349 244 unsigned long eoi;
kaf24@7349 245 unsigned long irr[4];
kaf24@7349 246 unsigned long itv; // CR72
kaf24@7349 247 unsigned long pmv;
kaf24@7349 248 unsigned long cmcv;
kaf24@7349 249 unsigned long rsv5[5];
kaf24@7349 250 unsigned long lrr0; // CR80
kaf24@7349 251 unsigned long lrr1;
kaf24@7349 252 unsigned long rsv6[46];
fred@5818 253 };
kaf24@7349 254 };
kaf24@7349 255 union {
kaf24@7349 256 unsigned long reserved5[128];
kaf24@7349 257 struct {
kaf24@7349 258 unsigned long precover_ifs;
kaf24@7349 259 unsigned long unat; // not sure if this is needed until NaT arch is done
kaf24@7349 260 int interrupt_collection_enabled; // virtual psr.ic
awilliam@9479 261 /* virtual interrupt deliverable flag is evtchn_upcall_mask in
awilliam@9479 262 * shared info area now. interrupt_mask_addr is the address
awilliam@9479 263 * of evtchn_upcall_mask for current vcpu
awilliam@9479 264 */
awilliam@10437 265 unsigned char *interrupt_mask_addr;
kaf24@7349 266 int pending_interruption;
kaf24@7349 267 int incomplete_regframe; // see SDM vol2 6.8
awilliam@10433 268 unsigned char vpsr_pp;
awilliam@10433 269 unsigned char reserved5_2[7];
awilliam@10433 270 unsigned long reserved5_1[3];
kaf24@7349 271 int metaphysical_mode; // 1 = use metaphys mapping, 0 = use virtual
kaf24@7349 272 int banknum; // 0 or 1, which virtual register bank is active
kaf24@7349 273 unsigned long rrs[8]; // region registers
kaf24@7349 274 unsigned long krs[8]; // kernel registers
kaf24@7349 275 unsigned long pkrs[8]; // protection key registers
kaf24@7349 276 unsigned long tmp[8]; // temp registers (e.g. for hyperprivops)
kaf24@7349 277 };
kaf24@7349 278 };
awilliam@10667 279 };
awilliam@10667 280 typedef struct mapped_regs mapped_regs_t;
awilliam@10667 281
awilliam@10667 282 struct vpd {
awilliam@10667 283 struct mapped_regs vpd_low;
kaf24@7349 284 unsigned long reserved6[3456];
kaf24@7349 285 unsigned long vmm_avail[128];
kaf24@7349 286 unsigned long reserved7[4096];
kaf24@10124 287 };
awilliam@10667 288 typedef struct vpd vpd_t;
fred@5818 289
kaf24@10124 290 struct arch_vcpu_info {
kaf24@10124 291 };
kaf24@10124 292 typedef struct arch_vcpu_info arch_vcpu_info_t;
fred@5818 293
kaf24@10124 294 struct arch_shared_info {
awilliam@10570 295 /* PFN of the start_info page. */
kaf24@7349 296 unsigned long start_info_pfn;
awilliam@10008 297
awilliam@10008 298 /* Interrupt vector for event channel. */
awilliam@10008 299 int evtchn_vector;
kaf24@10124 300 };
kaf24@10124 301 typedef struct arch_shared_info arch_shared_info_t;
iap10@3833 302
awilliam@10140 303 typedef unsigned long xen_callback_t;
awilliam@10140 304
awilliam@10692 305 struct ia64_tr_entry {
awilliam@10692 306 unsigned long pte;
awilliam@10692 307 unsigned long itir;
awilliam@10692 308 unsigned long vadr;
awilliam@10692 309 unsigned long rid;
awilliam@10692 310 };
awilliam@10692 311
awilliam@10692 312 struct vcpu_extra_regs {
awilliam@10692 313 struct ia64_tr_entry itrs[8];
awilliam@10692 314 struct ia64_tr_entry dtrs[8];
awilliam@10692 315 unsigned long iva;
awilliam@10692 316 unsigned long dcr;
awilliam@10692 317 unsigned long event_callback_ip;
awilliam@10692 318 };
awilliam@10692 319
kaf24@10124 320 struct vcpu_guest_context {
awilliam@10692 321 #define VGCF_EXTRA_REGS (1<<1) /* Get/Set extra regs. */
kaf24@7349 322 unsigned long flags; /* VGCF_* flags */
djm@5797 323
awilliam@10427 324 struct cpu_user_regs user_regs;
awilliam@10692 325 struct vcpu_extra_regs extra_regs;
awilliam@10570 326 unsigned long privregs_pfn;
kaf24@10124 327 };
kaf24@10124 328 typedef struct vcpu_guest_context vcpu_guest_context_t;
kaf24@9873 329 DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);
iap10@3833 330
awilliam@9759 331 // dom0 vp op
awilliam@9971 332 #define __HYPERVISOR_ia64_dom0vp_op __HYPERVISOR_arch_0
awilliam@9759 333 #define IA64_DOM0VP_ioremap 0 // map io space in machine
awilliam@9759 334 // address to dom0 physical
awilliam@9759 335 // address space.
awilliam@9759 336 // currently physical
awilliam@9759 337 // assignedg address equals to
awilliam@9759 338 // machine address
awilliam@9759 339 #define IA64_DOM0VP_phystomach 1 // convert a pseudo physical
awilliam@9759 340 // page frame number
awilliam@9759 341 // to the corresponding
awilliam@9759 342 // machine page frame number.
awilliam@9759 343 // if no page is assigned,
awilliam@9759 344 // INVALID_MFN or GPFN_INV_MASK
awilliam@9759 345 // is returned depending on
awilliam@9759 346 // domain's non-vti/vti mode.
awilliam@9759 347 #define IA64_DOM0VP_machtophys 3 // convert a machine page
awilliam@9759 348 // frame number
awilliam@9759 349 // to the corresponding
awilliam@9759 350 // pseudo physical page frame
awilliam@9759 351 // number of the caller domain
awilliam@9759 352 #define IA64_DOM0VP_zap_physmap 17 // unmap and free pages
awilliam@9759 353 // contained in the specified
awilliam@9759 354 // pseudo physical region
awilliam@9759 355 #define IA64_DOM0VP_add_physmap 18 // assigne machine page frane
awilliam@9759 356 // to dom0's pseudo physical
awilliam@9759 357 // address space.
awilliam@10152 358 // flags for page assignement to pseudo physical address space
awilliam@10152 359 #define _ASSIGN_readonly 0
awilliam@10152 360 #define ASSIGN_readonly (1UL << _ASSIGN_readonly)
awilliam@10152 361 #define ASSIGN_writable (0UL << _ASSIGN_readonly) // dummy flag
awilliam@9759 362
awilliam@10570 363 /* This structure has the same layout of struct ia64_boot_param, defined in
awilliam@10570 364 <asm/system.h>. It is redefined here to ease use. */
awilliam@10570 365 struct xen_ia64_boot_param {
awilliam@10570 366 unsigned long command_line; /* physical address of cmd line args */
awilliam@10570 367 unsigned long efi_systab; /* physical address of EFI system table */
awilliam@10570 368 unsigned long efi_memmap; /* physical address of EFI memory map */
awilliam@10570 369 unsigned long efi_memmap_size; /* size of EFI memory map */
awilliam@10570 370 unsigned long efi_memdesc_size; /* size of an EFI memory map descriptor */
awilliam@10570 371 unsigned int efi_memdesc_version; /* memory descriptor version */
awilliam@10570 372 struct {
awilliam@10570 373 unsigned short num_cols; /* number of columns on console. */
awilliam@10570 374 unsigned short num_rows; /* number of rows on console. */
awilliam@10570 375 unsigned short orig_x; /* cursor's x position */
awilliam@10570 376 unsigned short orig_y; /* cursor's y position */
awilliam@10570 377 } console_info;
awilliam@10570 378 unsigned long fpswa; /* physical address of the fpswa interface */
awilliam@10570 379 unsigned long initrd_start;
awilliam@10570 380 unsigned long initrd_size;
awilliam@10570 381 unsigned long domain_start; /* va where the boot time domain begins */
awilliam@10570 382 unsigned long domain_size; /* how big is the boot domain */
awilliam@10570 383 };
awilliam@10570 384
iap10@3833 385 #endif /* !__ASSEMBLY__ */
iap10@3833 386
awilliam@10444 387 /* Address of shared_info in domain virtual space.
awilliam@10444 388 This is the default address, for compatibility only. */
awilliam@10667 389 #define XSI_BASE 0xf100000000000000
awilliam@10444 390
awilliam@10437 391 /* Size of the shared_info area (this is not related to page size). */
awilliam@10667 392 #define XSI_SHIFT 14
awilliam@10667 393 #define XSI_SIZE (1 << XSI_SHIFT)
awilliam@10437 394 /* Log size of mapped_regs area (64 KB - only 4KB is used). */
awilliam@10667 395 #define XMAPPEDREGS_SHIFT 12
awilliam@10444 396 /* Offset of XASI (Xen arch shared info) wrt XSI_BASE. */
awilliam@10444 397 #define XMAPPEDREGS_OFS XSI_SIZE
awilliam@10437 398
awilliam@9865 399 /* Hyperprivops. */
awilliam@9865 400 #define HYPERPRIVOP_RFI 0x1
awilliam@9865 401 #define HYPERPRIVOP_RSM_DT 0x2
awilliam@9865 402 #define HYPERPRIVOP_SSM_DT 0x3
awilliam@9865 403 #define HYPERPRIVOP_COVER 0x4
awilliam@9865 404 #define HYPERPRIVOP_ITC_D 0x5
awilliam@9865 405 #define HYPERPRIVOP_ITC_I 0x6
awilliam@9865 406 #define HYPERPRIVOP_SSM_I 0x7
awilliam@9865 407 #define HYPERPRIVOP_GET_IVR 0x8
awilliam@9865 408 #define HYPERPRIVOP_GET_TPR 0x9
awilliam@9865 409 #define HYPERPRIVOP_SET_TPR 0xa
awilliam@9865 410 #define HYPERPRIVOP_EOI 0xb
awilliam@9865 411 #define HYPERPRIVOP_SET_ITM 0xc
awilliam@9865 412 #define HYPERPRIVOP_THASH 0xd
awilliam@9865 413 #define HYPERPRIVOP_PTC_GA 0xe
awilliam@9865 414 #define HYPERPRIVOP_ITR_D 0xf
awilliam@9865 415 #define HYPERPRIVOP_GET_RR 0x10
awilliam@9865 416 #define HYPERPRIVOP_SET_RR 0x11
awilliam@9865 417 #define HYPERPRIVOP_SET_KR 0x12
awilliam@9865 418 #define HYPERPRIVOP_FC 0x13
awilliam@9865 419 #define HYPERPRIVOP_GET_CPUID 0x14
awilliam@9865 420 #define HYPERPRIVOP_GET_PMD 0x15
awilliam@9865 421 #define HYPERPRIVOP_GET_EFLAG 0x16
awilliam@9865 422 #define HYPERPRIVOP_SET_EFLAG 0x17
awilliam@9865 423 #define HYPERPRIVOP_MAX 0x17
awilliam@9865 424
iap10@3833 425 #endif /* __HYPERVISOR_IF_IA64_H__ */
kaf24@7349 426
kaf24@7349 427 /*
kaf24@7349 428 * Local variables:
kaf24@7349 429 * mode: C
kaf24@7349 430 * c-set-style: "BSD"
kaf24@7349 431 * c-basic-offset: 4
kaf24@7349 432 * tab-width: 4
kaf24@7349 433 * indent-tabs-mode: nil
kaf24@7349 434 * End:
kaf24@7349 435 */