Use "struct undi_device" instead of "struct pxe_device", and use the
[people/xl0/gpxe.git] / src / arch / i386 / include / undi.h
1 #ifndef _UNDI_H
2 #define _UNDI_H
3
4 /** @file
5  *
6  * UNDI driver
7  *
8  */
9
10 /** An UNDI device */
11 struct undi_device {
12         /** Generic device */
13         struct device dev;
14         /** Driver-private data
15          *
16          * Use undi_set_drvdata() and undi_get_drvdata() to access this
17          * field.
18          */
19         void *priv;
20
21         /** PXENV+ structure address */
22         SEGOFF16_t pxenv;
23         /** !PXE structure address */
24         SEGOFF16_t ppxe;
25         /** Entry point */
26         SEGOFF16_t entry;
27         /** PCI bus:dev.fn, or 0 */
28         unsigned int pci_busdevfn;
29         /** ISAPnP card select number, or -1U */
30         unsigned int isapnp_csn;
31         /** ISAPnP read port, or -1U */
32         unsigned int isapnp_read_port;
33         /** Free base memory prior to load */
34         unsigned int restore_fbms;
35         /** Free base memory after load */
36         unsigned int fbms;
37 };
38
39 /**
40  * Set UNDI driver-private data
41  *
42  * @v undi              UNDI device
43  * @v priv              Private data
44  */
45 static inline void undi_set_drvdata ( struct undi_device *undi, void *priv ) {
46         undi->priv = priv;
47 }
48
49 /**
50  * Get UNDI driver-private data
51  *
52  * @v undi              UNDI device
53  * @ret priv            Private data
54  */
55 static inline void * undi_get_drvdata ( struct undi_device *undi ) {
56         return undi->priv;
57 }
58
59 #endif /* _UNDI_H */