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#------------------------------------------------------------------------------ 24ASM_GLOBAL ASM_PFX(IoReadFifo8) 25ASM_PFX(IoReadFifo8): 26 push %edi 27 cld 28 movw 8(%esp), %dx 29 mov 12(%esp), %ecx 30 mov 16(%esp), %edi 31rep 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#------------------------------------------------------------------------------ 44ASM_GLOBAL ASM_PFX(IoReadFifo16) 45ASM_PFX(IoReadFifo16): 46 push %edi 47 cld 48 movw 8(%esp), %dx 49 mov 12(%esp), %ecx 50 mov 16(%esp), %edi 51rep 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#------------------------------------------------------------------------------ 64ASM_GLOBAL ASM_PFX(IoReadFifo32) 65ASM_PFX(IoReadFifo32): 66 push %edi 67 cld 68 movw 8(%esp), %dx 69 mov 12(%esp), %ecx 70 mov 16(%esp), %edi 71rep 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#------------------------------------------------------------------------------ 84ASM_GLOBAL ASM_PFX(IoWriteFifo8) 85ASM_PFX(IoWriteFifo8): 86 push %esi 87 cld 88 movw 8(%esp), %dx 89 mov 12(%esp), %ecx 90 mov 16(%esp), %esi 91rep 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#------------------------------------------------------------------------------ 104ASM_GLOBAL ASM_PFX(IoWriteFifo16) 105ASM_PFX(IoWriteFifo16): 106 push %esi 107 cld 108 movw 8(%esp), %dx 109 mov 12(%esp), %ecx 110 mov 16(%esp), %esi 111rep 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#------------------------------------------------------------------------------ 124ASM_GLOBAL ASM_PFX(IoWriteFifo32) 125ASM_PFX(IoWriteFifo32): 126 push %esi 127 cld 128 movw 8(%esp), %dx 129 mov 12(%esp), %ecx 130 mov 16(%esp), %esi 131rep outsl 132 pop %esi 133 ret 134 135