]> git.proxmox.com Git - mirror_edk2.git/blob - EdkCompatibilityPkg/Foundation/Framework/Ppi/Smbus/Smbus.h
Add in the 1st version of ECP.
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Framework / Ppi / Smbus / Smbus.h
1 /*++
2
3 Copyright (c) 1999 - 2006, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
8
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11
12
13 Module Name:
14
15 Smbus.h
16
17 Abstract:
18
19 Smbus PPI as defined in EFI 2.0
20
21 --*/
22
23 #ifndef _PEI_SMBUS_PPI_H
24 #define _PEI_SMBUS_PPI_H
25
26 #include "EfiSmbus.h"
27
28 #define PEI_SMBUS_PPI_GUID \
29 { \
30 0xabd42895, 0x78cf, 0x4872, 0x84, 0x44, 0x1b, 0x5c, 0x18, 0xb, 0xfb, 0xda \
31 }
32
33 EFI_FORWARD_DECLARATION (PEI_SMBUS_PPI);
34
35 typedef
36 EFI_STATUS
37 (EFIAPI *PEI_SMBUS_PPI_EXECUTE_OPERATION) (
38 IN EFI_PEI_SERVICES **PeiServices,
39 IN PEI_SMBUS_PPI * This,
40 IN EFI_SMBUS_DEVICE_ADDRESS SlaveAddress,
41 IN EFI_SMBUS_DEVICE_COMMAND Command,
42 IN EFI_SMBUS_OPERATION Operation,
43 IN BOOLEAN PecCheck,
44 IN OUT UINTN *Length,
45 IN OUT VOID *Buffer
46 );
47
48
49 typedef
50 EFI_STATUS
51 (EFIAPI *PEI_SMBUS_NOTIFY_FUNCTION) (
52 IN EFI_PEI_SERVICES **PeiServices,
53 IN PEI_SMBUS_PPI * SmbusPpi,
54 IN EFI_SMBUS_DEVICE_ADDRESS SlaveAddress,
55 IN UINTN Data
56 );
57
58 //
59 // If ArpAll is TRUE, SmbusUdid/SlaveAddress is Optional.
60 // If FALSE, ArpDevice will enum SmbusUdid and the address will be at SlaveAddress
61 //
62 typedef
63 EFI_STATUS
64 (EFIAPI *PEI_SMBUS_PPI_ARP_DEVICE) (
65 IN EFI_PEI_SERVICES **PeiServices,
66 IN PEI_SMBUS_PPI * This,
67 IN BOOLEAN ArpAll,
68 IN EFI_SMBUS_UDID * SmbusUdid, OPTIONAL
69 IN OUT EFI_SMBUS_DEVICE_ADDRESS * SlaveAddress OPTIONAL
70 );
71
72
73 typedef
74 EFI_STATUS
75 (EFIAPI *PEI_SMBUS_PPI_GET_ARP_MAP) (
76 IN EFI_PEI_SERVICES **PeiServices,
77 IN PEI_SMBUS_PPI * This,
78 IN OUT UINTN *Length,
79 IN OUT EFI_SMBUS_DEVICE_MAP **SmbusDeviceMap
80 );
81
82 typedef
83 EFI_STATUS
84 (EFIAPI *PEI_SMBUS_PPI_NOTIFY) (
85 IN EFI_PEI_SERVICES **PeiServices,
86 IN PEI_SMBUS_PPI * This,
87 IN EFI_SMBUS_DEVICE_ADDRESS SlaveAddress,
88 IN UINTN Data,
89 IN PEI_SMBUS_NOTIFY_FUNCTION NotifyFunction
90 );
91
92 typedef struct _PEI_SMBUS_PPI {
93 PEI_SMBUS_PPI_EXECUTE_OPERATION Execute;
94 PEI_SMBUS_PPI_ARP_DEVICE ArpDevice;
95 PEI_SMBUS_PPI_GET_ARP_MAP GetArpMap;
96 PEI_SMBUS_PPI_NOTIFY Notify;
97 } PEI_SMBUS_PPI;
98
99 extern EFI_GUID gPeiSmbusPpiGuid;
100
101 #endif