]> git.proxmox.com Git - mirror_edk2.git/blob - MdePkg/Library/BaseIoLibIntrinsic/Ia32/IoFifo.asm
da767d10bb4e29fd9b0a3f8b7b99f266dc080919
[mirror_edk2.git] / MdePkg / Library / BaseIoLibIntrinsic / Ia32 / IoFifo.asm
1 ;------------------------------------------------------------------------------
2 ;
3 ; Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
4 ; Copyright (c) 2017, AMD Incorporated. All rights reserved.<BR>
5 ;
6 ; This program and the accompanying materials are licensed and made available
7 ; under the terms and conditions of the BSD License which accompanies this
8 ; distribution. The full text of the license may be found at
9 ; http://opensource.org/licenses/bsd-license.php.
10 ;
11 ; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 ; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13 ;
14 ;------------------------------------------------------------------------------
15
16 .586P
17 .model flat,C
18 .code
19
20 ;------------------------------------------------------------------------------
21 ; VOID
22 ; EFIAPI
23 ; IoReadFifo8 (
24 ; IN UINTN Port,
25 ; IN UINTN Size,
26 ; OUT VOID *Buffer
27 ; );
28 ;------------------------------------------------------------------------------
29 IoReadFifo8 PROC
30 push edi
31 cld
32 mov dx, [esp + 8]
33 mov ecx, [esp + 12]
34 mov edi, [esp + 16]
35 rep insb
36 pop edi
37 ret
38 IoReadFifo8 ENDP
39
40 ;------------------------------------------------------------------------------
41 ; VOID
42 ; EFIAPI
43 ; IoReadFifo16 (
44 ; IN UINTN Port,
45 ; IN UINTN Size,
46 ; OUT VOID *Buffer
47 ; );
48 ;------------------------------------------------------------------------------
49 IoReadFifo16 PROC
50 push edi
51 cld
52 mov dx, [esp + 8]
53 mov ecx, [esp + 12]
54 mov edi, [esp + 16]
55 rep insw
56 pop edi
57 ret
58 IoReadFifo16 ENDP
59
60 ;------------------------------------------------------------------------------
61 ; VOID
62 ; EFIAPI
63 ; IoReadFifo32 (
64 ; IN UINTN Port,
65 ; IN UINTN Size,
66 ; OUT VOID *Buffer
67 ; );
68 ;------------------------------------------------------------------------------
69 IoReadFifo32 PROC
70 push edi
71 cld
72 mov dx, [esp + 8]
73 mov ecx, [esp + 12]
74 mov edi, [esp + 16]
75 rep insd
76 pop edi
77 ret
78 IoReadFifo32 ENDP
79
80 ;------------------------------------------------------------------------------
81 ; VOID
82 ; EFIAPI
83 ; IoWriteFifo8 (
84 ; IN UINTN Port,
85 ; IN UINTN Size,
86 ; IN VOID *Buffer
87 ; );
88 ;------------------------------------------------------------------------------
89 IoWriteFifo8 PROC
90 push esi
91 cld
92 mov dx, [esp + 8]
93 mov ecx, [esp + 12]
94 mov esi, [esp + 16]
95 rep outsb
96 pop esi
97 ret
98 IoWriteFifo8 ENDP
99
100 ;------------------------------------------------------------------------------
101 ; VOID
102 ; EFIAPI
103 ; IoWriteFifo16 (
104 ; IN UINTN Port,
105 ; IN UINTN Size,
106 ; IN VOID *Buffer
107 ; );
108 ;------------------------------------------------------------------------------
109 IoWriteFifo16 PROC
110 push esi
111 cld
112 mov dx, [esp + 8]
113 mov ecx, [esp + 12]
114 mov esi, [esp + 16]
115 rep outsw
116 pop esi
117 ret
118 IoWriteFifo16 ENDP
119
120 ;------------------------------------------------------------------------------
121 ; VOID
122 ; EFIAPI
123 ; IoWriteFifo32 (
124 ; IN UINTN Port,
125 ; IN UINTN Size,
126 ; IN VOID *Buffer
127 ; );
128 ;------------------------------------------------------------------------------
129 IoWriteFifo32 PROC
130 push esi
131 cld
132 mov dx, [esp + 8]
133 mov ecx, [esp + 12]
134 mov esi, [esp + 16]
135 rep outsd
136 pop esi
137 ret
138 IoWriteFifo32 ENDP
139
140 END
141