ia64/linux-2.6.18-xen.hg

view include/xen/interface/arch-ia64/sioemu.h @ 540:db71fb3204b5

Sync public Xen hedaers with xen-unstable.hg
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
author Keir Fraser <keir.fraser@citrix.com>
date Mon May 12 10:03:08 2008 +0100 (2008-05-12)
parents 06ffa3eb5e3f
children
line source
1 /******************************************************************************
2 * sioemu.h
3 *
4 * Copyright (c) 2008 Tristan Gingold <tgingold@free.fr>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 *
20 */
22 #ifndef __XEN_PUBLIC_IA64_SIOEMU_H__
23 #define __XEN_PUBLIC_IA64_SIOEMU_H__
25 /* SIOEMU specific hypercalls.
26 The numbers are the minor part of FW_HYPERCALL_SIOEMU. */
28 /* Defines the callback entry point. r8=ip, r9=data.
29 Must be called per-vcpu. */
30 #define SIOEMU_HYPERCALL_SET_CALLBACK 0x01
32 /* Finish sioemu fw initialization and start firmware. r8=ip. */
33 #define SIOEMU_HYPERCALL_START_FW 0x02
35 /* Add IO pages in physmap. */
36 #define SIOEMU_HYPERCALL_ADD_IO_PHYSMAP 0x03
38 /* Get wallclock time. */
39 #define SIOEMU_HYPERCALL_GET_TIME 0x04
41 /* Flush cache. */
42 #define SIOEMU_HYPERCALL_FLUSH_CACHE 0x07
44 /* Get freq base. */
45 #define SIOEMU_HYPERCALL_FREQ_BASE 0x08
47 /* Return from callback. */
48 #define SIOEMU_HYPERCALL_CALLBACK_RETURN 0x09
50 /* Deliver an interrupt. */
51 #define SIOEMU_HYPERCALL_DELIVER_INT 0x0a
53 /* SIOEMU callback reason. */
55 /* An event (from event channel) has to be delivered. */
56 #define SIOEMU_CB_EVENT 0x00
58 /* Emulate an IO access. */
59 #define SIOEMU_CB_IO_EMULATE 0x01
61 /* An IPI is sent to a dead vcpu. */
62 #define SIOEMU_CB_WAKEUP_VCPU 0x02
64 /* A SAL hypercall is executed. */
65 #define SIOEMU_CB_SAL_ASSIST 0x03
67 #ifndef __ASSEMBLY__
68 struct sioemu_callback_info {
69 /* Saved registers. */
70 unsigned long ip;
71 unsigned long psr;
72 unsigned long ifs;
73 unsigned long nats;
74 unsigned long r8;
75 unsigned long r9;
76 unsigned long r10;
77 unsigned long r11;
79 /* Callback parameters. */
80 unsigned long cause;
81 unsigned long arg0;
82 unsigned long arg1;
83 unsigned long arg2;
84 unsigned long arg3;
85 unsigned long _pad2[2];
86 unsigned long r2;
87 };
88 #endif /* __ASSEMBLY__ */
89 #endif /* __XEN_PUBLIC_IA64_SIOEMU_H__ */