summaryrefslogtreecommitdiff
path: root/gpxe/src/arch/i386/firmware/pcbios/pnpbios.c
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2016-02-09 18:08:47 -0800
committerH. Peter Anvin <hpa@zytor.com>2016-02-09 18:08:47 -0800
commitf2f897a1762fab84d2905f32b1c15dd7b42abb56 (patch)
treea38f51d3f1fcbf44afddb4736d549c12eaf491be /gpxe/src/arch/i386/firmware/pcbios/pnpbios.c
parent72d2959272b4616f17a97667e6dfa9d06bf109a3 (diff)
downloadsyslinux-f2f897a1762fab84d2905f32b1c15dd7b42abb56.tar.gz
gpxe: delete long since obsolete snapshot of gPXE
gPXE has been deprecated in favor of iPXE for many, many years now. It is much better than users get it directly from the iPXE project, since we should no longer need any special modifications for Syslinux use. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'gpxe/src/arch/i386/firmware/pcbios/pnpbios.c')
-rw-r--r--gpxe/src/arch/i386/firmware/pcbios/pnpbios.c109
1 files changed, 0 insertions, 109 deletions
diff --git a/gpxe/src/arch/i386/firmware/pcbios/pnpbios.c b/gpxe/src/arch/i386/firmware/pcbios/pnpbios.c
deleted file mode 100644
index c572914f..00000000
--- a/gpxe/src/arch/i386/firmware/pcbios/pnpbios.c
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright (C) 2007 Michael Brown <mbrown@fensystems.co.uk>.
- *
- * 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.
- */
-
-FILE_LICENCE ( GPL2_OR_LATER );
-
-#include <stdint.h>
-#include <string.h>
-#include <errno.h>
-#include <realmode.h>
-#include <pnpbios.h>
-
-/** @file
- *
- * PnP BIOS
- *
- */
-
-/** PnP BIOS structure */
-struct pnp_bios {
- /** Signature
- *
- * Must be equal to @c PNP_BIOS_SIGNATURE
- */
- uint32_t signature;
- /** Version as BCD (e.g. 1.0 is 0x10) */
- uint8_t version;
- /** Length of this structure */
- uint8_t length;
- /** System capabilities */
- uint16_t control;
- /** Checksum */
- uint8_t checksum;
-} __attribute__ (( packed ));
-
-/** Signature for a PnP BIOS structure */
-#define PNP_BIOS_SIGNATURE \
- ( ( '$' << 0 ) + ( 'P' << 8 ) + ( 'n' << 16 ) + ( 'P' << 24 ) )
-
-/**
- * Test address for PnP BIOS structure
- *
- * @v offset Offset within BIOS segment to test
- * @ret rc Return status code
- */
-static int is_pnp_bios ( unsigned int offset ) {
- union {
- struct pnp_bios pnp_bios;
- uint8_t bytes[256]; /* 256 is maximum length possible */
- } u;
- size_t len;
- unsigned int i;
- uint8_t sum = 0;
-
- /* Read start of header and verify signature */
- copy_from_real ( &u.pnp_bios, BIOS_SEG, offset, sizeof ( u.pnp_bios ));
- if ( u.pnp_bios.signature != PNP_BIOS_SIGNATURE )
- return -EINVAL;
-
- /* Read whole header and verify checksum */
- len = u.pnp_bios.length;
- copy_from_real ( &u.bytes, BIOS_SEG, offset, len );
- for ( i = 0 ; i < len ; i++ ) {
- sum += u.bytes[i];
- }
- if ( sum != 0 )
- return -EINVAL;
-
- DBG ( "Found PnP BIOS at %04x:%04x\n", BIOS_SEG, offset );
-
- return 0;
-}
-
-/**
- * Locate Plug-and-Play BIOS
- *
- * @ret pnp_offset Offset of PnP BIOS structure within BIOS segment
- *
- * The PnP BIOS structure will be at BIOS_SEG:pnp_offset. If no PnP
- * BIOS is found, -1 is returned.
- */
-int find_pnp_bios ( void ) {
- static int pnp_offset = 0;
-
- if ( pnp_offset )
- return pnp_offset;
-
- for ( pnp_offset = 0 ; pnp_offset < 0x10000 ; pnp_offset += 0x10 ) {
- if ( is_pnp_bios ( pnp_offset ) == 0 )
- return pnp_offset;
- }
-
- pnp_offset = -1;
- return pnp_offset;
-}