From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=134.134.136.100; helo=mga07.intel.com; envelope-from=shenglei.zhang@intel.com; receiver=edk2-devel@lists.01.org Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 7FE422194D3B3 for ; Tue, 13 Nov 2018 00:35:33 -0800 (PST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 13 Nov 2018 00:35:34 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.54,498,1534834800"; d="scan'208";a="105805401" Received: from shenglei-dev.ccr.corp.intel.com ([10.239.158.52]) by fmsmga004.fm.intel.com with ESMTP; 13 Nov 2018 00:35:32 -0800 From: Shenglei Zhang To: edk2-devel@lists.01.org Cc: Liming Gao , Michael D Kinney Date: Tue, 13 Nov 2018 16:35:15 +0800 Message-Id: <20181113083518.6824-6-shenglei.zhang@intel.com> X-Mailer: git-send-email 2.18.0.windows.1 In-Reply-To: <20181113083518.6824-1-shenglei.zhang@intel.com> References: <20181113083518.6824-1-shenglei.zhang@intel.com> Subject: [PATCH 5/8] IntelFrameworkPkg/PeiSmbusLibSmbusPpi: Remove PeiSmbusLibSmbusPpi X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Nov 2018 08:35:33 -0000 PeiSmbusLibSmbusPpi is not used, so it is removed. https://bugzilla.tianocore.org/show_bug.cgi?id=1190 Cc: Liming Gao Cc: Michael D Kinney Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Shenglei Zhang --- .../PeiSmbusLibSmbusPpi/InternalSmbusLib.h | 78 --- .../Library/PeiSmbusLibSmbusPpi/PeiSmbusLib.c | 95 ---- .../PeiSmbusLibSmbusPpi.inf | 53 -- .../PeiSmbusLibSmbusPpi.uni | 21 - .../Library/PeiSmbusLibSmbusPpi/SmbusLib.c | 470 ------------------ 5 files changed, 717 deletions(-) delete mode 100644 IntelFrameworkPkg/Library/PeiSmbusLibSmbusPpi/InternalSmbusLib.h delete mode 100644 IntelFrameworkPkg/Library/PeiSmbusLibSmbusPpi/PeiSmbusLib.c delete mode 100644 IntelFrameworkPkg/Library/PeiSmbusLibSmbusPpi/PeiSmbusLibSmbusPpi.inf delete mode 100644 IntelFrameworkPkg/Library/PeiSmbusLibSmbusPpi/PeiSmbusLibSmbusPpi.uni delete mode 100644 IntelFrameworkPkg/Library/PeiSmbusLibSmbusPpi/SmbusLib.c diff --git a/IntelFrameworkPkg/Library/PeiSmbusLibSmbusPpi/InternalSmbusLib.h b/IntelFrameworkPkg/Library/PeiSmbusLibSmbusPpi/InternalSmbusLib.h deleted file mode 100644 index e66f7b130b..0000000000 --- a/IntelFrameworkPkg/Library/PeiSmbusLibSmbusPpi/InternalSmbusLib.h +++ /dev/null @@ -1,78 +0,0 @@ -/** @file - Internal header file for Smbus library. - -Copyright (c) 2006 - 2018, 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. - -**/ - -#ifndef _INTERNAL_SMBUS_LIB_H_ -#define _INTERNAL_SMBUS_LIB_H_ - - -#include - -#include - -#include -#include -#include -#include -#include - -// -// Declaration for internal functions -// - -/** - Gets Smbus PPIs. - - This internal function retrieves Smbus PPI from PPI database. - - @param VOID - - @return The pointer to Smbus PPI. - -**/ -EFI_PEI_SMBUS_PPI * -InternalGetSmbusPpi ( - VOID - ); - -/** - Executes an SMBus operation to an SMBus controller. - - This function provides a standard way to execute Smbus script - as defined in the SmBus Specification. The data can either be of - the Length byte, word, or a block of data. - - @param SmbusOperation Signifies which particular SMBus hardware protocol instance that it will use to - execute the SMBus transactions. - @param SmBusAddress Address that encodes the SMBUS Slave Address, - SMBUS Command, SMBUS Data Length, and PEC. - @param Length Signifies the number of bytes that this operation will do. The maximum number of - bytes can be revision specific and operation specific. - @param Buffer Contains the value of data to execute to the SMBus slave device. Not all operations - require this argument. The length of this buffer is identified by Length. - @param Status Return status for the executed command. - This is an optional parameter and may be NULL. - - @return The actual number of bytes that are executed for this operation. - -**/ -UINTN -InternalSmBusExec ( - IN EFI_SMBUS_OPERATION SmbusOperation, - IN UINTN SmBusAddress, - IN UINTN Length, - IN OUT VOID *Buffer, - OUT RETURN_STATUS *Status OPTIONAL - ); - -#endif diff --git a/IntelFrameworkPkg/Library/PeiSmbusLibSmbusPpi/PeiSmbusLib.c b/IntelFrameworkPkg/Library/PeiSmbusLibSmbusPpi/PeiSmbusLib.c deleted file mode 100644 index ae5cbb26b4..0000000000 --- a/IntelFrameworkPkg/Library/PeiSmbusLibSmbusPpi/PeiSmbusLib.c +++ /dev/null @@ -1,95 +0,0 @@ -/** @file - Implementation of SmBusLib class library for PEI phase. - -Copyright (c) 2006 - 2018, 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. - -**/ - -#include "InternalSmbusLib.h" - -/** - Gets Smbus PPIs. - - This internal function retrieves Smbus PPI from PPI database. - If gEfiPeiSmbusPpiGuid can not be located, then ASSERT() - - @return The pointer to Smbus PPI. - -**/ -EFI_PEI_SMBUS_PPI * -InternalGetSmbusPpi ( - VOID - ) -{ - EFI_STATUS Status; - EFI_PEI_SMBUS_PPI *SmbusPpi; - - Status = PeiServicesLocatePpi (&gEfiPeiSmbusPpiGuid, 0, NULL, (VOID **) &SmbusPpi); - ASSERT_EFI_ERROR (Status); - ASSERT (SmbusPpi != NULL); - - return SmbusPpi; -} - -/** - Executes an SMBus operation to an SMBus controller. - - This function provides a standard way to execute Smbus script - as defined in the SmBus Specification. The data can either be of - the Length byte, word, or a block of data. - - @param SmbusOperation Signifies which particular SMBus hardware protocol instance that it will use to - execute the SMBus transactions. - @param SmBusAddress Address that encodes the SMBUS Slave Address, - SMBUS Command, SMBUS Data Length, and PEC. - @param Length Signifies the number of bytes that this operation will do. The maximum number of - bytes can be revision specific and operation specific. - @param Buffer Contains the value of data to execute to the SMBus slave device. Not all operations - require this argument. The length of this buffer is identified by Length. - @param Status Return status for the executed command. - This is an optional parameter and may be NULL. - - @return The actual number of bytes that are executed for this operation.. - -**/ -UINTN -InternalSmBusExec ( - IN EFI_SMBUS_OPERATION SmbusOperation, - IN UINTN SmBusAddress, - IN UINTN Length, - IN OUT VOID *Buffer, - OUT RETURN_STATUS *Status OPTIONAL - ) -{ - EFI_PEI_SMBUS_PPI *SmbusPpi; - CONST EFI_PEI_SERVICES **PeiServices; - RETURN_STATUS ReturnStatus; - EFI_SMBUS_DEVICE_ADDRESS SmbusDeviceAddress; - - PeiServices = GetPeiServicesTablePointer (); - SmbusPpi = InternalGetSmbusPpi (); - SmbusDeviceAddress.SmbusDeviceAddress = SMBUS_LIB_SLAVE_ADDRESS (SmBusAddress); - - ReturnStatus = SmbusPpi->Execute ( - (EFI_PEI_SERVICES **) PeiServices, - SmbusPpi, - SmbusDeviceAddress, - SMBUS_LIB_COMMAND (SmBusAddress), - SmbusOperation, - SMBUS_LIB_PEC (SmBusAddress), - &Length, - Buffer - ); - if (Status != NULL) { - *Status = ReturnStatus; - } - - return Length; -} diff --git a/IntelFrameworkPkg/Library/PeiSmbusLibSmbusPpi/PeiSmbusLibSmbusPpi.inf b/IntelFrameworkPkg/Library/PeiSmbusLibSmbusPpi/PeiSmbusLibSmbusPpi.inf deleted file mode 100644 index 602ec9a642..0000000000 --- a/IntelFrameworkPkg/Library/PeiSmbusLibSmbusPpi/PeiSmbusLibSmbusPpi.inf +++ /dev/null @@ -1,53 +0,0 @@ -## @file -# SMBUS library that layers on top of the SMBUS PPI. -# -# Copyright (c) 2006 - 2018, 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. -# -# -## - -[Defines] - INF_VERSION = 0x00010005 - BASE_NAME = PeiSmbusLibSmbusPpi - MODULE_UNI_FILE = PeiSmbusLibSmbusPpi.uni - FILE_GUID = 51C4C059-67F0-4e3c-9A55-FF42A8291C8C - MODULE_TYPE = PEIM - VERSION_STRING = 1.0 - LIBRARY_CLASS = SmbusLib|PEIM - - -# -# The following information is for reference only and not required by the build tools. -# -# VALID_ARCHITECTURES = IA32 X64 EBC -# - -[Sources] - SmbusLib.c - PeiSmbusLib.c - InternalSmbusLib.h - - -[Packages] - MdePkg/MdePkg.dec - IntelFrameworkPkg/IntelFrameworkPkg.dec - - -[LibraryClasses] - BaseMemoryLib - PeiServicesLib - DebugLib - PeiServicesTablePointerLib - -[Ppis] - gEfiPeiSmbusPpiGuid ## CONSUMES - -[Depex] - gEfiPeiSmbusPpiGuid diff --git a/IntelFrameworkPkg/Library/PeiSmbusLibSmbusPpi/PeiSmbusLibSmbusPpi.uni b/IntelFrameworkPkg/Library/PeiSmbusLibSmbusPpi/PeiSmbusLibSmbusPpi.uni deleted file mode 100644 index 8f5d42630f..0000000000 --- a/IntelFrameworkPkg/Library/PeiSmbusLibSmbusPpi/PeiSmbusLibSmbusPpi.uni +++ /dev/null @@ -1,21 +0,0 @@ -// /** @file -// SMBUS library that layers on top of the SMBUS PPI. -// -// The SMBUS library that layers on top of the SMBUS PPI. -// -// Copyright (c) 2006 - 2014, 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. -// -// **/ - - -#string STR_MODULE_ABSTRACT #language en-US "Layers on top of the SMBUS PPI" - -#string STR_MODULE_DESCRIPTION #language en-US "The SMBUS library that layers on top of the SMBUS PPI." - diff --git a/IntelFrameworkPkg/Library/PeiSmbusLibSmbusPpi/SmbusLib.c b/IntelFrameworkPkg/Library/PeiSmbusLibSmbusPpi/SmbusLib.c deleted file mode 100644 index cf3b80a6cb..0000000000 --- a/IntelFrameworkPkg/Library/PeiSmbusLibSmbusPpi/SmbusLib.c +++ /dev/null @@ -1,470 +0,0 @@ -/** @file -Implementation of SmBusLib class library for PEI phase. - -Copyright (c) 2006 - 2018, 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: SmbusLib.c - -**/ - -#include "InternalSmbusLib.h" - -/** - Executes an SMBUS quick read command. - - Executes an SMBUS quick read command on the SMBUS device specified by SmBusAddress. - Only the SMBUS slave address field of SmBusAddress is required. - If Status is not NULL, then the status of the executed command is returned in Status. - If PEC is set in SmBusAddress, then ASSERT(). - If Command in SmBusAddress is not zero, then ASSERT(). - If Length in SmBusAddress is not zero, then ASSERT(). - If any reserved bits of SmBusAddress are set, then ASSERT(). - - @param SmBusAddress Address that encodes the SMBUS Slave Address, - SMBUS Command, SMBUS Data Length, and PEC. - @param Status Return status for the executed command. - This is an optional parameter and may be NULL. - -**/ -VOID -EFIAPI -SmBusQuickRead ( - IN UINTN SmBusAddress, - OUT RETURN_STATUS *Status OPTIONAL - ) -{ - ASSERT (!SMBUS_LIB_PEC (SmBusAddress)); - ASSERT (SMBUS_LIB_COMMAND (SmBusAddress) == 0); - ASSERT (SMBUS_LIB_LENGTH (SmBusAddress) == 0); - ASSERT (SMBUS_LIB_RESERVED (SmBusAddress) == 0); - - InternalSmBusExec (EfiSmbusQuickRead, SmBusAddress, 0, NULL, Status); -} - -/** - Executes an SMBUS quick write command. - - Executes an SMBUS quick write command on the SMBUS device specified by SmBusAddress. - Only the SMBUS slave address field of SmBusAddress is required. - If Status is not NULL, then the status of the executed command is returned in Status. - If PEC is set in SmBusAddress, then ASSERT(). - If Command in SmBusAddress is not zero, then ASSERT(). - If Length in SmBusAddress is not zero, then ASSERT(). - If any reserved bits of SmBusAddress are set, then ASSERT(). - - @param SmBusAddress Address that encodes the SMBUS Slave Address, - SMBUS Command, SMBUS Data Length, and PEC. - @param Status Return status for the executed command. - This is an optional parameter and may be NULL. - -**/ -VOID -EFIAPI -SmBusQuickWrite ( - IN UINTN SmBusAddress, - OUT RETURN_STATUS *Status OPTIONAL - ) -{ - ASSERT (!SMBUS_LIB_PEC (SmBusAddress)); - ASSERT (SMBUS_LIB_COMMAND (SmBusAddress) == 0); - ASSERT (SMBUS_LIB_LENGTH (SmBusAddress) == 0); - ASSERT (SMBUS_LIB_RESERVED (SmBusAddress) == 0); - - InternalSmBusExec (EfiSmbusQuickWrite, SmBusAddress, 0, NULL, Status); -} - -/** - Executes an SMBUS receive byte command. - - Executes an SMBUS receive byte command on the SMBUS device specified by SmBusAddress. - Only the SMBUS slave address field of SmBusAddress is required. - The byte received from the SMBUS is returned. - If Status is not NULL, then the status of the executed command is returned in Status. - If Command in SmBusAddress is not zero, then ASSERT(). - If Length in SmBusAddress is not zero, then ASSERT(). - If any reserved bits of SmBusAddress are set, then ASSERT(). - - @param SmBusAddress Address that encodes the SMBUS Slave Address, - SMBUS Command, SMBUS Data Length, and PEC. - @param Status Return status for the executed command. - This is an optional parameter and may be NULL. - - @return The byte received from the SMBUS. - -**/ -UINT8 -EFIAPI -SmBusReceiveByte ( - IN UINTN SmBusAddress, - OUT RETURN_STATUS *Status OPTIONAL - ) -{ - UINT8 Byte; - - ASSERT (SMBUS_LIB_COMMAND (SmBusAddress) == 0); - ASSERT (SMBUS_LIB_LENGTH (SmBusAddress) == 0); - ASSERT (SMBUS_LIB_RESERVED (SmBusAddress) == 0); - - InternalSmBusExec (EfiSmbusReceiveByte, SmBusAddress, 1, &Byte, Status); - - return Byte; -} - -/** - Executes an SMBUS send byte command. - - Executes an SMBUS send byte command on the SMBUS device specified by SmBusAddress. - The byte specified by Value is sent. - Only the SMBUS slave address field of SmBusAddress is required. Value is returned. - If Status is not NULL, then the status of the executed command is returned in Status. - If Command in SmBusAddress is not zero, then ASSERT(). - If Length in SmBusAddress is not zero, then ASSERT(). - If any reserved bits of SmBusAddress are set, then ASSERT(). - - @param SmBusAddress Address that encodes the SMBUS Slave Address, - SMBUS Command, SMBUS Data Length, and PEC. - @param Value The 8-bit value to send. - @param Status Return status for the executed command. - This is an optional parameter and may be NULL. - - @return The parameter of Value. - -**/ -UINT8 -EFIAPI -SmBusSendByte ( - IN UINTN SmBusAddress, - IN UINT8 Value, - OUT RETURN_STATUS *Status OPTIONAL - ) -{ - UINT8 Byte; - - ASSERT (SMBUS_LIB_COMMAND (SmBusAddress) == 0); - ASSERT (SMBUS_LIB_LENGTH (SmBusAddress) == 0); - ASSERT (SMBUS_LIB_RESERVED (SmBusAddress) == 0); - - Byte = Value; - InternalSmBusExec (EfiSmbusSendByte, SmBusAddress, 1, &Byte, Status); - - return Value; -} - -/** - Executes an SMBUS read data byte command. - - Executes an SMBUS read data byte command on the SMBUS device specified by SmBusAddress. - Only the SMBUS slave address and SMBUS command fields of SmBusAddress are required. - The 8-bit value read from the SMBUS is returned. - If Status is not NULL, then the status of the executed command is returned in Status. - If Length in SmBusAddress is not zero, then ASSERT(). - If any reserved bits of SmBusAddress are set, then ASSERT(). - - @param SmBusAddress Address that encodes the SMBUS Slave Address, - SMBUS Command, SMBUS Data Length, and PEC. - @param Status Return status for the executed command. - This is an optional parameter and may be NULL. - - @return The byte read from the SMBUS. - -**/ -UINT8 -EFIAPI -SmBusReadDataByte ( - IN UINTN SmBusAddress, - OUT RETURN_STATUS *Status OPTIONAL - ) -{ - UINT8 Byte; - - ASSERT (SMBUS_LIB_LENGTH (SmBusAddress) == 0); - ASSERT (SMBUS_LIB_RESERVED (SmBusAddress) == 0); - - InternalSmBusExec (EfiSmbusReadByte, SmBusAddress, 1, &Byte, Status); - - return Byte; -} - -/** - Executes an SMBUS write data byte command. - - Executes an SMBUS write data byte command on the SMBUS device specified by SmBusAddress. - The 8-bit value specified by Value is written. - Only the SMBUS slave address and SMBUS command fields of SmBusAddress are required. - Value is returned. - If Status is not NULL, then the status of the executed command is returned in Status. - If Length in SmBusAddress is not zero, then ASSERT(). - If any reserved bits of SmBusAddress are set, then ASSERT(). - - @param SmBusAddress Address that encodes the SMBUS Slave Address, - SMBUS Command, SMBUS Data Length, and PEC. - @param Value The 8-bit value to write. - @param Status Return status for the executed command. - This is an optional parameter and may be NULL. - - @return The parameter of Value. - -**/ -UINT8 -EFIAPI -SmBusWriteDataByte ( - IN UINTN SmBusAddress, - IN UINT8 Value, - OUT RETURN_STATUS *Status OPTIONAL - ) -{ - UINT8 Byte; - - ASSERT (SMBUS_LIB_LENGTH (SmBusAddress) == 0); - ASSERT (SMBUS_LIB_RESERVED (SmBusAddress) == 0); - - Byte = Value; - InternalSmBusExec (EfiSmbusWriteByte, SmBusAddress, 1, &Byte, Status); - - return Value; -} - -/** - Executes an SMBUS read data word command. - - Executes an SMBUS read data word command on the SMBUS device specified by SmBusAddress. - Only the SMBUS slave address and SMBUS command fields of SmBusAddress are required. - The 16-bit value read from the SMBUS is returned. - If Status is not NULL, then the status of the executed command is returned in Status. - If Length in SmBusAddress is not zero, then ASSERT(). - If any reserved bits of SmBusAddress are set, then ASSERT(). - - @param SmBusAddress Address that encodes the SMBUS Slave Address, - SMBUS Command, SMBUS Data Length, and PEC. - @param Status Return status for the executed command. - This is an optional parameter and may be NULL. - - @return The byte read from the SMBUS. - -**/ -UINT16 -EFIAPI -SmBusReadDataWord ( - IN UINTN SmBusAddress, - OUT RETURN_STATUS *Status OPTIONAL - ) -{ - UINT16 Word; - - ASSERT (SMBUS_LIB_LENGTH (SmBusAddress) == 0); - ASSERT (SMBUS_LIB_RESERVED (SmBusAddress) == 0); - - InternalSmBusExec (EfiSmbusReadWord, SmBusAddress, 2, &Word, Status); - - return Word; -} - -/** - Executes an SMBUS write data word command. - - Executes an SMBUS write data word command on the SMBUS device specified by SmBusAddress. - The 16-bit value specified by Value is written. - Only the SMBUS slave address and SMBUS command fields of SmBusAddress are required. - Value is returned. - If Status is not NULL, then the status of the executed command is returned in Status. - If Length in SmBusAddress is not zero, then ASSERT(). - If any reserved bits of SmBusAddress are set, then ASSERT(). - - @param SmBusAddress Address that encodes the SMBUS Slave Address, - SMBUS Command, SMBUS Data Length, and PEC. - @param Value The 16-bit value to write. - @param Status Return status for the executed command. - This is an optional parameter and may be NULL. - - @return The parameter of Value. - -**/ -UINT16 -EFIAPI -SmBusWriteDataWord ( - IN UINTN SmBusAddress, - IN UINT16 Value, - OUT RETURN_STATUS *Status OPTIONAL - ) -{ - UINT16 Word; - - ASSERT (SMBUS_LIB_LENGTH (SmBusAddress) == 0); - ASSERT (SMBUS_LIB_RESERVED (SmBusAddress) == 0); - - Word = Value; - InternalSmBusExec (EfiSmbusWriteWord, SmBusAddress, 2, &Word, Status); - - return Value; -} - -/** - Executes an SMBUS process call command. - - Executes an SMBUS process call command on the SMBUS device specified by SmBusAddress. - The 16-bit value specified by Value is written. - Only the SMBUS slave address and SMBUS command fields of SmBusAddress are required. - The 16-bit value returned by the process call command is returned. - If Status is not NULL, then the status of the executed command is returned in Status. - If Length in SmBusAddress is not zero, then ASSERT(). - If any reserved bits of SmBusAddress are set, then ASSERT(). - - @param SmBusAddress Address that encodes the SMBUS Slave Address, - SMBUS Command, SMBUS Data Length, and PEC. - @param Value The 16-bit value to write. - @param Status Return status for the executed command. - This is an optional parameter and may be NULL. - - @return The 16-bit value returned by the process call command. - -**/ -UINT16 -EFIAPI -SmBusProcessCall ( - IN UINTN SmBusAddress, - IN UINT16 Value, - OUT RETURN_STATUS *Status OPTIONAL - ) -{ - ASSERT (SMBUS_LIB_LENGTH (SmBusAddress) == 0); - ASSERT (SMBUS_LIB_RESERVED (SmBusAddress) == 0); - - InternalSmBusExec (EfiSmbusProcessCall, SmBusAddress, 2, &Value, Status); - - return Value; -} - -/** - Executes an SMBUS read block command. - - Executes an SMBUS read block command on the SMBUS device specified by SmBusAddress. - Only the SMBUS slave address and SMBUS command fields of SmBusAddress are required. - Bytes are read from the SMBUS and stored in Buffer. - The number of bytes read is returned, and will never return a value larger than 32-bytes. - If Status is not NULL, then the status of the executed command is returned in Status. - It is the caller's responsibility to make sure Buffer is large enough for the total number of bytes read. - SMBUS supports a maximum transfer size of 32 bytes, so Buffer does not need to be any larger than 32 bytes. - If Length in SmBusAddress is not zero, then ASSERT(). - If Buffer is NULL, then ASSERT(). - If any reserved bits of SmBusAddress are set, then ASSERT(). - - @param SmBusAddress Address that encodes the SMBUS Slave Address, - SMBUS Command, SMBUS Data Length, and PEC. - @param Buffer Pointer to the buffer to store the bytes read from the SMBUS. - @param Status Return status for the executed command. - This is an optional parameter and may be NULL. - - @return The number of bytes read. - -**/ -UINTN -EFIAPI -SmBusReadBlock ( - IN UINTN SmBusAddress, - OUT VOID *Buffer, - OUT RETURN_STATUS *Status OPTIONAL - ) -{ - ASSERT (Buffer != NULL); - ASSERT (SMBUS_LIB_LENGTH (SmBusAddress) == 0); - ASSERT (SMBUS_LIB_RESERVED (SmBusAddress) == 0); - - return InternalSmBusExec (EfiSmbusReadBlock, SmBusAddress, 0x20, Buffer, Status); -} - -/** - Executes an SMBUS write block command. - - Executes an SMBUS write block command on the SMBUS device specified by SmBusAddress. - The SMBUS slave address, SMBUS command, and SMBUS length fields of SmBusAddress are required. - Bytes are written to the SMBUS from Buffer. - The number of bytes written is returned, and will never return a value larger than 32-bytes. - If Status is not NULL, then the status of the executed command is returned in Status. - If Length in SmBusAddress is zero or greater than 32, then ASSERT(). - If Buffer is NULL, then ASSERT(). - If any reserved bits of SmBusAddress are set, then ASSERT(). - - @param SmBusAddress Address that encodes the SMBUS Slave Address, - SMBUS Command, SMBUS Data Length, and PEC. - @param Buffer Pointer to the buffer to store the bytes read from the SMBUS. - @param Status Return status for the executed command. - This is an optional parameter and may be NULL. - - @return The number of bytes written. - -**/ -UINTN -EFIAPI -SmBusWriteBlock ( - IN UINTN SmBusAddress, - OUT VOID *Buffer, - OUT RETURN_STATUS *Status OPTIONAL - ) -{ - UINTN Length; - - ASSERT (Buffer != NULL); - ASSERT (SMBUS_LIB_LENGTH (SmBusAddress) >= 1); - ASSERT (SMBUS_LIB_LENGTH (SmBusAddress) <= 32); - ASSERT (SMBUS_LIB_RESERVED (SmBusAddress) == 0); - - Length = SMBUS_LIB_LENGTH (SmBusAddress); - return InternalSmBusExec (EfiSmbusWriteBlock, SmBusAddress, Length, Buffer, Status); -} - -/** - Executes an SMBUS block process call command. - - Executes an SMBUS block process call command on the SMBUS device specified by SmBusAddress. - The SMBUS slave address, SMBUS command, and SMBUS length fields of SmBusAddress are required. - Bytes are written to the SMBUS from WriteBuffer. Bytes are then read from the SMBUS into ReadBuffer. - If Status is not NULL, then the status of the executed command is returned in Status. - It is the caller's responsibility to make sure ReadBuffer is large enough for the total number of bytes read. - SMBUS supports a maximum transfer size of 32 bytes, so Buffer does not need to be any larger than 32 bytes. - If Length in SmBusAddress is zero or greater than 32, then ASSERT(). - If WriteBuffer is NULL, then ASSERT(). - If ReadBuffer is NULL, then ASSERT(). - If any reserved bits of SmBusAddress are set, then ASSERT(). - - @param SmBusAddress Address that encodes the SMBUS Slave Address, - SMBUS Command, SMBUS Data Length, and PEC. - @param WriteBuffer Pointer to the buffer of bytes to write to the SMBUS. - @param ReadBuffer Pointer to the buffer of bytes to read from the SMBUS. - @param Status Return status for the executed command. - This is an optional parameter and may be NULL. - - @return The number of bytes written. - -**/ -UINTN -EFIAPI -SmBusBlockProcessCall ( - IN UINTN SmBusAddress, - IN VOID *WriteBuffer, - OUT VOID *ReadBuffer, - OUT RETURN_STATUS *Status OPTIONAL - ) -{ - UINTN Length; - - ASSERT (WriteBuffer != NULL); - ASSERT (ReadBuffer != NULL); - ASSERT (SMBUS_LIB_LENGTH (SmBusAddress) >= 1); - ASSERT (SMBUS_LIB_LENGTH (SmBusAddress) <= 32); - ASSERT (SMBUS_LIB_RESERVED (SmBusAddress) == 0); - - Length = SMBUS_LIB_LENGTH (SmBusAddress); - // - // Assuming that ReadBuffer is large enough to save another memory copy. - // - ReadBuffer = CopyMem (ReadBuffer, WriteBuffer, Length); - return InternalSmBusExec (EfiSmbusBWBRProcessCall, SmBusAddress, Length, ReadBuffer, Status); -} -- 2.18.0.windows.1