Blame view

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