diff options
Diffstat (limited to 'src/include/device')
-rw-r--r-- | src/include/device/chip.h | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/include/device/chip.h b/src/include/device/chip.h index ea57ea4b5c..8de91a1129 100644 --- a/src/include/device/chip.h +++ b/src/include/device/chip.h @@ -22,6 +22,14 @@ struct lpt_ports { irq; // irq }; +enum chip_pass { + CHIP_PRE_CONSOLE, + CHIP_PRE_DEVICE_ENUMERATE, + CHIP_PRE_DEVICE_CONFIGURE, + CHIP_PRE_DEVICE_ENABLE, + CHIP_PRE_DEVICE_INITIALIZE, + CHIP_PRE_BOOT +}; /* linkages from devices of a type (e.g. superio devices) @@ -33,10 +41,7 @@ struct chip; /* there is one of these for each TYPE of chip */ struct chip_control { - void (*alloc)(struct chip *s); - void (*pre_pci_init)(struct chip *s); - void (*init)(struct chip *s); - void (*finishup)(struct chip *s); + void (*enable)(struct chip *, enum chip_pass); char *path; /* the default path. Can be overridden * by commands in config */ @@ -54,3 +59,5 @@ struct chip { void *chip_info; /* the dreaded "void *" */ }; +extern struct chip *root; +extern void chip_configure(struct chip *, enum chip_pass); |