/usr/include/smbios/SystemInfo.h is in libsmbios-dev 2.2.28-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 | // vim:expandtab:autoindent:tabstop=4:shiftwidth=4:filetype=c:
/*
* Copyright (C) 2005 Dell Inc.
* by Michael Brown <Michael_E_Brown@dell.com>
* Licensed under the Open Software License version 2.1
*
* Alternatively, 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 (at your option) 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.
*/
#ifndef SYSTEMINFO_H
#define SYSTEMINFO_H
// C-header files do not include compat.h
// Instead, they should include auto_link.hpp, which sets up automatic
// library selection on MSVC
#include "smbios/config/auto_link.hpp"
#include <stdio.h> // for size_t
#define SMBIOSEXCEPTION 0x01
#define SMBIOSPARSEEXCEPTION 0x02
#define SMBIOSITEMDATAOUTOFBOUNDS 0x03
#define SMBIOSITEMSTRINGUNAVAILABLE 0x04
#define SMBIOSPERMISSIONEXCEPTION 0x05
#define SMBIOSPARAMETEREXCEPTION 0x06
#define INTERNALERROR 0x07
#define NOTIMPLEMENTED 0x08
#ifdef __cplusplus
extern "C"
{
#endif
//////////////////////////////////////////////////////////////////////////
//
// Stable API section.
//
// All of the functions in this section have a strong guarantee that we
// will not break API compatibility.
//
//////////////////////////////////////////////////////////////////////////
//! Return a string representing the version of the libsmbios library.
/** Returns the current version of the SMBIOS library as a string
*/
const char *SMBIOSGetLibraryVersionString();
//! Return the Dell System ID Byte or Word
/** The Dell System ID is a unique number allocated to each Dell System
* (server, desktop, workstation, or laptop) that uniquely identifies that
* system within Dell's product line.
*/
int SMBIOSGetDellSystemId();
//! Return a buffer containing the System Name.
/** Allocates a buffer on behalf of the caller. Caller must use the
* freeMemory() function call to free this memory when finished.
*/
const char *SMBIOSGetSystemName();
//! Return a buffer containing the BIOS version string.
/** Allocates a buffer on behalf of the caller. Caller must use the
* freeMemory() function call to free this memory when finished.
*/
const char *SMBIOSGetBiosVersion();
//! Returns the 10 character Dell Asset Tag
/** Allocates a buffer on behalf of the caller. Caller must use the
* freeMemory() function call to free this memory when finished.
*/
const char *SMBIOSGetAssetTag();
//! Returns the 5 or 7 character Dell Service Tag.
/** Allocates a buffer on behalf of the caller. Caller must use the
* freeMemory() function call to free this memory when finished.
*/
const char *SMBIOSGetServiceTag();
//! Free memory allocated by libsmbios
/** This function must be called to free memory for any function that
* allocates memory on behalf of its caller.
*/
void SMBIOSFreeMemory( const char * );
/**
* This function returns the string error message raised by any of the
* SystemInfo functions
*/
const char *SMBIOSGetSysInfoErrorString();
//////////////////////////////////////////////////////////////////////////
//
// UNStable API section.
//
// API for the following functions has not been frozen yet and is
// subject to change.
//
//////////////////////////////////////////////////////////////////////////
// Almost stable
int SMBIOSHasBootToUp();
int SMBIOSGetBootToUp(); // -- gets BIOS boot-to-UP flag
void SMBIOSSetBootToUp(int state); //
// Almost stable
int SMBIOSHasNvramStateBytes();
int SMBIOSGetNvramStateBytes(int user);
void SMBIOSSetNvramStateBytes(int value, int user);
// Almost stable
/** Copies chars from inputbuf to outputbuf, changing to scan-codes from ascii.
buffers must be pre-allocated. */
void SMBIOSMapAsciiTo_en_US_ScanCode(char *outputScanCodeBuf, const char *inputAsciiBuf, size_t outputBufSize);
// Almost stable
/** returns password coding used in SMI calls
0 == unknown
1 == scan code
2 == ascii
*/
int SMBIOSGetSmiPasswordCoding();
// Almost stable
/** Returns 0 if the system is not a Dell, 1 if it is. */
int SMBIOSIsDellSystem();
/** Allocates a buffer on behalf of the caller. Caller must use the
* freeMemory() function call to free this memory when finished.
*/
const char *SMBIOSGetVendorName(); // -- Dell or OEM vendor
// almost stable, CMOS-only implemented at this time
//! Set the 5 or 7 character Dell Service Tag.
/** The Dell Asset Tag is displayed in BIOS and is also contained in SMBIOS.
* This tag can generally be up to 7 chars long. There are SMI and CMOS
* methods to set this tag. At present, only CMOS access method is
* implemented in libsmbios. This works across all Dell hardware that
* the author is aware of.
*
* WARNING! The Dell Service Tag is very closely tied into the Dell
* support system. This tag should not be changed except under direction
* from Dell support. */
int SMBIOSSetServiceTag(const char *password, const char *newTag, size_t len);
// almost stable, CMOS-only implemented at this time
//! Set the Dell Asset Tag
/** The Dell Asset Tag is displayed in BIOS and is also contained in SMBIOS.
* This tag can generally be up to 10 chars long. There are SMI and CMOS
* methods to set this tag. At present, only CMOS access method is
* implemented in libsmbios. This works across all Dell hardware that
* the author is aware of.
*
* User of the system can use this field to store any user-defined
* data. Dell BIOS/support/etc does not utilize this value. */
int SMBIOSSetAssetTag(const char *password, const char *newTag, size_t len);
#ifdef __cplusplus
}
#endif
#endif /* SYSTEMINFO_H */
|