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