"Fossies" - the Fresh Open Source Software Archive

Member "syslinux-6.03/gpxe/src/arch/i386/interface/pcbios/abft.c" (6 Oct 2014, 1659 Bytes) of package /linux/misc/syslinux-6.03.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file.

    1 /*
    2  * Copyright (C) 2007 Michael Brown <mbrown@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 <realmode.h>
   22 #include <gpxe/aoe.h>
   23 #include <gpxe/netdevice.h>
   24 #include <gpxe/abft.h>
   25 
   26 /** @file
   27  *
   28  * AoE Boot Firmware Table
   29  *
   30  */
   31 
   32 #define abftab __use_data16 ( abftab )
   33 /** The aBFT used by gPXE */
   34 struct abft_table __data16 ( abftab ) __attribute__ (( aligned ( 16 ) )) = {
   35     /* ACPI header */
   36     .acpi = {
   37         .signature = ABFT_SIG,
   38         .length = sizeof ( abftab ),
   39         .revision = 1,
   40         .oem_id = "FENSYS",
   41         .oem_table_id = "gPXE",
   42     },
   43 };
   44 
   45 /**
   46  * Fill in all variable portions of aBFT
   47  *
   48  * @v aoe       AoE session
   49  */
   50 void abft_fill_data ( struct aoe_session *aoe ) {
   51 
   52     /* Fill in boot parameters */
   53     abftab.shelf = aoe->major;
   54     abftab.slot = aoe->minor;
   55     memcpy ( abftab.mac, aoe->netdev->ll_addr, sizeof ( abftab.mac ) );
   56 
   57     /* Update checksum */
   58     acpi_fix_checksum ( &abftab.acpi );
   59 
   60     DBG ( "AoE boot firmware table:\n" );
   61     DBG_HD ( &abftab, sizeof ( abftab ) );
   62 }