1 /******************************************************************************
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
42 #define SIOEMU_HYPERCALL_FLUSH_CACHE 0x07
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
68 struct sioemu_callback_info
{
69 /* Saved registers. */
79 /* Callback parameters. */
85 unsigned long _pad2
[2];
88 #endif /* __ASSEMBLY__ */
89 #endif /* __XEN_PUBLIC_IA64_SIOEMU_H__ */