cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

pci-bridge.h (1649B)


      1/*
      2 * include/asm-xtensa/pci-bridge.h
      3 *
      4 * This file is subject to the terms and conditions of the GNU General
      5 * Public License.  See the file "COPYING" in the main directory of
      6 * this archive for more details.
      7 *
      8 * Copyright (C) 2005 Tensilica Inc.
      9 */
     10
     11#ifndef _XTENSA_PCI_BRIDGE_H
     12#define _XTENSA_PCI_BRIDGE_H
     13
     14struct device_node;
     15struct pci_controller;
     16
     17/*
     18 * pciauto_bus_scan() enumerates the pci space.
     19 */
     20
     21extern int pciauto_bus_scan(struct pci_controller *, int);
     22
     23struct pci_space {
     24	unsigned long start;
     25	unsigned long end;
     26	unsigned long base;
     27};
     28
     29/*
     30 * Structure of a PCI controller (host bridge)
     31 */
     32
     33struct pci_controller {
     34	int index;			/* used for pci_controller_num */
     35	struct pci_controller *next;
     36	struct pci_bus *bus;
     37	void *arch_data;
     38
     39	int first_busno;
     40	int last_busno;
     41
     42	struct pci_ops *ops;
     43	volatile unsigned int *cfg_addr;
     44	volatile unsigned char *cfg_data;
     45
     46	/* Currently, we limit ourselves to 1 IO range and 3 mem
     47	 * ranges since the common pci_bus structure can't handle more
     48	 */
     49	struct resource	io_resource;
     50	struct resource mem_resources[3];
     51	int mem_resource_count;
     52
     53	/* Host bridge I/O and Memory space
     54	 * Used for BAR placement algorithms
     55	 */
     56	struct pci_space io_space;
     57	struct pci_space mem_space;
     58
     59	/* Return the interrupt number fo a device. */
     60	int (*map_irq)(struct pci_dev*, u8, u8);
     61
     62};
     63
     64static inline void pcibios_init_resource(struct resource *res,
     65		unsigned long start, unsigned long end, int flags, char *name)
     66{
     67	res->start = start;
     68	res->end = end;
     69	res->flags = flags;
     70	res->name = name;
     71	res->parent = NULL;
     72	res->sibling = NULL;
     73	res->child = NULL;
     74}
     75
     76#endif	/* _XTENSA_PCI_BRIDGE_H */