Home | History | Annotate | Download | only in prefix
      1 /*
      2  * Copyright (C) 2009 Michael Brown <mbrown (at) fensystems.co.uk>.
      3  *
      4  * This program is free software; you can redistribute it and/or
      5  * modify it under the terms of the GNU General Public License as
      6  * published by the Free Software Foundation; either version 2 of the
      7  * License, or any later version.
      8  *
      9  * This program is distributed in the hope that it will be useful, but
     10  * WITHOUT ANY WARRANTY; without even the implied warranty of
     11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     12  * General Public License for more details.
     13  *
     14  * You should have received a copy of the GNU General Public License
     15  * along with this program; if not, write to the Free Software
     16  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
     17  */
     18 
     19 FILE_LICENCE ( GPL2_OR_LATER );
     20 
     21 #include <stdlib.h>
     22 #include <gpxe/init.h>
     23 #include <gpxe/efi/efi.h>
     24 
     25 /**
     26  * EFI entry point
     27  *
     28  * @v image_handle	Image handle
     29  * @v systab		System table
     30  * @ret efirc		EFI return status code
     31  */
     32 EFI_STATUS EFIAPI _start ( EFI_HANDLE image_handle,
     33 			   EFI_SYSTEM_TABLE *systab ) {
     34 	EFI_STATUS efirc;
     35 
     36 	/* Initialise EFI environment */
     37 	if ( ( efirc = efi_init ( image_handle, systab ) ) != 0 )
     38 		return efirc;
     39 
     40 	/* Initialise gPXE environment */
     41 	initialise();
     42 	startup();
     43 
     44 	/* Install SNP driver and return */
     45 	return RC_TO_EFIRC ( efi_snp_install () );
     46 }
     47