diff options
Diffstat (limited to 'src/include/device')
-rw-r--r-- | src/include/device/chip.h | 3 | ||||
-rw-r--r-- | src/include/device/device.h | 4 | ||||
-rw-r--r-- | src/include/device/path.h | 2 |
3 files changed, 8 insertions, 1 deletions
diff --git a/src/include/device/chip.h b/src/include/device/chip.h index a98625a7ab..dc078a96b7 100644 --- a/src/include/device/chip.h +++ b/src/include/device/chip.h @@ -49,6 +49,7 @@ enum chip_pass { */ struct chip; +struct device; /* there is one of these for each TYPE of chip */ struct chip_control { @@ -56,6 +57,7 @@ struct chip_control { char *name; void (*enable)(struct chip *, enum chip_pass); void (*enumerate)(struct chip *chip); + void (*enable_dev)(struct device *dev); }; @@ -72,6 +74,7 @@ struct bus; #define MAX_CHIP_PATHS 16 #endif struct chip { + unsigned link; struct chip_control *control; /* for this device */ struct chip_device_path path[MAX_CHIP_PATHS]; /* can be 0, in which case the default is taken */ char *configuration; /* can be 0. */ diff --git a/src/include/device/device.h b/src/include/device/device.h index e7b0317db3..1b2b0169dc 100644 --- a/src/include/device/device.h +++ b/src/include/device/device.h @@ -35,6 +35,7 @@ struct bus { * combination: */ +struct chip; struct device { struct bus * bus; /* bus this device is on */ device_t sibling; /* next device on this bus */ @@ -72,6 +73,7 @@ struct device { unsigned long rom_address; struct device_operations *ops; + struct chip *chip; }; extern struct device dev_root; /* root bus */ @@ -94,7 +96,7 @@ extern void enumerate_static_device(void); extern const char *dev_path(device_t dev); /* Helper functions */ -device_t alloc_find_dev(struct bus *bus, 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_class (unsigned int class, device_t from); device_t dev_find_slot (unsigned int bus, unsigned int devfn); diff --git a/src/include/device/path.h b/src/include/device/path.h index cf89a68466..20d76d1bbe 100644 --- a/src/include/device/path.h +++ b/src/include/device/path.h @@ -3,6 +3,7 @@ enum device_path_type { DEVICE_PATH_NONE = 0, + DEVICE_PATH_ROOT, DEVICE_PATH_PCI, DEVICE_PATH_PNP, DEVICE_PATH_I2C, @@ -10,6 +11,7 @@ enum device_path_type { struct pci_path { + unsigned bus; unsigned devfn; }; |