/*
**************************************************************************
*
* Boot-ROM-Code to load an operating system across a TCP/IP network.
*
* Module: pxe/pxegeneral.h
* Purpose: Definitions for general PXE API functions
* Entries: None
*
**************************************************************************
*
* Copyright (C) 1998-2003 Gero Kuhlmann <gero@gkminix.han.de>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Id: pxegeneral.h,v 1.4 2003/01/25 23:29:40 gkminix Exp $
*/
#ifndef _PXE_PXEGENERAL_H
#define _PXE_PXEGENERAL_H
/*
**************************************************************************
*
* This file contains general PXE API functions as per Intels PXE
* specification version 1.0.
*
**************************************************************************
*
* General PXE API opcodes:
*/
#define GEN_UNLOAD_STACK 0x0070
#define GEN_GET_BINL_INFO 0x0071
#define GEN_RESTART_TFTP 0x0073
#define GEN_START_BASE 0x0075
#define GEN_STOP_BASE 0x0076
#define GEN_MINNUM 0x0070
#define GEN_MAXNUM 0x0076
/*
**************************************************************************
*
* Definition of structure for GEN_UNLOAD_STACK function:
*/
#ifndef _USE_ASSEMBLER
typedef struct s_gen_unload_stack {
unsigned int status; /* Out: function status */
unsigned char resvd[10];
} t_gen_unload_stack;
#else
o_gus_status equ $0000 ! Out: status
unload_stack_size equ $000C ! size of function structure
#endif /* _USE_ASSEMBLER */
/*
**************************************************************************
*
* Definition of structure for GEN_GET_BINL_INFO function:
*/
#ifndef _USE_ASSEMBLER
typedef struct s_gen_get_binl_info {
unsigned int status; /* Out: function status */
unsigned int packet_type; /* In: type of buffer requested */
unsigned int buffer_size; /* In/Out: size of buffer in bytes */
unsigned int buffer_offset; /* In/Out: offset to buffer */
unsigned int buffer_segment; /* In/Out: segment of buffer */
unsigned int buffer_limit; /* Out: max size of buffer */
} t_gen_get_binl_info;
#else
o_ggbi_status equ $0000 ! Out: status
o_ggbi_packet_type equ $0002 ! In: type of buffer requested
o_ggbi_buffer_size equ $0004 ! In/Out: size of buffer in bytes
o_ggbi_buffer_offset equ $0006 ! In/Out: offset to buffer
o_ggbi_buffer_segment equ $0008 ! In/Out: segment of buffer
o_ggbi_buffer_limit equ $000A ! Out: max size of buffer
get_binl_info_size equ $000C ! size of function structure
#endif /* _USE_ASSEMBLER */
/* Packet types */
#define GEN_PACKET_DHCP_DISCOVER 1
#define GEN_PACKET_DHCP_ACK 2
#define GEN_PACKET_BINL_REPLY 3
/*
**************************************************************************
*
* Definition of structure for GEN_RESTART_TFTP function:
*
* All definitions for the GEN_RESTART_TFTP function are identical to
* those for the TFTP_READ_FILE function, so they are not repeated here.
*/
#include <pxe/tftp.h>
/*
**************************************************************************
*
* Definition of structure for GEN_START_BASE function:
*/
#ifndef _USE_ASSEMBLER
typedef struct s_gen_start_base {
unsigned int status; /* Out: function status */
} t_gen_start_base;
#else
o_gsb_status equ $0000 ! Out: status
start_base_size equ $0002 ! size of function structure
#endif /* _USE_ASSEMBLER */
/*
**************************************************************************
*
* Definition of structure for GEN_STOP_BASE function:
*/
#ifndef _USE_ASSEMBLER
typedef struct s_gen_stop_base {
unsigned int status; /* Out: function status */
} t_gen_stop_base;
#else
o_gxb_status equ $0000 ! Out: status
stop_base_size equ $0002 ! size of function structure
#endif /* _USE_ASSEMBLER */
#endif /* _PXE_PXEGENERAL_H */
syntax highlighted by Code2HTML, v. 0.9.1