Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/powerpc/include/uapi/asm/epapr_hcalls.h
26516 views
1
/* SPDX-License-Identifier: ((GPL-2.0+ WITH Linux-syscall-note) OR BSD-3-Clause) */
2
/*
3
* ePAPR hcall interface
4
*
5
* Copyright 2008-2011 Freescale Semiconductor, Inc.
6
*
7
* Author: Timur Tabi <[email protected]>
8
*
9
* This file is provided under a dual BSD/GPL license. When using or
10
* redistributing this file, you may do so under either license.
11
*
12
* Redistribution and use in source and binary forms, with or without
13
* modification, are permitted provided that the following conditions are met:
14
* * Redistributions of source code must retain the above copyright
15
* notice, this list of conditions and the following disclaimer.
16
* * Redistributions in binary form must reproduce the above copyright
17
* notice, this list of conditions and the following disclaimer in the
18
* documentation and/or other materials provided with the distribution.
19
* * Neither the name of Freescale Semiconductor nor the
20
* names of its contributors may be used to endorse or promote products
21
* derived from this software without specific prior written permission.
22
*
23
*
24
* ALTERNATIVELY, this software may be distributed under the terms of the
25
* GNU General Public License ("GPL") as published by the Free Software
26
* Foundation, either version 2 of that License or (at your option) any
27
* later version.
28
*
29
* THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
30
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
31
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
32
* DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
33
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
34
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
35
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
36
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
37
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
38
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
39
*/
40
41
#ifndef _UAPI_ASM_POWERPC_EPAPR_HCALLS_H
42
#define _UAPI_ASM_POWERPC_EPAPR_HCALLS_H
43
44
#define EV_BYTE_CHANNEL_SEND 1
45
#define EV_BYTE_CHANNEL_RECEIVE 2
46
#define EV_BYTE_CHANNEL_POLL 3
47
#define EV_INT_SET_CONFIG 4
48
#define EV_INT_GET_CONFIG 5
49
#define EV_INT_SET_MASK 6
50
#define EV_INT_GET_MASK 7
51
#define EV_INT_IACK 9
52
#define EV_INT_EOI 10
53
#define EV_INT_SEND_IPI 11
54
#define EV_INT_SET_TASK_PRIORITY 12
55
#define EV_INT_GET_TASK_PRIORITY 13
56
#define EV_DOORBELL_SEND 14
57
#define EV_MSGSND 15
58
#define EV_IDLE 16
59
60
/* vendor ID: epapr */
61
#define EV_LOCAL_VENDOR_ID 0 /* for private use */
62
#define EV_EPAPR_VENDOR_ID 1
63
#define EV_FSL_VENDOR_ID 2 /* Freescale Semiconductor */
64
#define EV_IBM_VENDOR_ID 3 /* IBM */
65
#define EV_GHS_VENDOR_ID 4 /* Green Hills Software */
66
#define EV_ENEA_VENDOR_ID 5 /* Enea */
67
#define EV_WR_VENDOR_ID 6 /* Wind River Systems */
68
#define EV_AMCC_VENDOR_ID 7 /* Applied Micro Circuits */
69
#define EV_KVM_VENDOR_ID 42 /* KVM */
70
71
/* The max number of bytes that a byte channel can send or receive per call */
72
#define EV_BYTE_CHANNEL_MAX_BYTES 16
73
74
75
#define _EV_HCALL_TOKEN(id, num) (((id) << 16) | (num))
76
#define EV_HCALL_TOKEN(hcall_num) _EV_HCALL_TOKEN(EV_EPAPR_VENDOR_ID, hcall_num)
77
78
/* epapr return codes */
79
#define EV_SUCCESS 0
80
#define EV_EPERM 1 /* Operation not permitted */
81
#define EV_ENOENT 2 /* Entry Not Found */
82
#define EV_EIO 3 /* I/O error occurred */
83
#define EV_EAGAIN 4 /* The operation had insufficient
84
* resources to complete and should be
85
* retried
86
*/
87
#define EV_ENOMEM 5 /* There was insufficient memory to
88
* complete the operation */
89
#define EV_EFAULT 6 /* Bad guest address */
90
#define EV_ENODEV 7 /* No such device */
91
#define EV_EINVAL 8 /* An argument supplied to the hcall
92
was out of range or invalid */
93
#define EV_INTERNAL 9 /* An internal error occurred */
94
#define EV_CONFIG 10 /* A configuration error was detected */
95
#define EV_INVALID_STATE 11 /* The object is in an invalid state */
96
#define EV_UNIMPLEMENTED 12 /* Unimplemented hypercall */
97
#define EV_BUFFER_OVERFLOW 13 /* Caller-supplied buffer too small */
98
99
#endif /* _UAPI_ASM_POWERPC_EPAPR_HCALLS_H */
100
101