source: rtems/bsps/powerpc/include/bsp/pci.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: 2.3 KB
Line 
1/*
2 *  PCI defines and function prototypes
3 *
4 *  For more information, please consult the following manuals (look at
5 *  http://www.pcisig.com/ for how to get them):
6 *
7 *    PCI BIOS Specification
8 *    PCI Local Bus Specification
9 *    PCI to PCI Bridge Specification
10 *    PCI System Design Guide
11 */
12
13/*
14 *  Copyright 1994, Drew Eckhardt
15 *  Copyright 1997, 1998 Martin Mares <mj@atrey.karlin.mff.cuni.cz>
16 */
17
18#ifndef BSP_POWERPC_PCI_H
19#define BSP_POWERPC_PCI_H
20
21#include <rtems/pci.h>
22#include <stdio.h>
23
24struct _pin_routes
25{
26  int pin;
27  int int_name[4];
28};
29struct _int_map
30{
31  int bus;
32  int slot;
33  int opts;
34  struct _pin_routes pin_route[5];
35};
36
37/* If there's a conflict between a name in the routing table and
38 * what's already set on the device, reprogram the device setting
39 * to reflect int_name[0] for the routing table entry
40 */
41#define PCI_FIXUP_OPT_OVERRIDE_NAME  (1<<0)
42
43/*
44 * This is assumed to be provided by the BSP.
45 */
46void detect_host_bridge(void);
47
48void FixupPCI( const struct _int_map *, int (*swizzler)(int,int) );
49
50/* FIXME: This probably belongs into rtems/pci.h */
51extern unsigned char pci_bus_count();
52
53/* FIXME: This also is generic and could go into rtems/pci.h */
54
55/* Scan pci config space and run a user callback on each
56 * device present; the user callback may return 0 to
57 * continue the scan or a value > 0 to abort the scan.
58 * Return values < 0 are reserved and must not be used.
59 *
60 * RETURNS: a (opaque) handle pointing to the bus/slot/fn-triple
61 *          just after where the scan was aborted by a callback
62 *          returning 1 (see above) or NULL if all devices were
63 *          scanned.
64 *          The handle may be passed to this routine to resume the
65 *          scan continuing with the device after the one causing the
66 *          abort.
67 *          Pass a NULL 'handle' argument to start scanning from
68 *          the beginning (bus/slot/fn = 0/0/0).
69 */
70typedef void *BSP_PciScanHandle;
71typedef int (*BSP_PciScannerCb)(int bus, int slot, int fun, void *uarg);
72
73BSP_PciScanHandle
74BSP_pciScan(BSP_PciScanHandle handle, BSP_PciScannerCb cb, void *uarg);
75
76/* Dump basic config. space info to a file. The argument may
77 * be NULL in which case 'stdout' is used.
78 * NOTE: the C-library must be functional before you can use
79 *       this routine.
80 */
81void
82BSP_pciConfigDump(FILE *fp);
83
84#endif /* BSP_POWERPC_PCI_H */
Note: See TracBrowser for help on using the repository browser.