1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
/*++
Copyright (c) 2004, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Module Name:
IoLib.c
Abstract:
Light weight lib to support Tiano drivers.
--*/
#include "Tiano.h"
#include "EfiRuntimeLib.h"
#include EFI_PROTOCOL_DEFINITION (CpuIo)
extern EFI_CPU_IO_PROTOCOL *gCpuIo;
EFI_STATUS
EfiIoRead (
IN EFI_CPU_IO_PROTOCOL_WIDTH Width,
IN UINT64 Address,
IN UINTN Count,
IN OUT VOID *Buffer
)
/*++
Routine Description:
Perform an IO read into Buffer.
Arguments:
Width - Width of read transaction, and repeat operation to use
Address - IO address to read
Count - Number of times to read the IO address.
Buffer - Buffer to read data into. size is Width * Count
Returns:
BugBug: Check with Mike to see if I can find this #define some ware else
--*/
{
return gCpuIo->Io.Read (gCpuIo, Width, Address, Count, Buffer);
}
EFI_STATUS
EfiIoWrite (
IN EFI_CPU_IO_PROTOCOL_WIDTH Width,
IN UINT64 Address,
IN UINTN Count,
IN OUT VOID *Buffer
)
/*++
Routine Description:
Perform an IO write into Buffer.
Arguments:
Width - Width of write transaction, and repeat operation to use
Address - IO address to write
Count - Number of times to write the IO address.
Buffer - Buffer to write data from. size is Width * Count
Returns:
BugBug: Check with Mike to see if I can find this #define some ware else
--*/
{
return gCpuIo->Io.Write (gCpuIo, Width, Address, Count, Buffer);
}
EFI_STATUS
EfiMemRead (
IN EFI_CPU_IO_PROTOCOL_WIDTH Width,
IN UINT64 Address,
IN UINTN Count,
IN OUT VOID *Buffer
)
/*++
Routine Description:
Perform a Memory mapped IO read into Buffer.
Arguments:
Width - Width of each read transaction.
Address - Memory mapped IO address to read
Count - Number of Width quanta to read
Buffer - Buffer to read data into. size is Width * Count
Returns:
BugBug: Check with Mike to see if I can find this #define some ware else
--*/
{
return gCpuIo->Mem.Read (gCpuIo, Width, Address, Count, Buffer);
}
EFI_STATUS
EfiMemWrite (
IN EFI_CPU_IO_PROTOCOL_WIDTH Width,
IN UINT64 Address,
IN UINTN Count,
IN OUT VOID *Buffer
)
/*++
Routine Description:
Perform a memory mapped IO write into Buffer.
Arguments:
Width - Width of write transaction, and repeat operation to use
Address - IO address to write
Count - Number of times to write the IO address.
Buffer - Buffer to write data from. size is Width * Count
Returns:
BugBug: Check with Mike to see if I can find this #define some ware else
--*/
{
return gCpuIo->Mem.Write (gCpuIo, Width, Address, Count, Buffer);
}
|