]> git.proxmox.com Git - mirror_edk2.git/blame - PcAtChipsetPkg/PciHostBridgeDxe/X64/IoFifo.S
PcAtChipsetPkg: PciHostBridgeDxe: rewrap IoFifo source files to 79 columns
[mirror_edk2.git] / PcAtChipsetPkg / PciHostBridgeDxe / X64 / IoFifo.S
CommitLineData
1fd376d9 1#------------------------------------------------------------------------------\r
2#\r
3# Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>\r
078153d6
LE
4#\r
5# This program and the accompanying materials are licensed and made available\r
6# under the terms and conditions of the BSD License which accompanies this\r
7# distribution. The full text of the license may be found at\r
1fd376d9 8# http://opensource.org/licenses/bsd-license.php.\r
9#\r
10# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
12#\r
13#------------------------------------------------------------------------------\r
14\r
15#------------------------------------------------------------------------------\r
16# VOID\r
17# EFIAPI\r
18# IoReadFifo8 (\r
19# IN UINTN Port, // rcx\r
20# IN UINTN Count, // rdx\r
21# IN VOID *Buffer // r8\r
22# );\r
23#------------------------------------------------------------------------------\r
24ASM_GLOBAL ASM_PFX(IoReadFifo8)\r
25ASM_PFX(IoReadFifo8):\r
26 cld\r
27 xchg %rcx, %rdx\r
28 xchg %r8, %rdi # rdi: buffer address; r8: save register\r
29rep insb\r
30 mov %r8, %rdi # restore rdi\r
31 ret\r
32\r
33#------------------------------------------------------------------------------\r
34# VOID\r
35# EFIAPI\r
36# IoReadFifo16 (\r
37# IN UINTN Port, // rcx\r
38# IN UINTN Count, // rdx\r
39# IN VOID *Buffer // r8\r
40# );\r
41#------------------------------------------------------------------------------\r
42ASM_GLOBAL ASM_PFX(IoReadFifo16)\r
43ASM_PFX(IoReadFifo16):\r
44 cld\r
45 xchg %rcx, %rdx\r
46 xchg %r8, %rdi # rdi: buffer address; r8: save register\r
47rep insw\r
48 mov %r8, %rdi # restore rdi\r
49 ret\r
50\r
51#------------------------------------------------------------------------------\r
52# VOID\r
53# EFIAPI\r
54# IoReadFifo32 (\r
55# IN UINTN Port, // rcx\r
56# IN UINTN Count, // rdx\r
57# IN VOID *Buffer // r8\r
58# );\r
59#------------------------------------------------------------------------------\r
60ASM_GLOBAL ASM_PFX(IoReadFifo32)\r
61ASM_PFX(IoReadFifo32):\r
62 cld\r
63 xchg %rcx, %rdx\r
64 xchg %r8, %rdi # rdi: buffer address; r8: save register\r
65rep insl\r
66 mov %r8, %rdi # restore rdi\r
67 ret\r
68\r
69#------------------------------------------------------------------------------\r
70# VOID\r
71# EFIAPI\r
72# IoWriteFifo8 (\r
73# IN UINTN Port, // rcx\r
74# IN UINTN Count, // rdx\r
75# IN VOID *Buffer // r8\r
76# );\r
77#------------------------------------------------------------------------------\r
78ASM_GLOBAL ASM_PFX(IoWriteFifo8)\r
79ASM_PFX(IoWriteFifo8):\r
80 cld\r
81 xchg %rcx, %rdx\r
82 xchg %r8, %rsi # rsi: buffer address; r8: save register\r
83rep outsb\r
84 mov %r8, %rsi # restore rsi\r
85 ret\r
86\r
87#------------------------------------------------------------------------------\r
88# VOID\r
89# EFIAPI\r
90# IoWriteFifo16 (\r
91# IN UINTN Port, // rcx\r
92# IN UINTN Count, // rdx\r
93# IN VOID *Buffer // r8\r
94# );\r
95#------------------------------------------------------------------------------\r
96ASM_GLOBAL ASM_PFX(IoWriteFifo16)\r
97ASM_PFX(IoWriteFifo16):\r
98 cld\r
99 xchg %rcx, %rdx\r
100 xchg %r8, %rsi # rsi: buffer address; r8: save register\r
101rep outsw\r
102 mov %r8, %rsi # restore rsi\r
103 ret\r
104\r
105#------------------------------------------------------------------------------\r
106# VOID\r
107# EFIAPI\r
108# IoWriteFifo32 (\r
109# IN UINTN Port, // rcx\r
110# IN UINTN Count, // rdx\r
111# IN VOID *Buffer // r8\r
112# );\r
113#------------------------------------------------------------------------------\r
114ASM_GLOBAL ASM_PFX(IoWriteFifo32)\r
115ASM_PFX(IoWriteFifo32):\r
116 cld\r
117 xchg %rcx, %rdx\r
118 xchg %r8, %rsi # rsi: buffer address; r8: save register\r
119rep outsl\r
120 mov %r8, %rsi # restore rsi\r
121 ret\r
122\r