Sync usage with man page.
[netbsd-mini2440.git] / sys / arch / xen / include / xen3-public / arch-ia64 / sioemu.h
blobc04ab836c8e34d0c3bf85acf8e50f5ae78dbb75d
1 /******************************************************************************
2 * sioemu.h
4 * Copyright (c) 2008 Tristan Gingold <tgingold@free.fr>
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.
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.
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
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;
88 #endif /* __ASSEMBLY__ */
89 #endif /* __XEN_PUBLIC_IA64_SIOEMU_H__ */