Home | History | Annotate | Download | only in Ia32
      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 #------------------------------------------------------------------------------
     16 #  VOID
     17 #  EFIAPI
     18 #  IoReadFifo8 (
     19 #    IN UINTN                  Port,
     20 #    IN UINTN                  Count,
     21 #    IN VOID                   *Buffer
     22 #    );
     23 #------------------------------------------------------------------------------
     24 ASM_GLOBAL ASM_PFX(IoReadFifo8)
     25 ASM_PFX(IoReadFifo8):
     26     push    %edi
     27     cld
     28     movw    8(%esp), %dx
     29     mov     12(%esp), %ecx
     30     mov     16(%esp), %edi
     31 rep insb
     32     pop     %edi
     33     ret
     34 
     35 #------------------------------------------------------------------------------
     36 #  VOID
     37 #  EFIAPI
     38 #  IoReadFifo16 (
     39 #    IN UINTN                  Port,
     40 #    IN UINTN                  Count,
     41 #    IN VOID                   *Buffer
     42 #    );
     43 #------------------------------------------------------------------------------
     44 ASM_GLOBAL ASM_PFX(IoReadFifo16)
     45 ASM_PFX(IoReadFifo16):
     46     push    %edi
     47     cld
     48     movw    8(%esp), %dx
     49     mov     12(%esp), %ecx
     50     mov     16(%esp), %edi
     51 rep insw
     52     pop     %edi
     53     ret
     54 
     55 #------------------------------------------------------------------------------
     56 #  VOID
     57 #  EFIAPI
     58 #  IoReadFifo32 (
     59 #    IN UINTN                  Port,
     60 #    IN UINTN                  Count,
     61 #    IN VOID                   *Buffer
     62 #    );
     63 #------------------------------------------------------------------------------
     64 ASM_GLOBAL ASM_PFX(IoReadFifo32)
     65 ASM_PFX(IoReadFifo32):
     66     push    %edi
     67     cld
     68     movw    8(%esp), %dx
     69     mov     12(%esp), %ecx
     70     mov     16(%esp), %edi
     71 rep insl
     72     pop     %edi
     73     ret
     74 
     75 #------------------------------------------------------------------------------
     76 #  VOID
     77 #  EFIAPI
     78 #  IoWriteFifo8 (
     79 #    IN UINTN                  Port,
     80 #    IN UINTN                  Count,
     81 #    IN VOID                   *Buffer
     82 #    );
     83 #------------------------------------------------------------------------------
     84 ASM_GLOBAL ASM_PFX(IoWriteFifo8)
     85 ASM_PFX(IoWriteFifo8):
     86     push    %esi
     87     cld
     88     movw    8(%esp), %dx
     89     mov     12(%esp), %ecx
     90     mov     16(%esp), %esi
     91 rep outsb
     92     pop     %esi
     93     ret
     94 
     95 #------------------------------------------------------------------------------
     96 #  VOID
     97 #  EFIAPI
     98 #  IoWriteFifo16 (
     99 #    IN UINTN                  Port,
    100 #    IN UINTN                  Count,
    101 #    IN VOID                   *Buffer
    102 #    );
    103 #------------------------------------------------------------------------------
    104 ASM_GLOBAL ASM_PFX(IoWriteFifo16)
    105 ASM_PFX(IoWriteFifo16):
    106     push    %esi
    107     cld
    108     movw    8(%esp), %dx
    109     mov     12(%esp), %ecx
    110     mov     16(%esp), %esi
    111 rep outsw
    112     pop     %esi
    113     ret
    114 
    115 #------------------------------------------------------------------------------
    116 #  VOID
    117 #  EFIAPI
    118 #  IoWriteFifo32 (
    119 #    IN UINTN                  Port,
    120 #    IN UINTN                  Count,
    121 #    IN VOID                   *Buffer
    122 #    );
    123 #------------------------------------------------------------------------------
    124 ASM_GLOBAL ASM_PFX(IoWriteFifo32)
    125 ASM_PFX(IoWriteFifo32):
    126     push    %esi
    127     cld
    128     movw    8(%esp), %dx
    129     mov     12(%esp), %ecx
    130     mov     16(%esp), %esi
    131 rep outsl
    132     pop     %esi
    133     ret
    134 
    135