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