Annotation of qemu/roms/ipxe/src/arch/i386/include/undi.h, revision 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.