/* vim: set filetype=c:
 *
 * romconfig.h86  -  Configuration definitions for the bootrom
 *
 * Copyright (C) 2003-2007 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: romconfig.h86,v 1.11 2007/02/01 12:09:21 gkminix Exp $
 */

#ifndef HEADERS_ROMCONFIG_H86
#define HEADERS_ROMCONFIG_H86


/*
 * This file can only get included into target C or assembler source files.
 */
#define GCC_INCLUDE
#include <compiler.h>



/*
 **************************************************************************
 *
 * Define if the bootrom should use string inlines
 */
#ifndef _ASSEMBLY_
/* #define __USE_STRING_INLINES */
#endif



/*
 **************************************************************************
 *
 * Definitions for the ROM loader
 */

#ifdef _LOADER_


/*
 *	NODDIM		Don't support the Device Driver Initialization
 *			Model.
 */
/* #define NODDIM 1 */


/*
 *	NOTIMEOUT	Don't support keyboard timeout
 */
/* #define NOTIMEOUT 1 */


/*
 *	NOPRINT		Don't print the BIOS options
 */
/* #define NOPRINT 1 */


#endif




/*
 **************************************************************************
 *
 * Definitions for the bootrom kernel
 */

#ifdef _KERNEL_


/*
 *	KRNSTACK	Size of bootrom kernel stack
 */
#define	KRNSTACK	4096


/* 
 *	NOBPEXT		Don't compile the code to load a BOOTP vendor
 *			extension file
 */
/* #define NOBPEXT 1 */ 


/*
 *	ARPDEBUG	Activate debugging info for ARP code
 *	UDPDEBUG	Activate debugging info for UDP code
 *	LDDEBUG		Activate debugging info for bootimage loading code
 */
/* #define ARPDEBUG 1 */
/* #define UDPDEBUG 1 */
/* #define LDDEBUG 1 */


#endif




/*
 **************************************************************************
 *
 * Definitions for the network driver interface
 */

#ifdef _NETDRVR_


/*
 *	DRVSTACK	Size of network driver stack
 */
#define	DRVSTACK	2048


/*
 *	INTMODE		Specifies the way of handling interrupts in the
 *			network driver interface. This option is only used
 *			by the packet driver and NDIS driver interfaces.
 *			See the comments in romconfig.i86 for a further
 *			explanation. If this definition is commented out,
 *			a default mode of 1 will be used. The allowed
 *			values range from 1 to 3.
 *
 *	INTCHECK	Override for the default set by INTMODE (allowed
 *			values: 0 or 1).
 *
 *	MASKINT		Override for the default set by INTMODE (allowed
 *			values: 0 or 1).
 *
 * Do not change these values unless you know what you are doing!!!
 */
/* #define INTMODE 1 */
/* #define INTCHECK 0 */
/* #define MASKINT 0 */


#endif




/*
 **************************************************************************
 *
 * Definitions for the DOS simulator of the network driver
 */

#ifdef _DOSSIM_


/*
 *	NEEDKBD		Include keyboard input functions. This is usually
 *			not necessary for the network drivers.
 */
/* #define NEEDKBD 1 */


/*
 *	NEEDEXTIO	This will include the serial and parallel port
 *			support into the DOS simulator. It's usually
 *			not necessary.
 */
/* #define NEEDEXTIO 1 */


/*
 *	NEEDLINEIO	Include support for reading and writing full lines
 *			from the console into the DOS simulator. Usually not
 *			necessary as well.
 */
/* #define NEEDLINEIO 1 */


/*
 *	NEEDFILEIO	Implement file I/O functions in the DOS	simulator.
 */
#define NEEDFILEIO 1


/*
 *	NEEDTIME	Implement time and date handling functions in the DOS
 *			simulator. Necessity for this depends on the packet
 *			driver as well. Probably there is no need for time
 *			and date handling functions so they are left out by
 *			default.
 */
/* #define NEEDTIME 1 */


#endif




/*
 **************************************************************************
 *
 * Definitions for the NDIS2 network driver interface:
 */
#ifdef _NDIS2_


/*
 *	NEEDMCAST	Implement support for multicast addresses. The
 *			bootrom uses multicast since version 0.10, so this
 *			is enabled.
 */
#define NEEDMCAST 1


/*
 *	NEEDSETADDR	Include support for setting the station hardware
 *			address. This is not required by the bootrom.
 */
#define NEEDSETADDR 1


/*
 *	NEEDSTAT	Include support for network driver statistics
 */
#define NEEDSTAT 1

#endif




/*
 **************************************************************************
 *
 * Definitions for the packet driver network driver interface:
 */
#ifdef _PKTDRVR_


/*
 *	NEEDMCAST	Implement support for multicast addresses. The
 *			bootrom uses multicast since version 0.10, so this
 *			is enabled.
 */
#define NEEDMCAST 1


/*
 *	NEEDSETADDR	Include support for setting the station hardware
 *			address. This is not required by the bootrom.
 */
#define NEEDSETADDR 1


/*
 *	NEEDSTAT	Include support for network driver statistics
 */
#define NEEDSTAT 1

#endif


#endif

