8 /* Need to check the packing of this struct if Etherboot is ported */
11 unsigned short vendor_id;
12 unsigned short device_id;
13 unsigned char bus_type;
14 #define PCI_BUS_TYPE 1
15 #define ISA_BUS_TYPE 2
18 /* Dont use sizeof, that will include the padding */
22 struct pci_probe_state
25 struct pci_device dev;
31 struct isa_probe_state
34 const struct isa_driver *driver;
43 struct pci_probe_state pci;
44 struct isa_probe_state isa;
49 void (*disable)P((struct dev *));
50 struct dev_id devid; /* device ID string (sent to DHCP server) */
51 int index; /* Index of next device on this controller to probe */
52 int type; /* Type of device I am probing for */
53 int how_probe; /* First, next or awake */
54 int to_probe; /* Flavor of device I am probing */
55 int failsafe; /* Failsafe probe requested */
56 int type_index; /* Index of this device (within type) */
57 union probe_state state;
71 #define FLOPPY_DRIVER 2
73 #define BRIDGE_DRIVER 1000
75 #define PROBE_FIRST (-1)
77 #define PROBE_AWAKE 1 /* After calling disable bring up the same device */
79 /* The probe result codes are selected
80 * to allow them to be fed back into the probe
81 * routine and get a successful probe.
83 #define PROBE_FAILED PROBE_FIRST
84 #define PROBE_WORKED PROBE_NEXT
86 extern int probe(struct dev *dev);
87 extern void disable(struct dev *dev);