1/** @file
2
3  Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
4
5  This program and the accompanying materials
6  are licensed and made available under the terms and conditions of the BSD License
7  which accompanies this distribution.  The full text of the license may be found at
8  http://opensource.org/licenses/bsd-license.php
9
10  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12
13**/
14
15#ifndef __EMBEDDED_EXTERNAL_DEVICE_H__
16#define __EMBEDDED_EXTERNAL_DEVICE_H__
17
18//
19// Protocol GUID
20//
21#define EMBEDDED_EXTERNAL_DEVICE_PROTOCOL_GUID { 0x735F8C64, 0xD696, 0x44D0, { 0xBD, 0xF2, 0x44, 0x7F, 0xD0, 0x5A, 0x54, 0x06 }}
22
23//
24// Protocol interface structure
25//
26typedef struct _EMBEDDED_EXTERNAL_DEVICE EMBEDDED_EXTERNAL_DEVICE;
27
28//
29// Function Prototypes
30//
31typedef
32EFI_STATUS
33(EFIAPI *EMBEDDED_EXTERNAL_DEVICE_READ) (
34    IN  EMBEDDED_EXTERNAL_DEVICE  *This,
35    IN  UINTN                       Register,
36    IN  UINTN                       Length,
37    OUT VOID                        *Buffer
38    )
39/*++
40
41Routine Description:
42
43  Read a set of contiguous external device registers.
44
45Arguments:
46
47  This        - pointer to protocol
48  Offset      - starting register number
49  Length      - number of bytes to read
50  Buffer      - destination buffer
51
52Returns:
53
54  EFI_SUCCESS - registers read successfully
55
56--*/
57;
58
59typedef
60EFI_STATUS
61(EFIAPI *EMBEDDED_EXTERNAL_DEVICE_WRITE) (
62    IN EMBEDDED_EXTERNAL_DEVICE *This,
63    IN UINTN                      Register,
64    IN UINTN                      Length,
65    IN VOID                       *Buffer
66    )
67/*++
68
69Routine Description:
70
71  Write to a set of contiguous external device registers.
72
73Arguments:
74
75  This        - pointer to protocol
76  Offset      - starting register number
77  Length      - number of bytes to write
78  Buffer      - source buffer
79
80Returns:
81
82  EFI_SUCCESS - registers written successfully
83
84--*/
85;
86
87struct _EMBEDDED_EXTERNAL_DEVICE {
88  EMBEDDED_EXTERNAL_DEVICE_READ      Read;
89  EMBEDDED_EXTERNAL_DEVICE_WRITE     Write;
90};
91
92extern EFI_GUID gEmbeddedExternalDeviceProtocolGuid;
93
94#endif  // __EMBEDDED_EXTERNAL_DEVICE_H__
95