Use lists instead of arrays for resources in devices to reduce memory usage.

Signed-off-by: Myles Watson <mylesgw@gmail.com>
Acked-by: Patrick Georgi <patrick.georgi@coresystems.de>


git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5576 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
Myles Watson
2010-05-21 14:33:48 +00:00
parent c5b87c8f89
commit c25cc11ae3
25 changed files with 200 additions and 190 deletions

View File

@@ -74,11 +74,10 @@ 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 */
@@ -96,6 +95,7 @@ struct device {
extern struct device dev_root;
extern struct device *all_devices; /* list of all devices */
extern struct resource *free_resources;
/* Generic device interface functions */
device_t alloc_dev(struct bus *parent, struct device_path *path);

View File

@@ -68,6 +68,7 @@ struct resource {
resource_t base; /* Base address of the resource */
resource_t size; /* Size of the resource */
resource_t limit; /* Largest valid value base + size -1 */
struct resource* next; /* Next resource in the list */
unsigned long flags; /* Descriptions of the kind of resource */
unsigned long index; /* Bus specific per device resource id */
unsigned char align; /* Required alignment (log 2) of the resource */