1*8044SWilliam.Kucharski@Sun.COM /* 2*8044SWilliam.Kucharski@Sun.COM * GRUB -- GRand Unified Bootloader 3*8044SWilliam.Kucharski@Sun.COM * Copyright (C) 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc. 4*8044SWilliam.Kucharski@Sun.COM * 5*8044SWilliam.Kucharski@Sun.COM * This program is free software; you can redistribute it and/or modify 6*8044SWilliam.Kucharski@Sun.COM * it under the terms of the GNU General Public License as published by 7*8044SWilliam.Kucharski@Sun.COM * the Free Software Foundation; either version 2 of the License, or 8*8044SWilliam.Kucharski@Sun.COM * (at your option) any later version. 9*8044SWilliam.Kucharski@Sun.COM * 10*8044SWilliam.Kucharski@Sun.COM * This program is distributed in the hope that it will be useful, 11*8044SWilliam.Kucharski@Sun.COM * but WITHOUT ANY WARRANTY; without even the implied warranty of 12*8044SWilliam.Kucharski@Sun.COM * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13*8044SWilliam.Kucharski@Sun.COM * GNU General Public License for more details. 14*8044SWilliam.Kucharski@Sun.COM * 15*8044SWilliam.Kucharski@Sun.COM * You should have received a copy of the GNU General Public License 16*8044SWilliam.Kucharski@Sun.COM * along with this program; if not, write to the Free Software 17*8044SWilliam.Kucharski@Sun.COM * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 18*8044SWilliam.Kucharski@Sun.COM */ 19*8044SWilliam.Kucharski@Sun.COM 20*8044SWilliam.Kucharski@Sun.COM /* 21*8044SWilliam.Kucharski@Sun.COM * Transport layer to use Etherboot NIC drivers in GRUB. 22*8044SWilliam.Kucharski@Sun.COM */ 23*8044SWilliam.Kucharski@Sun.COM 24*8044SWilliam.Kucharski@Sun.COM #ifndef ETHERBOOT_H 25*8044SWilliam.Kucharski@Sun.COM #define ETHERBOOT_H 26*8044SWilliam.Kucharski@Sun.COM 27*8044SWilliam.Kucharski@Sun.COM #include "shared.h" 28*8044SWilliam.Kucharski@Sun.COM #include "osdep.h" 29*8044SWilliam.Kucharski@Sun.COM #include "if_ether.h" 30*8044SWilliam.Kucharski@Sun.COM #include "in.h" 31*8044SWilliam.Kucharski@Sun.COM 32*8044SWilliam.Kucharski@Sun.COM /* Link configuration time in tenths of a second */ 33*8044SWilliam.Kucharski@Sun.COM #ifndef VALID_LINK_TIMEOUT 34*8044SWilliam.Kucharski@Sun.COM #define VALID_LINK_TIMEOUT 100 /* 10.0 seconds */ 35*8044SWilliam.Kucharski@Sun.COM #endif 36*8044SWilliam.Kucharski@Sun.COM 37*8044SWilliam.Kucharski@Sun.COM #ifndef NULL 38*8044SWilliam.Kucharski@Sun.COM #define NULL ((void *)0) 39*8044SWilliam.Kucharski@Sun.COM #endif 40*8044SWilliam.Kucharski@Sun.COM 41*8044SWilliam.Kucharski@Sun.COM 42*8044SWilliam.Kucharski@Sun.COM #define gateA20_set() gateA20(1) 43*8044SWilliam.Kucharski@Sun.COM #define gateA20_unset() gateA20(0) 44*8044SWilliam.Kucharski@Sun.COM #if !defined(__sun) 45*8044SWilliam.Kucharski@Sun.COM #define EBDEBUG 0 46*8044SWilliam.Kucharski@Sun.COM #endif 47*8044SWilliam.Kucharski@Sun.COM /* The 'rom_info' maybe arch depended. It must be moved to some other 48*8044SWilliam.Kucharski@Sun.COM * place */ 49*8044SWilliam.Kucharski@Sun.COM struct rom_info { 50*8044SWilliam.Kucharski@Sun.COM unsigned short rom_segment; 51*8044SWilliam.Kucharski@Sun.COM unsigned short rom_length; 52*8044SWilliam.Kucharski@Sun.COM }; 53*8044SWilliam.Kucharski@Sun.COM 54*8044SWilliam.Kucharski@Sun.COM extern void poll_interruptions P((void)); 55*8044SWilliam.Kucharski@Sun.COM 56*8044SWilliam.Kucharski@Sun.COM /* For UNDI drivers */ 57*8044SWilliam.Kucharski@Sun.COM extern uint32_t get_free_base_memory ( void ); 58*8044SWilliam.Kucharski@Sun.COM extern void *allot_base_memory ( size_t ); 59*8044SWilliam.Kucharski@Sun.COM extern void forget_base_memory ( void*, size_t ); 60*8044SWilliam.Kucharski@Sun.COM extern void free_unused_base_memory ( void ); 61*8044SWilliam.Kucharski@Sun.COM 62*8044SWilliam.Kucharski@Sun.COM #endif /* ETHERBOOT_H */ 63