1;------------------------------------------------------------------------------ 2; 3; Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR> 4; This program and the accompanying materials 5; are licensed and made available under the terms and conditions of the BSD License 6; which accompanies this distribution. The full text of the license may be found at 7; http://opensource.org/licenses/bsd-license.php. 8; 9; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 10; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 11; 12;------------------------------------------------------------------------------ 13 14 DEFAULT REL 15 SECTION .text 16 17;------------------------------------------------------------------------------ 18; VOID 19; EFIAPI 20; IoReadFifo8 ( 21; IN UINTN Port, // rcx 22; IN UINTN Size, // rdx 23; IN VOID *Buffer // r8 24; ); 25;------------------------------------------------------------------------------ 26global ASM_PFX(IoReadFifo8) 27ASM_PFX(IoReadFifo8): 28 29 xchg rcx, rdx 30 xchg rdi, r8 ; rdi: buffer address; r8: save rdi 31rep insb 32 mov rdi, r8 ; restore rdi 33 ret 34 35;------------------------------------------------------------------------------ 36; VOID 37; EFIAPI 38; IoWriteFifo8 ( 39; IN UINTN Port, // rcx 40; IN UINTN Size, // rdx 41; IN VOID *Buffer // r8 42; ); 43;------------------------------------------------------------------------------ 44global ASM_PFX(IoWriteFifo8) 45ASM_PFX(IoWriteFifo8): 46 47 xchg rcx, rdx 48 xchg rsi, r8 ; rdi: buffer address; r8: save rdi 49rep outsb 50 mov rsi, r8 ; restore rdi 51 ret 52 53