2
0
mirror of https://github.com/xcat2/xNBA.git synced 2024-12-14 07:11:32 +00:00

Worked out a sensible doxygen grouping

This commit is contained in:
Michael Brown 2005-05-22 00:59:09 +00:00
parent 29733a153d
commit 1e0a5d8b30
2 changed files with 792 additions and 128 deletions

View File

@ -1,10 +1,6 @@
#ifndef PXE_API_H
#define PXE_API_H
/** @addtogroup pxe Preboot eXecution Environment (PXE) API
* @{
*/
/** @file
*
* Preboot eXecution Environment (PXE) API
@ -13,169 +9,834 @@
#include "pxe_types.h"
/** @defgroup pxe_code PXE API function codes
/** @addtogroup pxe Preboot eXecution Environment (PXE) API
* @{
*/
/** @defgroup pxe_preboot_api PXE Preboot API
*
* General high-level functions: #PXENV_UNLOAD_STACK, #PXENV_START_UNDI etc.
*
* @{
*/
/** START UNDI (call function pxenv_start_undi())*/
#define PXENV_START_UNDI 0x0000
/** UNDI STARTUP (call function pxenv_undi_startup()) */
#define PXENV_UNDI_STARTUP 0x0001
/** UNDI CLEANUP (call function pxenv_undi_cleanup()) */
#define PXENV_UNDI_CLEANUP 0x0002
/** UNDI INITIALIZE (call function pxenv_undi_initialize()) */
#define PXENV_UNDI_INITIALIZE 0x0003
/** UNDI RESET ADAPTER (call function pxenv_undi_reset_adapter()) */
#define PXENV_UNDI_RESET_ADAPTER 0x0004
/** UNDI SHUTDOWN (call function pxenv_undi_shutdown()) */
#define PXENV_UNDI_SHUTDOWN 0x0005
/** UNDI OPEN (call function pxenv_undi_open()) */
#define PXENV_UNDI_OPEN 0x0006
/** UNDI CLOSE (call function pxenv_undi_close()) */
#define PXENV_UNDI_CLOSE 0x0007
/** UNDI TRANSMIT PACKET (call function pxenv_undi_transmit()) */
#define PXENV_UNDI_TRANSMIT 0x0008
/** UNDI SET MULTICAST ADDRESS
* (call function pxenv_undi_set_mcast_address()) */
#define PXENV_UNDI_SET_MCAST_ADDRESS 0x0009
/** UNDI SET STATION ADDRESS
* (call function pxenv_undi_set_station_address()) */
#define PXENV_UNDI_SET_STATION_ADDRESS 0x000A
/** UNDI SET PACKET FILTER (call function pxenv_undi_set_packet_filter()) */
#define PXENV_UNDI_SET_PACKET_FILTER 0x000B
/** UNDI GET INFORMATION (call function pxenv_undi_get_information()) */
#define PXENV_UNDI_GET_INFORMATION 0x000C
/** UNDI GET STATISTICS (call function pxenv_undi_get_statistics()) */
#define PXENV_UNDI_GET_STATISTICS 0x000D
/** UNDI CLEAR STATISTICS (call function pxenv_undi_get_statistics()) */
#define PXENV_UNDI_CLEAR_STATISTICS 0x000E
/** UNDI INITIATE DIAGS (call function pxenv_undi_initiate_diags()) */
#define PXENV_UNDI_INITIATE_DIAGS 0x000F
/** UNDI FORCE INTERRUPT (call function pxenv_undi_force_interrupt()) */
#define PXENV_UNDI_FORCE_INTERRUPT 0x0010
/** UNDI GET MULTICAST ADDRESS
* (call function pxenv_undi_get_mcast_address()) */
#define PXENV_UNDI_GET_MCAST_ADDRESS 0x0011
/** UNDI GET NIC TYPE (call function pxenv_undi_get_nic_type()) */
#define PXENV_UNDI_GET_NIC_TYPE 0x0012
/** UNDI GET IFACE INFO (call function pxenv_undi_get_iface_info()) */
#define PXENV_UNDI_GET_IFACE_INFO 0x0013
/** UNDI ISR (call function pxenv_undi_isr()) */
#define PXENV_UNDI_ISR 0x0014
/** UNDI GET STATE (call function pxenv_undi_get_state()) */
#define PXENV_UNDI_GET_STATE 0x0015
/** STOP UNDI (call function pxenv_stop_undi()) */
#define PXENV_STOP_UNDI 0x0015
/** TFTP OPEN (call function pxenv_tftp_open()) */
#define PXENV_TFTP_OPEN 0x0020
/** TFTP CLOSE (call function pxenv_tftp_close()) */
#define PXENV_TFTP_CLOSE 0x0021
/** TFTP READ (call function pxenv_tftp_read()) */
#define PXENV_TFTP_READ 0x0022
/** TFTP/MTFTP READ FILE (call function pxenv_tftp_read_file()) */
#define PXENV_TFTP_READ_FILE 0x0023
/** TFTP GET FILE SIZE (call function pxenv_tftp_get_fsize()) */
#define PXENV_TFTP_GET_FSIZE 0x0025
/** UDP OPEN (call function pxenv_udp_open()) */
#define PXENV_UDP_OPEN 0x0030
/** UDP CLOSE (call function pxenv_udp_close()) */
#define PXENV_UDP_CLOSE 0x0031
/** UDP WRITE (call function pxenv_udp_write()) */
#define PXENV_UDP_READ 0x0032
/** UDP READ (call function pxenv_udp_read()) */
#define PXENV_UDP_WRITE 0x0033
/** UNLOAD BASE CODE STACK (call function pxenv_unload_stack()) */
/** @defgroup pxenv_unload_stack PXENV_UNLOAD_STACK
*
* UNLOAD BASE CODE STACK
*
* @{
*/
/** PXE API function code for pxenv_unload_stack() */
#define PXENV_UNLOAD_STACK 0x0070
/** GET CACHED INFO (call function pxenv_get_cached_info()) */
#define PXENV_GET_CACHED_INFO 0x0071
/** RESTART TFTP (call function pxenv_restart_tftp()) */
#define PXENV_RESTART_TFTP 0x0073
/** START BASE (call function pxenv_start_base()) */
#define PXENV_START_BASE 0x0075
/** STOP BASE (call function pxenv_stop_base()) */
#define PXENV_STOP_BASE 0x0076
/** @} */
/** @defgroup pxe_preboot PXE Preboot API
* @{
*/
/** Parameter block for pxenv_unload_stack() */
struct s_PXENV_UNLOAD_STACK {
PXENV_STATUS_t Status; /**< PXE status code */
UINT8_t reserved[10]; /**< Must be zero */
} PACKED;
typedef struct s_PXENV_UNLOAD_STACK PXENV_UNLOAD_STACK_t;
extern PXENV_EXIT_t pxenv_unload_stack ( struct s_PXENV_UNLOAD_STACK
*unload_stack );
/** @} */ /* pxenv_unload_stack */
/** @defgroup pxenv_get_cached_info PXENV_GET_CACHED_INFO
*
* GET CACHED INFO
*
* @{
*/
/** PXE API function code for pxenv_get_cached_info() */
#define PXENV_GET_CACHED_INFO 0x0071
/** The client's DHCPDISCOVER packet */
#define PXENV_PACKET_TYPE_DHCP_DISCOVER 1
/** The DHCP server's DHCPACK packet */
#define PXENV_PACKET_TYPE_DHCP_ACK 2
/** The Boot Server's Discover Reply packet
*
* This packet contains DHCP option 60 set to "PXEClient", a valid
* boot file name, and may or may not contain MTFTP options.
*/
#define PXENV_PACKET_TYPE_CACHED_REPLY 3
/** Parameter block for pxenv_get_cached_info() */
struct s_PXENV_GET_CACHED_INFO {
PXENV_STATUS_t Status; /**< PXE status code */
/** Packet type.
*
* Valid values are #PXENV_PACKET_TYPE_DHCP_DISCOVER,
* #PXENV_PACKET_TYPE_DHCP_ACK or #PXENV_PACKET_TYPE_CACHED_REPLY
*/
UINT16_t PacketType;
UINT16_t BufferSize; /**< Buffer size */
SEGOFF16_t Buffer; /**< Buffer address */
UINT16_t BufferLimit /**< Maximum buffer size */
} PACKED;
typedef struct s_PXENV_GET_CACHED_INFO PXENV_GET_CACHED_INFO_t;
extern PXENV_EXIT_t pxenv_get_cached_info ( struct s_PXENV_GET_CACHED_INFO
*get_cached_info );
/** @} */ /* pxenv_get_cached_info */
/** @defgroup pxenv_restart_tftp PXENV_RESTART_TFTP
*
* RESTART TFTP
*
* @{
*/
/** PXE API function code for pxenv_restart_tftp() */
#define PXENV_RESTART_TFTP 0x0073
/** Parameter block for pxenv_restart_tftp() */
struct s_PXENV_RESTART_TFTP {
} PACKED;
typedef struct s_PXENV_RESTART_TFTP PXENV_RESTART_TFTP_t;
extern PXENV_EXIT_t pxenv_restart_tftp ( struct s_PXENV_TFTP_READ_FILE
*restart_tftp );
extern PXENV_EXIT_t pxenv_start_undi ( struct s_PXENV_START_UNDI *start_undi );
extern PXENV_EXIT_t pxenv_stop_undi ( struct s_PXENV_STOP_UNDI *stop_undi );
extern PXENV_EXIT_t pxenv_start_base ( struct s_PXENV_START_BASE *start_base );
extern PXENV_EXIT_t pxenv_stop_base ( struct s_PXENV_STOP_BASE *stop_base );
/** @} */
/** @defgroup pxe_tftp PXE TFTP API
/** @} */ /* pxenv_restart_tftp */
/** @defgroup pxenv_start_undi PXENV_START_UNDI
*
* START UNDI
*
* @{
*/
/** PXE API function code for pxenv_start_undi() */
#define PXENV_START_UNDI 0x0000
/** Parameter block for pxenv_start_undi() */
struct s_PXENV_START_UNDI {
} PACKED;
typedef struct s_PXENV_START_UNDI PXENV_START_UNDI_t;
extern PXENV_EXIT_t pxenv_start_undi ( struct s_PXENV_START_UNDI *start_undi );
/** @} */ /* pxenv_start_undi */
/** @defgroup pxenv_stop_undi PXENV_STOP_UNDI
*
* STOP UNDI
*
* @{
*/
/** PXE API function code for pxenv_stop_undi() */
#define PXENV_STOP_UNDI 0x0015
/** Parameter block for pxenv_stop_undi() */
struct s_PXENV_STOP_UNDI {
} PACKED;
typedef struct s_PXENV_STOP_UNDI PXENV_STOP_UNDI_t;
extern PXENV_EXIT_t pxenv_stop_undi ( struct s_PXENV_STOP_UNDI *stop_undi );
/** @} */ /* pxenv_stop_undi */
/** @defgroup pxenv_start_base PXENV_START_BASE
*
* START BASE
*
* @{
*/
/** PXE API function code for pxenv_start_base() */
#define PXENV_START_BASE 0x0075
/** Parameter block for pxenv_start_base() */
struct s_PXENV_START_BASE {
} PACKED;
typedef struct s_PXENV_START_BASE PXENV_START_BASE_t;
extern PXENV_EXIT_t pxenv_start_base ( struct s_PXENV_START_BASE *start_base );
/** @} */ /* pxenv_start_base */
/** @defgroup pxenv_stop_base PXENV_STOP_BASE
*
* STOP BASE
*
* @{
*/
/** PXE API function code for pxenv_stop_base() */
#define PXENV_STOP_BASE 0x0076
/** Parameter block for pxenv_stop_base() */
struct s_PXENV_STOP_BASE {
} PACKED;
typedef struct s_PXENV_STOP_BASE PXENV_STOP_BASE_t;
extern PXENV_EXIT_t pxenv_stop_base ( struct s_PXENV_STOP_BASE *stop_base );
/** @} */ /* pxenv_stop_base */
/** @} */ /* pxe_preboot_api */
/** @defgroup pxe_tftp_api PXE TFTP API
*
* Download files via TFTP or MTFTP
*
* @{
*/
/** @defgroup pxenv_tftp_open PXENV_TFTP_OPEN
*
* TFTP OPEN
*
* @{
*/
/** PXE API function code for pxenv_tftp_open() */
#define PXENV_TFTP_OPEN 0x0020
/** Parameter block for pxenv_tftp_open() */
struct s_PXENV_TFTP_OPEN {
} PACKED;
typedef struct s_PXENV_TFTP_OPEN PXENV_TFTP_OPEN_t;
extern PXENV_EXIT_t pxenv_tftp_open ( struct s_PXENV_TFTP_OPEN *tftp_open );
/** @} */ /* pxenv_tftp_open */
/** @defgroup pxenv_tftp_close PXENV_TFTP_CLOSE
*
* TFTP CLOSE
*
* @{
*/
/** PXE API function code for pxenv_tftp_close() */
#define PXENV_TFTP_CLOSE 0x0021
/** Parameter block for pxenv_tftp_close() */
struct s_PXENV_TFTP_CLOSE {
} PACKED;
typedef struct s_PXENV_TFTP_CLOSE PXENV_TFTP_CLOSE_t;
extern PXENV_EXIT_t pxenv_tftp_close ( struct s_PXENV_TFTP_CLOSE *tftp_close );
/** @} */ /* pxenv_tftp_close */
/** @defgroup pxenv_tftp_read PXENV_TFTP_READ
*
* TFTP READ
*
* @{
*/
/** PXE API function code for pxenv_tftp_read() */
#define PXENV_TFTP_READ 0x0022
/** Parameter block for pxenv_tftp_read() */
struct s_PXENV_TFTP_READ {
} PACKED;
typedef struct s_PXENV_TFTP_READ PXENV_TFTP_READ_t;
extern PXENV_EXIT_t pxenv_tftp_read ( struct s_PXENV_TFTP_READ *tftp_read );
/** @} */ /* pxenv_tftp_read */
/** @defgroup pxenv_tftp_read_file PXENV_TFTP_READ_FILE
*
* TFTP/MTFTP READ FILE
*
* @{
*/
/** PXE API function code for pxenv_tftp_read_file() */
#define PXENV_TFTP_READ_FILE 0x0023
/** Parameter block for pxenv_tftp_read_file() */
struct s_PXENV_TFTP_READ_FILE {
} PACKED;
typedef struct s_PXENV_TFTP_READ_FILE PXENV_TFTP_READ_FILE_t;
extern PXENV_EXIT_t pxenv_tftp_read_file ( struct s_PXENV_TFTP_READ_FILE
*tftp_read_file );
/** @} */ /* pxenv_tftp_read_file */
/** @defgroup pxenv_tftp_get_fsize PXENV_TFTP_GET_FSIZE
*
* TFTP GET FILE SIZE
*
* @{
*/
/** PXE API function code for pxenv_tftp_get_fsize() */
#define PXENV_TFTP_GET_FSIZE 0x0025
/** Parameter block for pxenv_tftp_get_fsize() */
struct s_PXENV_TFTP_GET_FSIZE {
} PACKED;
typedef struct s_PXENV_TFTP_GET_FSIZE PXENV_TFTP_GET_FSIZE_t;
extern PXENV_EXIT_t pxenv_tftp_get_fsize ( struct s_PXENV_TFTP_GET_FSIZE
*get_fsize );
/** @} */
/** @defgroup pxe_udp PXE UDP API
/** @} */ /* pxenv_tftp_get_fsize */
/** @} */ /* pxe_tftp_api */
/** @defgroup pxe_udp_api PXE UDP API
*
* Transmit and receive UDP packets
*
* @{
*/
/** @defgroup pxenv_udp_open PXENV_UDP_OPEN
*
* UDP OPEN
*
* @{
*/
/** PXE API function code for pxenv_udp_open() */
#define PXENV_UDP_OPEN 0x0030
/** Parameter block for pxenv_udp_open() */
struct s_PXENV_UDP_OPEN {
} PACKED;
typedef struct s_PXENV_UDP_OPEN PXENV_UDP_OPEN_t;
extern PXENV_EXIT_t pxenv_udp_open ( struct s_PXENV_UDP_OPEN *udp_open );
extern PXENV_EXIT_t pxenv_udp_close ( struct s_PXENV_UDP_CLOSE *udp_close );
extern PXENV_EXIT_t pxenv_udp_write ( struct s_PXENV_UDP_WRITE *udp_write );
extern PXENV_EXIT_t pxenv_udp_read ( struct s_PXENV_UDP_READ *udp_read );
/** @} */
/** @defgroup pxe_undi PXE UNDI API
/** @} */ /* pxenv_udp_open */
/** @defgroup pxenv_udp_close PXENV_UDP_CLOSE
*
* UDP CLOSE
*
* @{
*/
/** PXE API function code for pxenv_udp_close() */
#define PXENV_UDP_CLOSE 0x0031
/** Parameter block for pxenv_udp_close() */
struct s_PXENV_UDP_CLOSE {
} PACKED;
typedef struct s_PXENV_UDP_CLOSE PXENV_UDP_CLOSE_t;
extern PXENV_EXIT_t pxenv_udp_close ( struct s_PXENV_UDP_CLOSE *udp_close );
/** @} */ /* pxenv_udp_close */
/** @defgroup pxenv_udp_write PXENV_UDP_WRITE
*
* UDP WRITE
*
* @{
*/
/** PXE API function code for pxenv_udp_write() */
#define PXENV_UDP_WRITE 0x0033
/** Parameter block for pxenv_udp_write() */
struct s_PXENV_UDP_WRITE {
} PACKED;
typedef struct s_PXENV_UDP_WRITE PXENV_UDP_WRITE_t;
extern PXENV_EXIT_t pxenv_udp_write ( struct s_PXENV_UDP_WRITE *udp_write );
/** @} */ /* pxenv_udp_write */
/** @defgroup pxenv_udp_read PXENV_UDP_READ
*
* UDP READ
*
* @{
*/
/** PXE API function code for pxenv_udp_read() */
#define PXENV_UDP_READ 0x0032
/** Parameter block for pxenv_udp_read() */
struct s_PXENV_UDP_READ {
} PACKED;
typedef struct s_PXENV_UDP_READ PXENV_UDP_READ_t;
extern PXENV_EXIT_t pxenv_udp_read ( struct s_PXENV_UDP_READ *udp_read );
/** @} */ /* pxenv_udp_read */
/** @} */ /* pxe_udp_api */
/** @defgroup pxe_undi_api PXE UNDI API
*
* Direct control of the network interface card
*
* @{
*/
/** @defgroup pxenv_undi_startup PXENV_UNDI_STARTUP
*
* UNDI STARTUP
*
* @{
*/
/** PXE API function code for pxenv_undi_startup() */
#define PXENV_UNDI_STARTUP 0x0001
/** Parameter block for pxenv_undi_startup() */
struct s_PXENV_UNDI_STARTUP {
} PACKED;
typedef struct s_PXENV_UNDI_STARTUP PXENV_UNDI_STARTUP_t;
extern PXENV_EXIT_t pxenv_undi_startup ( struct s_PXENV_UNDI_STARTUP
*undi_startup );
/** @} */ /* pxenv_undi_startup */
/** @defgroup pxenv_undi_cleanup PXENV_UNDI_CLEANUP
*
* UNDI CLEANUP
*
* @{
*/
/** PXE API function code for pxenv_undi_cleanup() */
#define PXENV_UNDI_CLEANUP 0x0002
/** Parameter block for pxenv_undi_cleanup() */
struct s_PXENV_UNDI_CLEANUP {
} PACKED;
typedef struct s_PXENV_UNDI_CLEANUP PXENV_UNDI_CLEANUP_t;
extern PXENV_EXIT_t pxenv_undi_cleanup ( struct s_PXENV_UNDI_CLEANUP
*undi_cleanup );
/** @} */ /* pxenv_undi_cleanup */
/** @defgroup pxenv_undi_initialize PXENV_UNDI_INITIALIZE
*
* UNDI INITIALIZE
*
* @{
*/
/** PXE API function code for pxenv_undi_initialize() */
#define PXENV_UNDI_INITIALIZE 0x0003
/** Parameter block for pxenv_undi_initialize() */
struct s_PXENV_UNDI_INITIALIZE {
} PACKED;
typedef struct s_PXENV_UNDI_INITIALIZE PXENV_UNDI_INITIALIZE_t;
extern PXENV_EXIT_t pxenv_undi_initialize ( struct s_PXENV_UNDI_INITIALIZE
*undi_initialize );
/** @} */ /* pxenv_undi_initialize */
/** @defgroup pxenv_undi_reset_adapter PXENV_UNDI_RESET_ADAPTER
*
* UNDI RESET ADAPTER
*
* @{
*/
/** PXE API function code for pxenv_undi_reset_adapter() */
#define PXENV_UNDI_RESET_ADAPTER 0x0004
/** Parameter block for pxenv_undi_reset_adapter() */
struct s_PXENV_UNDI_RESET_ADAPTER {
} PACKED;
typedef struct s_PXENV_UNDI_RESET_ADAPTER PXENV_UNDI_RESET_ADAPTER_t;
extern PXENV_EXIT_t pxenv_undi_reset_adapter ( struct s_PXENV_UNDI_RESET
*undi_reset_adapter );
/** @} */ /* pxenv_undi_reset_adapter */
/** @defgroup pxenv_undi_shutdown PXENV_UNDI_SHUTDOWN
*
* UNDI SHUTDOWN
*
* @{
*/
/** PXE API function code for pxenv_undi_shutdown() */
#define PXENV_UNDI_SHUTDOWN 0x0005
/** Parameter block for pxenv_undi_shutdown() */
struct s_PXENV_UNDI_SHUTDOWN {
} PACKED;
typedef struct s_PXENV_UNDI_SHUTDOWN PXENV_UNDI_SHUTDOWN_t;
extern PXENV_EXIT_t pxenv_undi_shutdown ( struct s_PXENV_UNDI_SHUTDOWN
*undi_shutdown );
/** @} */ /* pxenv_undi_shutdown */
/** @defgroup pxenv_undi_open PXENV_UNDI_OPEN
*
* UNDI OPEN
*
* @{
*/
/** PXE API function code for pxenv_undi_open() */
#define PXENV_UNDI_OPEN 0x0006
/** Parameter block for pxenv_undi_open() */
struct s_PXENV_UNDI_OPEN {
} PACKED;
typedef struct s_PXENV_UNDI_OPEN PXENV_UNDI_OPEN_t;
extern PXENV_EXIT_t pxenv_undi_open ( struct s_PXENV_UNDI_OPEN *undi_open );
/** @} */ /* pxenv_undi_open */
/** @defgroup pxenv_undi_close PXENV_UNDI_CLOSE
*
* UNDI CLOSE
*
* @{
*/
/** PXE API function code for pxenv_undi_close() */
#define PXENV_UNDI_CLOSE 0x0007
/** Parameter block for pxenv_undi_close() */
struct s_PXENV_UNDI_CLOSE {
} PACKED;
typedef struct s_PXENV_UNDI_CLOSE PXENV_UNDI_CLOSE_t;
extern PXENV_EXIT_t pxenv_undi_close ( struct s_PXENV_UNDI_CLOSE *undi_close );
/** @} */ /* pxenv_undi_close */
/** @defgroup pxenv_undi_transmit PXENV_UNDI_TRANSMIT
*
* UNDI TRANSMIT PACKET
*
* @{
*/
/** PXE API function code for pxenv_undi_transmit() */
#define PXENV_UNDI_TRANSMIT 0x0008
/** Parameter block for pxenv_undi_transmit() */
struct s_PXENV_UNDI_TRANSMIT {
} PACKED;
typedef struct s_PXENV_UNDI_TRANSMIT PXENV_UNDI_TRANSMIT_t;
extern PXENV_EXIT_t pxenv_undi_transmit ( struct s_PXENV_UNDI_TRANSMIT
*undi_transmit );
/** @} */ /* pxenv_undi_transmit */
/** @defgroup pxenv_undi_set_mcast_address PXENV_UNDI_SET_MCAST_ADDRESS
*
* UNDI SET MULTICAST ADDRESS
*
* @{
*/
/** PXE API function code for pxenv_undi_set_mcast_address() */
#define PXENV_UNDI_SET_MCAST_ADDRESS 0x0009
/** Parameter block for pxenv_undi_set_mcast_address() */
struct s_PXENV_UNDI_SET_MCAST_ADDRESS {
} PACKED;
typedef struct s_PXENV_UNDI_SET_MCAST_ADDRESS PXENV_UNDI_SET_MCAST_ADDRESS_t;
extern PXENV_EXIT_t pxenv_undi_set_mcast_address (
struct s_PXENV_UNDI_SET_MCAST_ADDRESS *undi_set_mcast_address );
/** @} */ /* pxenv_undi_set_mcast_address */
/** @defgroup pxenv_undi_set_station_address PXENV_UNDI_SET_STATION_ADDRESS
*
* UNDI SET STATION ADDRESS
*
* @{
*/
/** PXE API function code for pxenv_undi_set_station_address() */
#define PXENV_UNDI_SET_STATION_ADDRESS 0x000a
/** Parameter block for pxenv_undi_set_station_address() */
struct s_PXENV_UNDI_SET_STATION_ADDRESS {
} PACKED;
typedef struct s_PXENV_UNDI_SET_STATION_ADDRESS PXENV_UNDI_SET_STATION_ADDRESS_t;
extern PXENV_EXIT_t pxenv_undi_set_station_address (
struct s_PXENV_UNDI_SET_STATION_ADDRESS *undi_set_station_address );
/** @} */ /* pxenv_undi_set_station_address */
/** @defgroup pxenv_undi_set_packet_filter PXENV_UNDI_SET_PACKET_FILTER
*
* UNDI SET PACKET FILTER
*
* @{
*/
/** PXE API function code for pxenv_undi_set_packet_filter() */
#define PXENV_UNDI_SET_PACKET_FILTER 0x000b
/** Parameter block for pxenv_undi_set_packet_filter() */
struct s_PXENV_UNDI_SET_PACKET_FILTER {
} PACKED;
typedef struct s_PXENV_UNDI_SET_PACKET_FILTER PXENV_UNDI_SET_PACKET_FILTER_t;
extern PXENV_EXIT_t pxenv_undi_set_packet_filter (
struct s_PXENV_UNDI_SET_PACKET_FILTER *undi_set_packet_filter );
/** @} */ /* pxenv_undi_set_packet_filter */
/** @defgroup pxenv_undi_get_information PXENV_UNDI_GET_INFORMATION
*
* UNDI GET INFORMATION
*
* @{
*/
/** PXE API function code for pxenv_undi_get_information() */
#define PXENV_UNDI_GET_INFORMATION 0x000c
/** Parameter block for pxenv_undi_get_information() */
struct s_PXENV_UNDI_GET_INFORMATION {
} PACKED;
typedef struct s_PXENV_UNDI_GET_INFORMATION PXENV_UNDI_GET_INFORMATION_t;
extern PXENV_EXIT_t pxenv_undi_get_information (
struct s_PXENV_UNDI_GET_INFORMATION *undi_get_information );
/** @} */ /* pxenv_undi_get_information */
/** @defgroup pxenv_undi_get_statistics PXENV_UNDI_GET_STATISTICS
*
* UNDI GET STATISTICS
*
* @{
*/
/** PXE API function code for pxenv_undi_get_statistics() */
#define PXENV_UNDI_GET_STATISTICS 0x000d
/** Parameter block for pxenv_undi_get_statistics() */
struct s_PXENV_UNDI_GET_STATISTICS {
} PACKED;
typedef struct s_PXENV_UNDI_GET_STATISTICS PXENV_UNDI_GET_STATISTICS_t;
extern PXENV_EXIT_t pxenv_undi_get_statistics (
struct s_PXENV_UNDI_GET_STATISTICS *undi_get_statistics );
/** @} */ /* pxenv_undi_get_statistics */
/** @defgroup pxenv_undi_clear_statistics PXENV_UNDI_CLEAR_STATISTICS
*
* UNDI CLEAR STATISTICS
*
* @{
*/
/** PXE API function code for pxenv_undi_clear_statistics() */
#define PXENV_UNDI_CLEAR_STATISTICS 0x000e
/** Parameter block for pxenv_undi_clear_statistics() */
struct s_PXENV_UNDI_CLEAR_STATISTICS {
} PACKED;
typedef struct s_PXENV_UNDI_CLEAR_STATISTICS PXENV_UNDI_CLEAR_STATISTICS_t;
extern PXENV_EXIT_t pxenv_undi_clear_statistics (
struct s_PXENV_UNDI_CLEAR_STATISTICS *undi_clear_statistics );
/** @} */ /* pxenv_undi_clear_statistics */
/** @defgroup pxenv_undi_initiate_diags PXENV_UNDI_INITIATE_DIAGS
*
* UNDI INITIATE DIAGS
*
* @{
*/
/** PXE API function code for pxenv_undi_initiate_diags() */
#define PXENV_UNDI_INITIATE_DIAGS 0x000f
/** Parameter block for pxenv_undi_initiate_diags() */
struct s_PXENV_UNDI_INITIATE_DIAGS {
} PACKED;
typedef struct s_PXENV_UNDI_INITIATE_DIAGS PXENV_UNDI_INITIATE_DIAGS_t;
extern PXENV_EXIT_t pxenv_undi_initiate_diags (
struct s_PXENV_UNDI_INITIATE_DIAGS *undi_initiate_diags );
/** @} */ /* pxenv_undi_initiate_diags */
/** @defgroup pxenv_undi_force_interrupt PXENV_UNDI_FORCE_INTERRUPT
*
* UNDI FORCE INTERRUPT
*
* @{
*/
/** PXE API function code for pxenv_undi_force_interrupt() */
#define PXENV_UNDI_FORCE_INTERRUPT 0x0010
/** Parameter block for pxenv_undi_force_interrupt() */
struct s_PXENV_UNDI_FORCE_INTERRUPT {
} PACKED;
typedef struct s_PXENV_UNDI_FORCE_INTERRUPT PXENV_UNDI_FORCE_INTERRUPT_t;
extern PXENV_EXIT_t pxenv_undi_force_interrupt (
struct s_PXENV_UNDI_FORCE_INTERRUPT *undi_force_interrupt );
/** @} */ /* pxenv_undi_force_interrupt */
/** @defgroup pxenv_undi_get_mcast_address PXENV_UNDI_GET_MCAST_ADDRESS
*
* UNDI GET MULTICAST ADDRESS
*
* @{
*/
/** PXE API function code for pxenv_undi_get_mcast_address() */
#define PXENV_UNDI_GET_MCAST_ADDRESS 0x0011
/** Parameter block for pxenv_undi_get_mcast_address() */
struct s_PXENV_UNDI_GET_MCAST_ADDRESS {
} PACKED;
typedef struct s_PXENV_UNDI_GET_MCAST_ADDRESS PXENV_UNDI_GET_MCAST_ADDRESS_t;
extern PXENV_EXIT_t pxenv_undi_get_mcast_address (
struct s_PXENV_UNDI_GET_MCAST_ADDRESS *undi_get_mcast_address );
/** @} */ /* pxenv_undi_get_mcast_address */
/** @defgroup pxenv_undi_get_nic_type PXENV_UNDI_GET_NIC_TYPE
*
* UNDI GET NIC TYPE
*
* @{
*/
/** PXE API function code for pxenv_undi_get_nic_type() */
#define PXENV_UNDI_GET_NIC_TYPE 0x0012
/** Parameter block for pxenv_undi_get_nic_type() */
struct s_PXENV_UNDI_GET_NIC_TYPE {
} PACKED;
typedef struct s_PXENV_UNDI_GET_NIC_TYPE PXENV_UNDI_GET_NIC_TYPE_t;
extern PXENV_EXIT_t pxenv_undi_get_nic_type (
struct s_PXENV_UNDI_GET_NIC_TYPE *undi_get_nic_type );
/** @} */ /* pxenv_undi_get_nic_type */
/** @defgroup pxenv_undi_get_iface_info PXENV_UNDI_GET_IFACE_INFO
*
* UNDI GET IFACE INFO
*
* @{
*/
/** PXE API function code for pxenv_undi_get_iface_info() */
#define PXENV_UNDI_GET_IFACE_INFO 0x0013
/** Parameter block for pxenv_undi_get_iface_info() */
struct s_PXENV_UNDI_GET_IFACE_INFO {
} PACKED;
typedef struct s_PXENV_UNDI_GET_IFACE_INFO PXENV_UNDI_GET_IFACE_INFO_t;
extern PXENV_EXIT_t pxenv_undi_get_iface_info (
struct s_PXENV_UNDI_GET_IFACE_INFO *undi_get_iface_info );
/** @} */ /* pxenv_undi_get_iface_info */
/** @defgroup pxenv_undi_get_state PXENV_UNDI_GET_STATE
*
* UNDI GET STATE
*
* @{
*/
/** PXE API function code for pxenv_undi_get_state() */
#define PXENV_UNDI_GET_STATE 0x0015
/** Parameter block for pxenv_undi_get_state() */
struct s_PXENV_UNDI_GET_STATE {
} PACKED;
typedef struct s_PXENV_UNDI_GET_STATE PXENV_UNDI_GET_STATE_t;
extern PXENV_EXIT_t pxenv_undi_get_state ( struct s_PXENV_UNDI_GET_STATE
*undi_get_state );
extern PXENV_EXIT_t pxenv_undi_isr ( struct s_PXENV_UNDI_ISR *undi_isr );
/** @} */
/** @} */ /* addtogroup */
/** @} */ /* pxenv_undi_get_state */
/** @defgroup pxenv_undi_isr PXENV_UNDI_ISR
*
* UNDI ISR
*
* @{
*/
/** PXE API function code for pxenv_undi_isr() */
#define PXENV_UNDI_ISR 0x0014
/** Parameter block for pxenv_undi_isr() */
struct s_PXENV_UNDI_ISR {
} PACKED;
typedef struct s_PXENV_UNDI_ISR PXENV_UNDI_ISR_t;
extern PXENV_EXIT_t pxenv_undi_isr ( struct s_PXENV_UNDI_ISR *undi_isr );
/** @} */ /* pxenv_undi_isr */
/** @} */ /* pxe_undi_api */
/** @} */ /* pxe */
#endif /* PXE_API_H */

