mirror of https://github.com/acidanthera/audk.git
123 lines
3.5 KiB
C
123 lines
3.5 KiB
C
/*++
|
|
|
|
Copyright (c) 2006, Intel Corporation
|
|
All rights reserved. This program and the accompanying materials
|
|
are licensed and made available under the terms and conditions of the BSD License
|
|
which accompanies this distribution. The full text of the license may be found at
|
|
http://opensource.org/licenses/bsd-license.php
|
|
|
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|
|
|
Module Name:
|
|
|
|
MiscSystemManufacturerFunction.c
|
|
|
|
Abstract:
|
|
|
|
This driver parses the mMiscSubclassDataTable structure and reports
|
|
any generated data to the DataHub.
|
|
|
|
--*/
|
|
|
|
#include "MiscSubClassDriver.h"
|
|
|
|
//
|
|
//
|
|
//
|
|
MISC_SUBCLASS_TABLE_FUNCTION (
|
|
MiscSystemManufacturer
|
|
)
|
|
/*++
|
|
Description:
|
|
|
|
This function makes boot time changes to the contents of the
|
|
MiscSystemManufacturer (Type 13).
|
|
|
|
Parameters:
|
|
|
|
RecordType
|
|
Type of record to be processed from the Data Table.
|
|
mMiscSubclassDataTable[].RecordType
|
|
|
|
RecordLen
|
|
Size of static RecordData from the Data Table.
|
|
mMiscSubclassDataTable[].RecordLen
|
|
|
|
RecordData
|
|
Pointer to copy of RecordData from the Data Table. Changes made
|
|
to this copy will be written to the Data Hub but will not alter
|
|
the contents of the static Data Table.
|
|
|
|
LogRecordData
|
|
Set *LogRecordData to TRUE to log RecordData to Data Hub.
|
|
Set *LogRecordData to FALSE when there is no more data to log.
|
|
|
|
Returns:
|
|
|
|
EFI_SUCCESS
|
|
All parameters were valid and *RecordData and *LogRecordData have
|
|
been set.
|
|
|
|
EFI_UNSUPPORTED
|
|
Unexpected RecordType value.
|
|
|
|
EFI_INVALID_PARAMETER
|
|
One of the following parameter conditions was true:
|
|
RecordLen was zero.
|
|
RecordData was NULL.
|
|
LogRecordData was NULL.
|
|
--*/
|
|
{
|
|
STATIC BOOLEAN Done = FALSE;
|
|
|
|
//
|
|
// First check for invalid parameters.
|
|
//
|
|
if (*RecordLen == 0 || RecordData == NULL || LogRecordData == NULL) {
|
|
return EFI_INVALID_PARAMETER;
|
|
}
|
|
//
|
|
// Then check for unsupported RecordType.
|
|
//
|
|
if (RecordType != EFI_MISC_SYSTEM_MANUFACTURER_RECORD_NUMBER) {
|
|
return EFI_UNSUPPORTED;
|
|
}
|
|
//
|
|
// Is this the first time through this function?
|
|
//
|
|
if (!Done) {
|
|
//
|
|
// Yes, this is the first time. Inspect/Change the contents of the
|
|
// RecordData structure.
|
|
//
|
|
//
|
|
// Set system GUID.
|
|
//
|
|
// ((EFI_MISC_SYSTEM_MANUFACTURER_DATA *)RecordData)->SystemUuid = %%TBD
|
|
//
|
|
// Set power-on type.
|
|
//
|
|
// ((EFI_MISC_SYSTEM_MANUFACTURER_DATA *)RecordData)->SystemWakeupType = %%TBD
|
|
//
|
|
// Set Done flag to TRUE for next pass through this function.
|
|
// Set *LogRecordData to TRUE so data will get logged to Data Hub.
|
|
//
|
|
Done = TRUE;
|
|
*LogRecordData = TRUE;
|
|
} else {
|
|
//
|
|
// No, this is the second time. Reset the state of the Done flag
|
|
// to FALSE and tell the data logger that there is no more data
|
|
// to be logged for this record type. If any memory allocations
|
|
// were made by earlier passes, they must be released now.
|
|
//
|
|
Done = FALSE;
|
|
*LogRecordData = FALSE;
|
|
}
|
|
|
|
return EFI_SUCCESS;
|
|
}
|
|
|
|
/* eof - MiscSystemManufacturerFunction.c */
|