source: rtems/bsps/powerpc/qoriq/include/uapi/asm/epapr_hcalls.h @ 2afb22b

5
Last change on this file since 2afb22b was 2afb22b, checked in by Chris Johns <chrisj@…>, on 12/23/17 at 07:18:56

Remove make preinstall

A speciality of the RTEMS build system was the make preinstall step. It
copied header files from arbitrary locations into the build tree. The
header files were included via the -Bsome/build/tree/path GCC command
line option.

This has at least seven problems:

  • The make preinstall step itself needs time and disk space.
  • Errors in header files show up in the build tree copy. This makes it hard for editors to open the right file to fix the error.
  • There is no clear relationship between source and build tree header files. This makes an audit of the build process difficult.
  • The visibility of all header files in the build tree makes it difficult to enforce API barriers. For example it is discouraged to use BSP-specifics in the cpukit.
  • An introduction of a new build system is difficult.
  • Include paths specified by the -B option are system headers. This may suppress warnings.
  • The parallel build had sporadic failures on some hosts.

This patch removes the make preinstall step. All installed header
files are moved to dedicated include directories in the source tree.
Let @RTEMS_CPU@ be the target architecture, e.g. arm, powerpc, sparc,
etc. Let @RTEMS_BSP_FAMILIY@ be a BSP family base directory, e.g.
erc32, imx, qoriq, etc.

The new cpukit include directories are:

  • cpukit/include
  • cpukit/score/cpu/@RTEMS_CPU@/include
  • cpukit/libnetworking

The new BSP include directories are:

  • bsps/include
  • bsps/@RTEMS_CPU@/include
  • bsps/@RTEMS_CPU@/@RTEMS_BSP_FAMILIY@/include

There are build tree include directories for generated files.

The include directory order favours the most general header file, e.g.
it is not possible to override general header files via the include path
order.

The "bootstrap -p" option was removed. The new "bootstrap -H" option
should be used to regenerate the "headers.am" files.

Update #3254.

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