View File

@ -1,10 +1,6 @@
#ifndef PXE_TYPES_H
#define PXE_TYPES_H
/** @addtogroup pxe Preboot eXecution Environment (PXE) API
* @{
*/
/** @file
*
* PXE data types
@ -15,7 +11,13 @@
#include "pxe_addr.h" /* Architecture-specific PXE definitions */
#include "errno.h" /* PXE status codes */
/** @addtogroup pxe Preboot eXecution Environment (PXE) API
* @{
*/
/** @defgroup pxe_types PXE data types
*
* Basic PXE data types such as #UINT16, #ADDR32, #SEGSEL etc.
*
* These definitions are based on Table 1-1 ("Data Type Definitions")
* in the Intel PXE specification version 2.1. They have been
@ -25,47 +27,49 @@
*/
/** An 8-bit unsigned integer */
typedef uint8_t UINT8;
typedef uint8_t UINT8_t;
/** A 16-bit unsigned integer */
typedef uint16_t UINT16;
typedef uint16_t UINT16_t;
/** A 32-bit unsigned integer */
typedef uint32_t UINT32;
typedef uint32_t UINT32_t;
/** A PXE exit code.
*
* Permitted values are PXENV_EXIT_SUCCESS and PXENV_EXIT_FAILURE.
* Permitted values are #PXENV_EXIT_SUCCESS and #PXENV_EXIT_FAILURE.
*
*/
typedef uint16_t PXENV_EXIT;
typedef uint16_t PXENV_EXIT_t;
#define PXENV_EXIT_SUCCESS 0x0000 /**< No error occurred */
#define PXENV_EXIT_FAILURE 0x0001 /**< An error occurred */
/** A PXE status code.
*
* Status codes are defined in errno.h.
*
*/
typedef uint16_t PXENV_STATUS;
typedef uint16_t PXENV_STATUS_t;
/** An IP address.
*
* This is an IPv4 address in host byte order.
*
*/
typedef uint32_t IP4;
typedef uint32_t IP4_t;
/** A UDP port.
*
* Note that this is in network (big-endian) byte order.
* @note This data type is in network (big-endian) byte order.
*
*/
typedef uint16_t UDP_PORT;
typedef uint16_t UDP_PORT_t;
/** Maximum length of a MAC address */
#define MAC_ADDR_LEN 16
/** A MAC address */
typedef uint8_t MAC_ADDR[MAC_ADDR_LEN];
typedef uint8_t MAC_ADDR_t[MAC_ADDR_LEN];
/** A physical address.
*
@ -73,7 +77,7 @@ typedef uint8_t MAC_ADDR[MAC_ADDR_LEN];
* limited to the low 4GB.
*
*/
typedef physaddr_t ADDR32;
typedef physaddr_t ADDR32_t;
#ifndef HAVE_ARCH_SEGSEL
/** A segment selector.
@ -83,30 +87,29 @@ typedef physaddr_t ADDR32;
* segment register.
*
*/
typedef uint16_t SEGSEL;
typedef uint16_t SEGSEL_t;
#endif
#ifndef HAVE_ARCH_OFF16
/** An offset within a segment identified by #SEGSEL */
typedef uint16_t OFF16;
typedef uint16_t OFF16_t;
#endif
/** A segment:offset address */
typedef struct s_SEGOFF16 {
OFF16 offset; /**< Offset within the segment */
SEGSEL segment; /**< Segment selector */
} SEGOFF16 __attribute__ (( packed ));
OFF16_t offset; /**< Offset within the segment */
SEGSEL_t segment; /**< Segment selector */
} PACKED SEGOFF16_t;
/** A segment descriptor */
typedef struct s_SEGDESC {
SEGSEL segment_address; /**< Segment selector */
ADDR32 physical_address; /**< Base address of the segment */
OFF16 seg_size; /**< Size of the segment */
} SEGDESC __attribute__ (( packed ));
SEGSEL_t segment_address; /**< Segment selector */
ADDR32_t physical_address; /**< Segment base address */
OFF16_t seg_size; /**< Size of the segment */
} PACKED __SEGDESC_t;
/** @} */ /* defgroup */
/** @} */ /* pxe_types */
/** @} */ /* addtogroup */
/** @} */ /* pxe */
#endif /* PXE_TYPES_H */