diff options
Diffstat (limited to 'pci-arbiter/pci_access.h')
-rw-r--r-- | pci-arbiter/pci_access.h | 187 |
1 files changed, 0 insertions, 187 deletions
diff --git a/pci-arbiter/pci_access.h b/pci-arbiter/pci_access.h deleted file mode 100644 index cf42cf62..00000000 --- a/pci-arbiter/pci_access.h +++ /dev/null @@ -1,187 +0,0 @@ -/* - * (C) Copyright IBM Corporation 2006 - * Copyright 2009 Red Hat, Inc. - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * on the rights to use, copy, modify, merge, publish, distribute, sub - * license, and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL - * IBM AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - */ -/* - * Copyright (c) 2007 Paulo R. Zanoni, Tiago Vignatti - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, - * copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following - * conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - */ - -/* - * PCI access general header. - * - * Following code is borrowed from libpciaccess: - * https://cgit.freedesktop.org/xorg/lib/libpciaccess/ - */ - -#ifndef PCI_ACCESS_H -#define PCI_ACCESS_H - -#include <stddef.h> -#include <stdint.h> -#include <errno.h> - -typedef uint64_t pciaddr_t; - -/* - * BAR descriptor for a PCI device. - */ -struct pci_mem_region -{ - /* - * When the region is mapped, this is the pointer to the memory. - */ - void *memory; - - /* - * Base physical address of the region from the CPU's point of view. - * - * This address is typically passed to \c pci_device_map_range to create - * a mapping of the region to the CPU's virtual address space. - */ - pciaddr_t base_addr; - - - /* - * Size, in bytes, of the region. - */ - pciaddr_t size; - - - /* - * Is the region I/O ports or memory? - */ - unsigned is_IO:1; - - /* - * Is the memory region prefetchable? - * - * \note - * This can only be set if \c is_IO is not set. - */ - unsigned is_prefetchable:1; - - - /* - * Is the memory at a 64-bit address? - * - * \note - * This can only be set if \c is_IO is not set. - */ - unsigned is_64:1; -}; - -/* - * PCI device. - * - * Contains all of the information about a particular PCI device. - */ -struct pci_device -{ - /* - * Complete bus identification, including domain, of the device. On - * platforms that do not support PCI domains (e.g., 32-bit x86 hardware), - * the domain will always be zero. - */ - uint16_t domain; - uint8_t bus; - uint8_t dev; - uint8_t func; - - /* - * Device's class, subclass, and programming interface packed into a - * single 32-bit value. The class is at bits [23:16], subclass is at - * bits [15:8], and programming interface is at [7:0]. - */ - uint32_t device_class; - - /* - * BAR descriptors for the device. - */ - struct pci_mem_region regions[6]; - - /* - * Size, in bytes, of the device's expansion ROM. - */ - pciaddr_t rom_size; - - /* - * Physical address of the ROM - */ - pciaddr_t rom_base; - - /* - * Mapped ROM - */ - void *rom_memory; - - /* - * Size of the configuration space - */ - size_t config_size; -}; - -typedef error_t (*pci_io_op_t) (unsigned bus, unsigned dev, unsigned func, - pciaddr_t reg, void *data, unsigned size); - -typedef error_t (*pci_refresh_dev_op_t) (struct pci_device * dev, - int num_region, int rom); - -/* Global PCI data */ -struct pci_system -{ - size_t num_devices; - struct pci_device *devices; - - /* Callbacks */ - pci_io_op_t read; - pci_io_op_t write; - pci_refresh_dev_op_t device_refresh; -}; - -struct pci_system *pci_sys; - -int pci_system_init (void); - -#endif /* PCI_ACCESS_H */ |