summaryrefslogtreecommitdiff
path: root/gpxe/src/interface/smbios/smbios_settings.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/interface/smbios/smbios_settings.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/interface/smbios/smbios_settings.c')
-rw-r--r--gpxe/src/interface/smbios/smbios_settings.c194
1 files changed, 0 insertions, 194 deletions
diff --git a/gpxe/src/interface/smbios/smbios_settings.c b/gpxe/src/interface/smbios/smbios_settings.c
deleted file mode 100644
index 1c965646..00000000
--- a/gpxe/src/interface/smbios/smbios_settings.c
+++ /dev/null
@@ -1,194 +0,0 @@
-/*
- * Copyright (C) 2008 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 <gpxe/settings.h>
-#include <gpxe/init.h>
-#include <gpxe/uuid.h>
-#include <gpxe/smbios.h>
-
-/** SMBIOS settings tag magic number */
-#define SMBIOS_TAG_MAGIC 0x5B /* "SmBios" */
-
-/**
- * Construct SMBIOS empty tag
- *
- * @ret tag SMBIOS setting tag
- */
-#define SMBIOS_EMPTY_TAG ( SMBIOS_TAG_MAGIC << 24 )
-
-/**
- * Construct SMBIOS raw-data tag
- *
- * @v _type SMBIOS structure type number
- * @v _structure SMBIOS structure data type
- * @v _field Field within SMBIOS structure data type
- * @ret tag SMBIOS setting tag
- */
-#define SMBIOS_RAW_TAG( _type, _structure, _field ) \
- ( ( SMBIOS_TAG_MAGIC << 24 ) | \
- ( (_type) << 16 ) | \
- ( offsetof ( _structure, _field ) << 8 ) | \
- ( sizeof ( ( ( _structure * ) 0 )->_field ) ) )
-
-/**
- * Construct SMBIOS string tag
- *
- * @v _type SMBIOS structure type number
- * @v _structure SMBIOS structure data type
- * @v _field Field within SMBIOS structure data type
- * @ret tag SMBIOS setting tag
- */
-#define SMBIOS_STRING_TAG( _type, _structure, _field ) \
- ( ( SMBIOS_TAG_MAGIC << 24 ) | \
- ( (_type) << 16 ) | \
- ( offsetof ( _structure, _field ) << 8 ) )
-
-/**
- * Fetch value of SMBIOS setting
- *
- * @v settings Settings block, or NULL to search all blocks
- * @v setting Setting to fetch
- * @v data Buffer to fill with setting data
- * @v len Length of buffer
- * @ret len Length of setting data, or negative error
- */
-static int smbios_fetch ( struct settings *settings __unused,
- struct setting *setting,
- void *data, size_t len ) {
- struct smbios_structure structure;
- unsigned int tag_magic;
- unsigned int tag_type;
- unsigned int tag_offset;
- unsigned int tag_len;
- int rc;
-
- /* Split tag into type, offset and length */
- tag_magic = ( setting->tag >> 24 );
- tag_type = ( ( setting->tag >> 16 ) & 0xff );
- tag_offset = ( ( setting->tag >> 8 ) & 0xff );
- tag_len = ( setting->tag & 0xff );
- if ( tag_magic != SMBIOS_TAG_MAGIC )
- return -ENOENT;
-
- /* Find SMBIOS structure */
- if ( ( rc = find_smbios_structure ( tag_type, &structure ) ) != 0 )
- return rc;
-
- {
- uint8_t buf[structure.header.len];
-
- /* Read SMBIOS structure */
- if ( ( rc = read_smbios_structure ( &structure, buf,
- sizeof ( buf ) ) ) != 0 )
- return rc;
-
- if ( tag_len == 0 ) {
- /* String */
- return read_smbios_string ( &structure,
- buf[tag_offset],
- data, len );
- } else {
- /* Raw data */
- if ( len > tag_len )
- len = tag_len;
- memcpy ( data, &buf[tag_offset], len );
- return tag_len;
- }
- }
-}
-
-/** SMBIOS settings operations */
-static struct settings_operations smbios_settings_operations = {
- .fetch = smbios_fetch,
-};
-
-/** SMBIOS settings */
-static struct settings smbios_settings = {
- .refcnt = NULL,
- .name = "smbios",
- .tag_magic = SMBIOS_EMPTY_TAG,
- .siblings = LIST_HEAD_INIT ( smbios_settings.siblings ),
- .children = LIST_HEAD_INIT ( smbios_settings.children ),
- .op = &smbios_settings_operations,
-};
-
-/** Initialise SMBIOS settings */
-static void smbios_init ( void ) {
- int rc;
-
- if ( ( rc = register_settings ( &smbios_settings, NULL ) ) != 0 ) {
- DBG ( "SMBIOS could not register settings: %s\n",
- strerror ( rc ) );
- return;
- }
-}
-
-/** SMBIOS settings initialiser */
-struct init_fn smbios_init_fn __init_fn ( INIT_NORMAL ) = {
- .initialise = smbios_init,
-};
-
-/** UUID setting obtained via SMBIOS */
-struct setting uuid_setting __setting = {
- .name = "uuid",
- .description = "UUID",
- .tag = SMBIOS_RAW_TAG ( SMBIOS_TYPE_SYSTEM_INFORMATION,
- struct smbios_system_information, uuid ),
- .type = &setting_type_uuid,
-};
-
-/** Other SMBIOS named settings */
-struct setting smbios_named_settings[] __setting = {
- {
- .name = "manufacturer",
- .description = "Manufacturer",
- .tag = SMBIOS_STRING_TAG ( SMBIOS_TYPE_SYSTEM_INFORMATION,
- struct smbios_system_information,
- manufacturer ),
- .type = &setting_type_string,
- },
- {
- .name = "product",
- .description = "Product name",
- .tag = SMBIOS_STRING_TAG ( SMBIOS_TYPE_SYSTEM_INFORMATION,
- struct smbios_system_information,
- product ),
- .type = &setting_type_string,
- },
- {
- .name = "serial",
- .description = "Serial number",
- .tag = SMBIOS_STRING_TAG ( SMBIOS_TYPE_SYSTEM_INFORMATION,
- struct smbios_system_information,
- serial ),
- .type = &setting_type_string,
- },
- {
- .name = "asset",
- .description = "Asset tag",
- .tag = SMBIOS_STRING_TAG ( SMBIOS_TYPE_ENCLOSURE_INFORMATION,
- struct smbios_enclosure_information,
- asset_tag ),
- .type = &setting_type_string,
- },
-};