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