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