]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Library/BaseIoLibIntrinsic/Ia32/IoFifo.nasm
MdePkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / MdePkg / Library / BaseIoLibIntrinsic / Ia32 / IoFifo.nasm
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
9344f092 6; SPDX-License-Identifier: BSD-2-Clause-Patent\r
19c6d9fe
LD
7;\r
8;------------------------------------------------------------------------------\r
9\r
10 SECTION .text\r
11\r
12;------------------------------------------------------------------------------\r
13; VOID\r
14; EFIAPI\r
15; IoReadFifo8 (\r
16; IN UINTN Port,\r
17; IN UINTN Size,\r
18; OUT VOID *Buffer\r
19; );\r
20;------------------------------------------------------------------------------\r
21global ASM_PFX(IoReadFifo8)\r
22ASM_PFX(IoReadFifo8):\r
23 push edi\r
24 cld\r
25 mov dx, [esp + 8]\r
26 mov ecx, [esp + 12]\r
27 mov edi, [esp + 16]\r
28rep insb\r
29 pop edi\r
30 ret\r
31\r
32;------------------------------------------------------------------------------\r
33; VOID\r
34; EFIAPI\r
35; IoReadFifo16 (\r
36; IN UINTN Port,\r
37; IN UINTN Size,\r
38; OUT VOID *Buffer\r
39; );\r
40;------------------------------------------------------------------------------\r
41global ASM_PFX(IoReadFifo16)\r
42ASM_PFX(IoReadFifo16):\r
43 push edi\r
44 cld\r
45 mov dx, [esp + 8]\r
46 mov ecx, [esp + 12]\r
47 mov edi, [esp + 16]\r
48rep insw\r
49 pop edi\r
50 ret\r
51\r
52;------------------------------------------------------------------------------\r
53; VOID\r
54; EFIAPI\r
55; IoReadFifo32 (\r
56; IN UINTN Port,\r
57; IN UINTN Size,\r
58; OUT VOID *Buffer\r
59; );\r
60;------------------------------------------------------------------------------\r
61global ASM_PFX(IoReadFifo32)\r
62ASM_PFX(IoReadFifo32):\r
63 push edi\r
64 cld\r
65 mov dx, [esp + 8]\r
66 mov ecx, [esp + 12]\r
67 mov edi, [esp + 16]\r
68rep insd\r
69 pop edi\r
70 ret\r
71\r
72;------------------------------------------------------------------------------\r
73; VOID\r
74; EFIAPI\r
75; IoWriteFifo8 (\r
76; IN UINTN Port,\r
77; IN UINTN Size,\r
78; IN VOID *Buffer\r
79; );\r
80;------------------------------------------------------------------------------\r
81global ASM_PFX(IoWriteFifo8)\r
82ASM_PFX(IoWriteFifo8):\r
83 push esi\r
84 cld\r
85 mov dx, [esp + 8]\r
86 mov ecx, [esp + 12]\r
87 mov esi, [esp + 16]\r
88rep outsb\r
89 pop esi\r
90 ret\r
91\r
92;------------------------------------------------------------------------------\r
93; VOID\r
94; EFIAPI\r
95; IoWriteFifo16 (\r
96; IN UINTN Port,\r
97; IN UINTN Size,\r
98; IN VOID *Buffer\r
99; );\r
100;------------------------------------------------------------------------------\r
101global ASM_PFX(IoWriteFifo16)\r
102ASM_PFX(IoWriteFifo16):\r
103 push esi\r
104 cld\r
105 mov dx, [esp + 8]\r
106 mov ecx, [esp + 12]\r
107 mov esi, [esp + 16]\r
108rep outsw\r
109 pop esi\r
110 ret\r
111\r
112;------------------------------------------------------------------------------\r
113; VOID\r
114; EFIAPI\r
115; IoWriteFifo32 (\r
116; IN UINTN Port,\r
117; IN UINTN Size,\r
118; IN VOID *Buffer\r
119; );\r
120;------------------------------------------------------------------------------\r
121global ASM_PFX(IoWriteFifo32)\r
122ASM_PFX(IoWriteFifo32):\r
123 push esi\r
124 cld\r
125 mov dx, [esp + 8]\r
126 mov ecx, [esp + 12]\r
127 mov esi, [esp + 16]\r
128rep outsd\r
129 pop esi\r
130 ret\r
131\r