summaryrefslogblamecommitdiffstats
path: root/src/core/config.c
blob: ce92d90a64de193b7a4595f6bf46ffec0de28857 (plain) (tree)
1
2
3
4
5
6
7
8
9
10






                                                                      


                      
                  


                           








                               
                   
                                
                                                    

                           

      
               
                                 

                       
      
 
                                              
                                                                









                                                 

                                               
                        


                               
                                            
                                      
                                 
 

















                                                    


                                


















                           


                                                     

 


                                      

                                                                 
  

   
                    



                                 

      
                       


                                
                     


                          
                         


                              
                    


                         
                     


                          
  



















                                  



                                 
                       
      



                       































                                      
/*
 * 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, or (at
 * your option) any later version.
 */

#include "etherboot.h"
#include "dev.h"
#include "console.h"
#include "image.h"

#include "config/general.h"

/*
 * Build ID string calculations
 *
 */
#undef XSTR
#undef STR
#define XSTR(s) STR(s)
#define STR(s) #s

#ifdef BUILD_SERIAL
#include "config/.buildserial.h"
#define BUILD_SERIAL_STR " #" XSTR(BUILD_SERIAL_NUM)
#else
#define BUILD_SERIAL_STR ""
#endif

#ifdef BUILD_ID
#define BUILD_ID_STR " " BUILD_ID
#else
#define BUILD_ID_STR ""
#endif

#if defined(BUILD_ID) || defined(BUILD_SERIAL)
#define BUILD_STRING " [build" BUILD_ID_STR BUILD_SERIAL_STR "]"
#else
#define BUILD_STRING ""
#endif

/*
 * Print out configuration
 *
 */
void print_config ( void ) {
	printf( "Etherboot " VERSION BUILD_STRING
		" (GPL) http://etherboot.org\n"
		"Drivers: " );
	print_drivers();
	printf( "  Images: " );
	print_images();

#ifdef PXE_EXPORT /* All possible exports */
	printf ( "  Exports: PXE  " );
#endif /* All possible exports */

#if	(BOOTP_SERVER != 67) || (BOOTP_CLIENT != 68)
	printf( "[DHCP ports %d and %d] ",
		BOOTP_SERVER, BOOTP_CLIENT);
#endif
	putchar('\n');
	printf( "Protocols: "
#ifdef RARP_NOT_BOOTP
		"RARP "
#else
# ifndef NO_DHCP_SUPPORT
		"DHCP "
# else
		"BOOTP "
# endif
#endif
#ifdef DOWNLOAD_PROTO_TFTP
		"TFTP "
#endif
#ifdef  DOWNLOAD_PROTO_FSP
		"FSP "
#endif				
#ifdef  DOWNLOAD_PROTO_NFS
		"NFS "
#endif
#ifdef  DOWNLOAD_PROTO_SLAM
		"SLAM "
#endif
#ifdef  DOWNLOAD_PROTO_TFTM
		"TFTM "
#endif
#ifdef  DOWNLOAD_PROTO_HTTP
		"HTTP "
#endif
#ifdef  PROTO_LACP
		"LACP "
#endif
#ifdef DNS_RESOLVER
		"DNS "
#endif
		"\n");
#ifdef KEEP_IT_REAL
	printf( "Keeping It Real [EXPERIMENTAL]\n" );
#endif
}

/*
 * Drag in all requested console types
 *
 * CONSOLE_DUAL sets both CONSOLE_FIRMWARE and CONSOLE_SERIAL for
 * legacy compatibility.
 *
 */

#ifdef	CONSOLE_DUAL
#undef	CONSOLE_FIRMWARE
#define	CONSOLE_FIRMWARE	1
#undef	CONSOLE_SERIAL
#define	CONSOLE_SERIAL		1
#endif

#ifdef CONSOLE_FIRMWARE
REQUIRE_OBJECT ( bios_console );
#endif

#ifdef CONSOLE_SERIAL
REQUIRE_OBJECT ( serial );
#endif

#ifdef CONSOLE_DIRECT_VGA
REQUIRE_OBJECT ( video_subr );
#endif

#ifdef CONSOLE_BTEXT
REQUIRE_OBJECT ( btext );
#endif

#ifdef CONSOLE_PC_KBD
REQUIRE_OBJECT ( pc_kbd );
#endif

/*
 * Drag in all requested protocols
 *
 */
#ifdef DOWNLOAD_PROTO_TFTP
REQUIRE_OBJECT ( tftp );
#endif
#ifdef DOWNLOAD_PROTO_NFS
REQUIRE_OBJECT ( nfs );
#endif
#ifdef DOWNLOAD_PROTO_HTTP
REQUIRE_OBJECT ( http );
#endif
#ifdef DOWNLOAD_PROTO_TFTM
REQUIRE_OBJECT ( tftm );
#endif
#ifdef DOWNLOAD_PROTO_SLAM
REQUIRE_OBJECT ( slam );
#endif

/*
 * Drag in any required resolvers
 *
 */
#ifdef DNS_RESOLVER
REQUIRE_OBJECT ( dns );
#endif

#ifdef NMB_RESOLVER
REQUIRE_OBJECT ( nmb );
#endif

/*
 * Drag in all requested image formats
 *
 */
#ifdef TAGGED_IMAGE
REQUIRE_OBJECT ( nbi );
#endif
#ifdef ELF64_IMAGE
REQUIRE_OBJECT ( elf64 );
#endif
#ifdef ELF_IMAGE
REQUIRE_OBJECT ( elf );
#endif
#ifdef COFF_IMAGE
REQUIRE_OBJECT ( coff );
#endif
#ifdef IMAGE_FREEBSD
REQUIRE_OBJECT ( freebsd );
#endif
#ifdef	IMAGE_MULTIBOOT
REQUIRE_OBJECT ( multiboot );
#endif
#ifdef	AOUT_IMAGE
REQUIRE_OBJECT ( aout );
#endif
#ifdef	WINCE_IMAGE
REQUIRE_OBJECT ( wince );
#endif
#ifdef	PXE_IMAGE
REQUIRE_OBJECT ( pxe );
#endif