Annotation of qemu/roms/ipxe/src/arch/i386/include/undi.h, revision 1.1.1.1

1.1       root        1: #ifndef _UNDI_H
                      2: #define _UNDI_H
                      3: 
                      4: /** @file
                      5:  *
                      6:  * UNDI driver
                      7:  *
                      8:  */
                      9: 
                     10: FILE_LICENCE ( GPL2_OR_LATER );
                     11: 
                     12: #ifndef ASSEMBLY
                     13: 
                     14: #include <ipxe/device.h>
                     15: #include <pxe_types.h>
                     16: 
                     17: /** An UNDI device
                     18:  *
                     19:  * This structure is used by assembly code as well as C; do not alter
                     20:  * this structure without editing pxeprefix.S to match.
                     21:  */
                     22: struct undi_device {
                     23:        /** PXENV+ structure address */
                     24:        SEGOFF16_t pxenv;
                     25:        /** !PXE structure address */
                     26:        SEGOFF16_t ppxe;
                     27:        /** Entry point */
                     28:        SEGOFF16_t entry;
                     29:        /** Free base memory after load */
                     30:        UINT16_t fbms;
                     31:        /** Free base memory prior to load */
                     32:        UINT16_t restore_fbms;
                     33:        /** PCI bus:dev.fn, or @c UNDI_NO_PCI_BUSDEVFN */
                     34:        UINT16_t pci_busdevfn;
                     35:        /** ISAPnP card select number, or @c UNDI_NO_ISAPNP_CSN */
                     36:        UINT16_t isapnp_csn;
                     37:        /** ISAPnP read port, or @c UNDI_NO_ISAPNP_READ_PORT */
                     38:        UINT16_t isapnp_read_port;
                     39:        /** PCI vendor ID
                     40:         *
                     41:         * Filled in only for the preloaded UNDI device by pxeprefix.S
                     42:         */
                     43:        UINT16_t pci_vendor;
                     44:        /** PCI device ID 
                     45:         *
                     46:         * Filled in only for the preloaded UNDI device by pxeprefix.S
                     47:         */
                     48:        UINT16_t pci_device;
                     49:        /** Flags
                     50:         *
                     51:         * This is the bitwise OR of zero or more UNDI_FL_XXX
                     52:         * constants.
                     53:         */
                     54:        UINT16_t flags;
                     55: 
                     56:        /** Generic device */
                     57:        struct device dev;
                     58:        /** Driver-private data
                     59:         *
                     60:         * Use undi_set_drvdata() and undi_get_drvdata() to access this
                     61:         * field.
                     62:         */
                     63:        void *priv;
                     64: } __attribute__ (( packed ));
                     65: 
                     66: /**
                     67:  * Set UNDI driver-private data
                     68:  *
                     69:  * @v undi             UNDI device
                     70:  * @v priv             Private data
                     71:  */
                     72: static inline void undi_set_drvdata ( struct undi_device *undi, void *priv ) {
                     73:        undi->priv = priv;
                     74: }
                     75: 
                     76: /**
                     77:  * Get UNDI driver-private data
                     78:  *
                     79:  * @v undi             UNDI device
                     80:  * @ret priv           Private data
                     81:  */
                     82: static inline void * undi_get_drvdata ( struct undi_device *undi ) {
                     83:        return undi->priv;
                     84: }
                     85: 
                     86: #endif /* ASSEMBLY */
                     87: 
                     88: /** PCI bus:dev.fn field is invalid */
                     89: #define UNDI_NO_PCI_BUSDEVFN 0xffff
                     90: 
                     91: /** ISAPnP card select number field is invalid */
                     92: #define UNDI_NO_ISAPNP_CSN 0xffff
                     93: 
                     94: /** ISAPnP read port field is invalid */
                     95: #define UNDI_NO_ISAPNP_READ_PORT 0xffff
                     96: 
                     97: /** UNDI flag: START_UNDI has been called */
                     98: #define UNDI_FL_STARTED 0x0001
                     99: 
                    100: /** UNDI flag: UNDI_STARTUP and UNDI_INITIALIZE have been called */
                    101: #define UNDI_FL_INITIALIZED 0x0002
                    102: 
                    103: /** UNDI flag: keep stack resident */
                    104: #define UNDI_FL_KEEP_ALL 0x0004
                    105: 
                    106: #endif /* _UNDI_H */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.