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 //
26 typedef struct _EMBEDDED_EXTERNAL_DEVICE EMBEDDED_EXTERNAL_DEVICE;
27 
28 //
29 // Function Prototypes
30 //
31 typedef
32 EFI_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 
41 Routine Description:
42 
43   Read a set of contiguous external device registers.
44 
45 Arguments:
46 
47   This        - pointer to protocol
48   Offset      - starting register number
49   Length      - number of bytes to read
50   Buffer      - destination buffer
51 
52 Returns:
53 
54   EFI_SUCCESS - registers read successfully
55 
56 --*/
57 ;
58 
59 typedef
60 EFI_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 
69 Routine Description:
70 
71   Write to a set of contiguous external device registers.
72 
73 Arguments:
74 
75   This        - pointer to protocol
76   Offset      - starting register number
77   Length      - number of bytes to write
78   Buffer      - source buffer
79 
80 Returns:
81 
82   EFI_SUCCESS - registers written successfully
83 
84 --*/
85 ;
86 
87 struct _EMBEDDED_EXTERNAL_DEVICE {
88   EMBEDDED_EXTERNAL_DEVICE_READ      Read;
89   EMBEDDED_EXTERNAL_DEVICE_WRITE     Write;
90 };
91 
92 extern EFI_GUID gEmbeddedExternalDeviceProtocolGuid;
93 
94 #endif  // __EMBEDDED_EXTERNAL_DEVICE_H__
95