Merge branch 'master' of git://github.com/illumos/illumos-gate
[unleashed.git] / usr / src / grub / grub-0.97 / netboot / dev.h
blob5578e8ef0c1a855d1f8e7dbaefd2aa73b75923b5
1 #ifndef _DEV_H
2 #define _DEV_H
4 #include "isa.h"
5 #include "pci.h"
7 /* Need to check the packing of this struct if Etherboot is ported */
8 struct dev_id
10 unsigned short vendor_id;
11 unsigned short device_id;
12 unsigned char bus_type;
13 #define PCI_BUS_TYPE 1
14 #define ISA_BUS_TYPE 2
17 /* Dont use sizeof, that will include the padding */
18 #define DEV_ID_SIZE 8
21 struct pci_probe_state
23 #ifdef CONFIG_PCI
24 struct pci_device dev;
25 int advance;
26 #else
27 int dummy;
28 #endif
30 struct isa_probe_state
32 #ifdef CONFIG_ISA
33 const struct isa_driver *driver;
34 int advance;
35 #else
36 int dummy;
37 #endif
40 union probe_state
42 struct pci_probe_state pci;
43 struct isa_probe_state isa;
46 struct dev
48 void (*disable)P((struct dev *));
49 struct dev_id devid; /* device ID string (sent to DHCP server) */
50 int index; /* Index of next device on this controller to probe */
51 int type; /* Type of device I am probing for */
52 int how_probe; /* First, next or awake */
53 int to_probe; /* Flavor of device I am probing */
54 int failsafe; /* Failsafe probe requested */
55 int type_index; /* Index of this device (within type) */
56 #define PROBE_NONE 0
57 #define PROBE_PCI 1
58 #define PROBE_ISA 2
59 union probe_state state;
63 #define NIC_DRIVER 0
64 #define DISK_DRIVER 1
65 #define FLOPPY_DRIVER 2
67 #define BRIDGE_DRIVER 1000
69 #define PROBE_FIRST (-1)
70 #define PROBE_NEXT 0
71 #define PROBE_AWAKE 1 /* After calling disable bring up the same device */
73 /* The probe result codes are selected
74 * to allow them to be fed back into the probe
75 * routine and get a successful probe.
77 #define PROBE_FAILED PROBE_FIRST
78 #define PROBE_WORKED PROBE_NEXT
80 extern int probe(struct dev *dev);
81 extern void disable(struct dev *dev);
83 #endif /* _DEV_H */