forked from Minki/linux
9e2b3e834c
Commit b24413180f
("License cleanup: add SPDX GPL-2.0 license
identifier to files with no license") was meant to do a tree-wide
cleanup for files without any license information by adding a SPDX
GPL-2.0 line to them.
Unfortunately this was applied even to several Xen-related headers
which have been originally under the MIT license, but obviously have
been copied to the Linux tree from the Xen project without keeping the
license boiler plate as required.
Correct that by changing the license of those files back to "MIT".
Some files still contain the MIT license text. Replace that by the
related SPDX line.
Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Link: https://lore.kernel.org/r/20211015143312.29900-1-jgross@suse.com
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
86 lines
2.4 KiB
C
86 lines
2.4 KiB
C
/* SPDX-License-Identifier: MIT */
|
|
/******************************************************************************
|
|
* callback.h
|
|
*
|
|
* Register guest OS callbacks with Xen.
|
|
*
|
|
* Copyright (c) 2006, Ian Campbell
|
|
*/
|
|
|
|
#ifndef __XEN_PUBLIC_CALLBACK_H__
|
|
#define __XEN_PUBLIC_CALLBACK_H__
|
|
|
|
#include <xen/interface/xen.h>
|
|
|
|
/*
|
|
* Prototype for this hypercall is:
|
|
* long callback_op(int cmd, void *extra_args)
|
|
* @cmd == CALLBACKOP_??? (callback operation).
|
|
* @extra_args == Operation-specific extra arguments (NULL if none).
|
|
*/
|
|
|
|
/* x86: Callback for event delivery. */
|
|
#define CALLBACKTYPE_event 0
|
|
|
|
/* x86: Failsafe callback when guest state cannot be restored by Xen. */
|
|
#define CALLBACKTYPE_failsafe 1
|
|
|
|
/* x86/64 hypervisor: Syscall by 64-bit guest app ('64-on-64-on-64'). */
|
|
#define CALLBACKTYPE_syscall 2
|
|
|
|
/*
|
|
* x86/32 hypervisor: Only available on x86/32 when supervisor_mode_kernel
|
|
* feature is enabled. Do not use this callback type in new code.
|
|
*/
|
|
#define CALLBACKTYPE_sysenter_deprecated 3
|
|
|
|
/* x86: Callback for NMI delivery. */
|
|
#define CALLBACKTYPE_nmi 4
|
|
|
|
/*
|
|
* x86: sysenter is only available as follows:
|
|
* - 32-bit hypervisor: with the supervisor_mode_kernel feature enabled
|
|
* - 64-bit hypervisor: 32-bit guest applications on Intel CPUs
|
|
* ('32-on-32-on-64', '32-on-64-on-64')
|
|
* [nb. also 64-bit guest applications on Intel CPUs
|
|
* ('64-on-64-on-64'), but syscall is preferred]
|
|
*/
|
|
#define CALLBACKTYPE_sysenter 5
|
|
|
|
/*
|
|
* x86/64 hypervisor: Syscall by 32-bit guest app on AMD CPUs
|
|
* ('32-on-32-on-64', '32-on-64-on-64')
|
|
*/
|
|
#define CALLBACKTYPE_syscall32 7
|
|
|
|
/*
|
|
* Disable event deliver during callback? This flag is ignored for event and
|
|
* NMI callbacks: event delivery is unconditionally disabled.
|
|
*/
|
|
#define _CALLBACKF_mask_events 0
|
|
#define CALLBACKF_mask_events (1U << _CALLBACKF_mask_events)
|
|
|
|
/*
|
|
* Register a callback.
|
|
*/
|
|
#define CALLBACKOP_register 0
|
|
struct callback_register {
|
|
uint16_t type;
|
|
uint16_t flags;
|
|
xen_callback_t address;
|
|
};
|
|
|
|
/*
|
|
* Unregister a callback.
|
|
*
|
|
* Not all callbacks can be unregistered. -EINVAL will be returned if
|
|
* you attempt to unregister such a callback.
|
|
*/
|
|
#define CALLBACKOP_unregister 1
|
|
struct callback_unregister {
|
|
uint16_t type;
|
|
uint16_t _unused;
|
|
};
|
|
|
|
#endif /* __XEN_PUBLIC_CALLBACK_H__ */
|