Annotation of qemu/roms/ipxe/src/arch/i386/include/pxe.h, revision 1.1

1.1     ! root        1: #ifndef PXE_H
        !             2: #define PXE_H
        !             3: 
        !             4: FILE_LICENCE ( GPL2_OR_LATER );
        !             5: 
        !             6: #include "pxe_types.h"
        !             7: #include "pxe_api.h"
        !             8: #include <ipxe/device.h>
        !             9: 
        !            10: /* Parameter block for pxenv_unknown() */
        !            11: struct s_PXENV_UNKNOWN {
        !            12:        PXENV_STATUS_t Status;                  /**< PXE status code */
        !            13: } __attribute__ (( packed ));
        !            14: 
        !            15: typedef struct s_PXENV_UNKNOWN PXENV_UNKNOWN_t;
        !            16: 
        !            17: /* Union used for PXE API calls; we don't know the type of the
        !            18:  * structure until we interpret the opcode.  Also, Status is available
        !            19:  * in the same location for any opcode, and it's convenient to have
        !            20:  * non-specific access to it.
        !            21:  */
        !            22: union u_PXENV_ANY {
        !            23:        /* Make it easy to read status for any operation */
        !            24:        PXENV_STATUS_t                          Status;
        !            25:        struct s_PXENV_UNKNOWN                  unknown;
        !            26:        struct s_PXENV_UNLOAD_STACK             unload_stack;
        !            27:        struct s_PXENV_GET_CACHED_INFO          get_cached_info;
        !            28:        struct s_PXENV_TFTP_READ_FILE           restart_tftp;
        !            29:        struct s_PXENV_START_UNDI               start_undi;
        !            30:        struct s_PXENV_STOP_UNDI                stop_undi;
        !            31:        struct s_PXENV_START_BASE               start_base;
        !            32:        struct s_PXENV_STOP_BASE                stop_base;
        !            33:        struct s_PXENV_TFTP_OPEN                tftp_open;
        !            34:        struct s_PXENV_TFTP_CLOSE               tftp_close;
        !            35:        struct s_PXENV_TFTP_READ                tftp_read;
        !            36:        struct s_PXENV_TFTP_READ_FILE           tftp_read_file;
        !            37:        struct s_PXENV_TFTP_GET_FSIZE           tftp_get_fsize;
        !            38:        struct s_PXENV_UDP_OPEN                 udp_open;
        !            39:        struct s_PXENV_UDP_CLOSE                udp_close;
        !            40:        struct s_PXENV_UDP_WRITE                udp_write;
        !            41:        struct s_PXENV_UDP_READ                 udp_read;
        !            42:        struct s_PXENV_UNDI_STARTUP             undi_startup;
        !            43:        struct s_PXENV_UNDI_CLEANUP             undi_cleanup;
        !            44:        struct s_PXENV_UNDI_INITIALIZE          undi_initialize;
        !            45:        struct s_PXENV_UNDI_RESET               undi_reset_adapter;
        !            46:        struct s_PXENV_UNDI_SHUTDOWN            undi_shutdown;
        !            47:        struct s_PXENV_UNDI_OPEN                undi_open;
        !            48:        struct s_PXENV_UNDI_CLOSE               undi_close;
        !            49:        struct s_PXENV_UNDI_TRANSMIT            undi_transmit;
        !            50:        struct s_PXENV_UNDI_SET_MCAST_ADDRESS   undi_set_mcast_address;
        !            51:        struct s_PXENV_UNDI_SET_STATION_ADDRESS undi_set_station_address;
        !            52:        struct s_PXENV_UNDI_SET_PACKET_FILTER   undi_set_packet_filter;
        !            53:        struct s_PXENV_UNDI_GET_INFORMATION     undi_get_information;
        !            54:        struct s_PXENV_UNDI_GET_STATISTICS      undi_get_statistics;
        !            55:        struct s_PXENV_UNDI_CLEAR_STATISTICS    undi_clear_statistics;
        !            56:        struct s_PXENV_UNDI_INITIATE_DIAGS      undi_initiate_diags;
        !            57:        struct s_PXENV_UNDI_FORCE_INTERRUPT     undi_force_interrupt;
        !            58:        struct s_PXENV_UNDI_GET_MCAST_ADDRESS   undi_get_mcast_address;
        !            59:        struct s_PXENV_UNDI_GET_NIC_TYPE        undi_get_nic_type;
        !            60:        struct s_PXENV_UNDI_GET_IFACE_INFO      undi_get_iface_info;
        !            61:        struct s_PXENV_UNDI_GET_STATE           undi_get_state;
        !            62:        struct s_PXENV_UNDI_ISR                 undi_isr;
        !            63:        struct s_PXENV_FILE_OPEN                file_open;
        !            64:        struct s_PXENV_FILE_CLOSE               file_close;
        !            65:        struct s_PXENV_FILE_SELECT              file_select;
        !            66:        struct s_PXENV_FILE_READ                file_read;
        !            67:        struct s_PXENV_GET_FILE_SIZE            get_file_size;
        !            68:        struct s_PXENV_FILE_EXEC                file_exec;
        !            69:        struct s_PXENV_FILE_API_CHECK           file_api_check;
        !            70:        struct s_PXENV_FILE_EXIT_HOOK           file_exit_hook;
        !            71: };
        !            72: 
        !            73: typedef union u_PXENV_ANY PXENV_ANY_t;
        !            74: 
        !            75: /** An UNDI expansion ROM header */
        !            76: struct undi_rom_header {
        !            77:        /** Signature
        !            78:         *
        !            79:         * Must be equal to @c ROM_SIGNATURE
        !            80:         */
        !            81:        UINT16_t Signature;
        !            82:        /** ROM length in 512-byte blocks */
        !            83:        UINT8_t ROMLength;
        !            84:        /** Unused */
        !            85:        UINT8_t unused[0x13];
        !            86:        /** Offset of the PXE ROM ID structure */
        !            87:        UINT16_t PXEROMID;
        !            88:        /** Offset of the PCI ROM structure */
        !            89:        UINT16_t PCIRHeader;
        !            90: } __attribute__ (( packed ));
        !            91: 
        !            92: /** Signature for an expansion ROM */
        !            93: #define ROM_SIGNATURE 0xaa55
        !            94: 
        !            95: /** An UNDI ROM ID structure */
        !            96: struct undi_rom_id {
        !            97:        /** Signature
        !            98:         *
        !            99:         * Must be equal to @c UNDI_ROM_ID_SIGNATURE
        !           100:         */
        !           101:        UINT32_t Signature;
        !           102:        /** Length of structure */
        !           103:        UINT8_t StructLength;
        !           104:        /** Checksum */
        !           105:        UINT8_t StructCksum;
        !           106:        /** Structure revision
        !           107:         *
        !           108:         * Must be zero.
        !           109:         */
        !           110:        UINT8_t StructRev;
        !           111:        /** UNDI revision
        !           112:         *
        !           113:         * Version 2.1.0 is encoded as the byte sequence 0x00, 0x01, 0x02.
        !           114:         */
        !           115:        UINT8_t UNDIRev[3];
        !           116:        /** Offset to UNDI loader */
        !           117:        UINT16_t UNDILoader;
        !           118:        /** Minimum required stack segment size */
        !           119:        UINT16_t StackSize;
        !           120:        /** Minimum required data segment size */
        !           121:        UINT16_t DataSize;
        !           122:        /** Minimum required code segment size */
        !           123:        UINT16_t CodeSize;
        !           124: } __attribute__ (( packed ));
        !           125: 
        !           126: /** Signature for an UNDI ROM ID structure */
        !           127: #define UNDI_ROM_ID_SIGNATURE \
        !           128:        ( ( 'U' << 0 ) + ( 'N' << 8 ) + ( 'D' << 16 ) + ( 'I' << 24 ) )
        !           129: 
        !           130: /** A PCI expansion header */
        !           131: struct pcir_header {
        !           132:        /** Signature
        !           133:         *
        !           134:         * Must be equal to @c PCIR_SIGNATURE
        !           135:         */
        !           136:        uint32_t signature;
        !           137:        /** PCI vendor ID */
        !           138:        uint16_t vendor_id;
        !           139:        /** PCI device ID */
        !           140:        uint16_t device_id;
        !           141: } __attribute__ (( packed ));
        !           142: 
        !           143: /** Signature for an UNDI ROM ID structure */
        !           144: #define PCIR_SIGNATURE \
        !           145:        ( ( 'P' << 0 ) + ( 'C' << 8 ) + ( 'I' << 16 ) + ( 'R' << 24 ) )
        !           146: 
        !           147: 
        !           148: extern struct net_device *pxe_netdev;
        !           149: 
        !           150: extern void pxe_set_netdev ( struct net_device *netdev );
        !           151: 
        !           152: #endif /* PXE_H */

unix.superglobalmegacorp.com

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