EDK2 doxygen online documents - Firmware Encoding Index 1
EDK2 doxygen online documents - Firmware Encoding Index

EdkCompatibilityPkg/Foundation/Framework/Ppi/Smbus2/Smbus2.h

Go to the documentation of this file.
00001 /*++
00002 
00003 Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
00004 This program and the accompanying materials
00005 are licensed and made available under the terms and conditions of the BSD License
00006 which accompanies this distribution.  The full text of the license may be found at
00007 http://opensource.org/licenses/bsd-license.php
00008 
00009 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
00010 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
00011 
00012 
00013 Module Name:
00014 
00015   Smbus2.h
00016     
00017 Abstract:
00018 
00019   Smbus2 PPI as defined in PI 1.0
00020 
00021 --*/
00022 
00023 #ifndef _PEI_SMBUS2_PPI_H
00024 #define _PEI_SMBUS2_PPI_H
00025 
00026 #include "EfiSmbus.h"
00027 
00028 #define PEI_SMBUS2_PPI_GUID \
00029   { \
00030     0x9ca93627, 0xb65b, 0x4324, {0xa2, 0x2, 0xc0, 0xb4, 0x61, 0x76, 0x45, 0x43} \
00031   }
00032 
00033 EFI_FORWARD_DECLARATION (EFI_PEI_SMBUS2_PPI);
00034 
00035 typedef
00036 EFI_STATUS
00037 (EFIAPI *EFI_PEI_SMBUS2_PPI_EXECUTE_OPERATION) (
00038   IN CONST EFI_PEI_SMBUS2_PPI       * This,
00039   IN      EFI_SMBUS_DEVICE_ADDRESS  SlaveAddress,
00040   IN      EFI_SMBUS_DEVICE_COMMAND  Command,
00041   IN      EFI_SMBUS_OPERATION       Operation,
00042   IN      BOOLEAN                   PecCheck,
00043   IN OUT  UINTN                     *Length,
00044   IN OUT  VOID                      *Buffer
00045   );
00046 
00047 typedef
00048 EFI_STATUS
00049 (EFIAPI *EFI_PEI_SMBUS_NOTIFY2_FUNCTION) (
00050   IN  CONST EFI_PEI_SMBUS2_PPI          * SmbusPpi,
00051   IN      EFI_SMBUS_DEVICE_ADDRESS      SlaveAddress,
00052   IN      UINTN                         Data
00053   );
00054 
00055 //
00056 // If ArpAll is TRUE, SmbusUdid/SlaveAddress is Optional.
00057 // If FALSE, ArpDevice will enum SmbusUdid and the address will be at SlaveAddress
00058 //
00059 typedef
00060 EFI_STATUS
00061 (EFIAPI *EFI_PEI_SMBUS2_PPI_ARP_DEVICE) (
00062   IN CONST EFI_PEI_SMBUS2_PPI       * This,
00063   IN      BOOLEAN                   ArpAll,
00064   IN      EFI_SMBUS_UDID            * SmbusUdid, OPTIONAL
00065   IN OUT  EFI_SMBUS_DEVICE_ADDRESS  * SlaveAddress OPTIONAL
00066   );
00067 
00068 
00069 typedef
00070 EFI_STATUS
00071 (EFIAPI *EFI_PEI_SMBUS2_PPI_GET_ARP_MAP) (
00072   IN CONST EFI_PEI_SMBUS2_PPI       * This,
00073   IN OUT  UINTN                     *Length,
00074   IN OUT  EFI_SMBUS_DEVICE_MAP      **SmbusDeviceMap
00075   );
00076 
00077 typedef
00078 EFI_STATUS
00079 (EFIAPI *EFI_PEI_SMBUS2_PPI_NOTIFY) (
00080   IN CONST EFI_PEI_SMBUS2_PPI       * This,
00081   IN      EFI_SMBUS_DEVICE_ADDRESS  SlaveAddress,
00082   IN      UINTN                     Data,
00083   IN      EFI_PEI_SMBUS_NOTIFY2_FUNCTION NotifyFunction
00084   );
00085 
00086 struct _EFI_PEI_SMBUS2_PPI {
00087   EFI_PEI_SMBUS2_PPI_EXECUTE_OPERATION Execute;
00088   EFI_PEI_SMBUS2_PPI_ARP_DEVICE        ArpDevice;
00089   EFI_PEI_SMBUS2_PPI_GET_ARP_MAP       GetArpMap;
00090   EFI_PEI_SMBUS2_PPI_NOTIFY            Notify;
00091   EFI_GUID                             Identifier;
00092 };
00093 
00094 extern EFI_GUID gPeiSmbus2PpiGuid;
00095 
00096 #endif
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Defines