/** @file\r
Internal header file for Smbus library.\r
\r
-Copyright (c) 2006, Intel Corporation<BR>\r
-All rights reserved. This program and the accompanying materials \r
-are licensed and made available under the terms and conditions of the BSD License \r
-which accompanies this distribution. The full text of the license may be found at \r
-http://opensource.org/licenses/bsd-license.php \r
- \r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
+Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution. The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php.\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
\r
\r
**/\r
\r
-#ifndef __INTERNAL_SMBUS_LIB_H\r
-#define __INTERNAL_SMBUS_LIB_H\r
+#ifndef __INTERNAL_SMBUS_LIB_H_\r
+#define __INTERNAL_SMBUS_LIB_H_\r
+\r
+\r
+#include <PiDxe.h>\r
+\r
+#include <Protocol/SmbusHc.h>\r
\r
-#define SMBUS_LIB_SLAVE_ADDRESS(SmBusAddress) (((SmBusAddress) >> 1) & 0x7f)\r
-#define SMBUS_LIB_COMMAND(SmBusAddress) (((SmBusAddress) >> 8) & 0xff)\r
-#define SMBUS_LIB_LENGTH(SmBusAddress) (((SmBusAddress) >> 16) & 0x3f)\r
-#define SMBUS_LIB_PEC(SmBusAddress) ((BOOLEAN) (((SmBusAddress) & SMBUS_LIB_PEC_BIT) != 0))\r
-#define SMBUS_LIB_RESEARVED(SmBusAddress) ((SmBusAddress) & ~(((1 << 22) - 2) | SMBUS_LIB_PEC_BIT))\r
+#include <Library/SmbusLib.h>\r
+#include <Library/DebugLib.h>\r
+#include <Library/UefiBootServicesTableLib.h>\r
+#include <Library/BaseMemoryLib.h>\r
+\r
+#include <IndustryStandard/SmBus.h>\r
\r
//\r
// Declaration for internal functions\r
//\r
/**\r
- Executes an SMBus operation to an SMBus controller. \r
+ Executes an SMBus operation to an SMBus controller.\r
\r
This function provides a standard way to execute Smbus script\r
as defined in the SmBus Specification. The data can either be of\r
the Length byte, word, or a block of data.\r
\r
- @param SmbusOperation Signifies which particular SMBus hardware protocol instance that it will use to\r
- execute the SMBus transactions.\r
- @param SmBusAddress Address that encodes the SMBUS Slave Address,\r
+ @param SmbusOperation Signifies which particular SMBus hardware protocol instance \r
+ that it will use toexecute the SMBus transactions.\r
+ @param SmBusAddress The address that encodes the SMBUS Slave Address,\r
SMBUS Command, SMBUS Data Length, and PEC.\r
- @param Length Signifies the number of bytes that this operation will do. The maximum number of\r
- bytes can be revision specific and operation specific.\r
- @param Buffer Contains the value of data to execute to the SMBus slave device. Not all operations\r
- require this argument. The length of this buffer is identified by Length.\r
+ @param Length Signifies the number of bytes that this operation will \r
+ do. The maximum number of bytes can be revision specific \r
+ and operation specific.\r
+ @param Buffer Contains the value of data to execute to the SMBus slave\r
+ device. Not all operations require this argument. The \r
+ length of this buffer is identified by Length.\r
@param Status Return status for the executed command.\r
This is an optional parameter and may be NULL.\r
\r
OUT RETURN_STATUS *Status OPTIONAL\r
);\r
\r
+/**\r
+ The constructor function caches the pointer to Smbus protocol.\r
+\r
+ The constructor function locates Smbus protocol from protocol database.\r
+ It will ASSERT() if that operation fails and it will always return EFI_SUCCESS.\r
+\r
+ @param ImageHandle The firmware allocated handle for the EFI image.\r
+ @param SystemTable A pointer to the EFI System Table.\r
+\r
+ @retval EFI_SUCCESS The constructor always returns EFI_SUCCESS.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+SmbusLibConstructor (\r
+ IN EFI_HANDLE ImageHandle,\r
+ IN EFI_SYSTEM_TABLE *SystemTable\r
+ );\r
+\r
#endif\r