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