Various cosmetic and coding style fixes in src/devices.
[coreboot.git] / src / include / device / device.h
index df8fb5f6d5564e4d06bde07c46a040b2fcdb0a09..7dbbb4f5ae3ddc6e3d4f7a77710d18865deb1ece 100644 (file)
@@ -40,8 +40,9 @@ struct device_operations {
 struct bus {
        device_t        dev;            /* This bridge device */
        device_t        children;       /* devices behind this bridge */
+       struct bus      *next;          /* The next bridge on this device */
        unsigned        bridge_ctrl;    /* Bridge control register */
-       unsigned char   link;           /* The index of this link */
+       unsigned char   link_num;       /* The index of this link */
        uint16_t        secondary;      /* secondary bus number */
        uint16_t        subordinate;    /* max subordinate bus number */
        unsigned char   cap;            /* PCi capability offset */
@@ -49,8 +50,6 @@ struct bus {
        unsigned        disable_relaxed_ordering : 1;
 };
 
-#define MAX_RESOURCES 24 
-#define MAX_LINKS    8 
 /*
  * There is one device structure for each slot-number/function-number
  * combination:
@@ -74,15 +73,12 @@ struct device {
        u8 command;
 
        /* Base registers for this device. I/O, MEM and Expansion ROM */
-       struct resource resource[MAX_RESOURCES];
-       unsigned int resources;
+       struct resource *resource_list;
 
        /* links are (downstream) buses attached to the device, usually a leaf
-        * device with no children have 0 buses attached and a bridge has 1 bus 
+        * device with no children has 0 buses attached and a bridge has 1 bus
         */
-       struct bus link[MAX_LINKS];
-       /* number of buses attached to the device */
-       unsigned int links;
+       struct bus *link_list;
 
        struct device_operations *ops;
        const struct chip_operations *chip_ops;
@@ -96,6 +92,8 @@ struct device {
 extern struct device   dev_root;
 extern struct device   *all_devices;   /* list of all devices */
 
+extern struct resource *free_resources;
+extern struct bus      *free_links;
 
 /* Generic device interface functions */
 device_t alloc_dev(struct bus *parent, struct device_path *path);
@@ -109,7 +107,6 @@ void dev_optimize(void);
 int reset_bus(struct bus *bus);
 unsigned int scan_bus(struct device *bus, unsigned int max);
 void assign_resources(struct bus *bus);
-void enable_resources(struct device *dev);
 void enumerate_static_device(void);
 void enumerate_static_devices(void);
 const char *dev_path(device_t dev);
@@ -123,7 +120,7 @@ void run_bios(struct device *dev, unsigned long addr);
 /* Helper functions */
 device_t find_dev_path(struct bus *parent, struct device_path *path);
 device_t alloc_find_dev(struct bus *parent, struct device_path *path);
-device_t dev_find_device (unsigned int vendor, unsigned int device, device_t from);
+device_t dev_find_device (u16 vendor, u16 device, device_t from);
 device_t dev_find_class (unsigned int class, device_t from);
 device_t dev_find_slot (unsigned int bus, unsigned int devfn);
 device_t dev_find_slot_on_smbus (unsigned int bus, unsigned int addr);
@@ -139,21 +136,20 @@ void show_one_resource(int debug_level, struct device *dev,
                       struct resource *resource, const char *comment);
 void show_all_devs_resources(int debug_level, const char* msg);
 
-/* Rounding for boundaries. 
+/* Rounding for boundaries.
  * Due to some chip bugs, go ahead and round IO to 16
  */
-#define DEVICE_IO_ALIGN 16 
+#define DEVICE_IO_ALIGN 16
 #define DEVICE_MEM_ALIGN 4096
 
 extern struct device_operations default_dev_ops_root;
 void pci_domain_read_resources(struct device *dev);
 unsigned int pci_domain_scan_bus(struct device *dev, unsigned int max);
-void root_dev_read_resources(device_t dev);
-void root_dev_set_resources(device_t dev);
 unsigned int scan_static_bus(device_t bus, unsigned int max);
-void enable_childrens_resources(device_t dev);
-void root_dev_enable_resources(device_t dev);
-unsigned int root_dev_scan_bus(device_t root, unsigned int max);
-void root_dev_init(device_t dev);
-void root_dev_reset(struct bus *bus);
+
+void ram_resource(device_t dev, unsigned long index,
+                 unsigned long basek, unsigned long sizek);
+void tolm_test(void *gp, struct device *dev, struct resource *new);
+u32 find_pci_tolm(struct bus *bus);
+
 #endif /* DEVICE_H */