+++ /dev/null
- title CpuIoAccess.asm\r
-\r
-;------------------------------------------------------------------------------\r
-;*\r
-;* Copyright (c) 2005 - 2007, Intel Corporation \r
-;* All rights reserved. This program and the accompanying materials \r
-;* are licensed and made available under the terms and conditions of the BSD License \r
-;* which accompanies this distribution. The full text of the license may be found at \r
-;* http://opensource.org/licenses/bsd-license.php \r
-;* \r
-;* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
-;* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
-;* \r
-;* Module Name:\r
-;* CpuIoAccess.asm\r
-;* \r
-;* Abstract:\r
-;* Supports x64 CPU IO operation\r
-;*\r
-;------------------------------------------------------------------------------\r
-;\r
-; \r
-; \r
-; Abstract:\r
-; \r
-; \r
-;------------------------------------------------------------------------------\r
-\r
-.CODE\r
-\r
-;------------------------------------------------------------------------------\r
-; UINT8\r
-; CpuIoRead8 (\r
-; UINT16 Port // rcx\r
-; )\r
-;------------------------------------------------------------------------------\r
-CpuIoRead8 PROC PUBLIC\r
- xor eax, eax\r
- mov dx, cx\r
- in al, dx\r
- ret\r
-CpuIoRead8 ENDP\r
-\r
-;------------------------------------------------------------------------------\r
-; VOID\r
-; CpuIoWrite8 (\r
-; UINT16 Port, // rcx\r
-; UINT32 Data // rdx\r
-; )\r
-;------------------------------------------------------------------------------\r
-CpuIoWrite8 PROC PUBLIC\r
- mov eax, edx\r
- mov dx, cx\r
- out dx, al\r
- ret\r
-CpuIoWrite8 ENDP\r
-\r
-;------------------------------------------------------------------------------\r
-; UINT16\r
-; CpuIoRead16 (\r
-; UINT16 Port // rcx\r
-; )\r
-;------------------------------------------------------------------------------\r
-CpuIoRead16 PROC PUBLIC\r
- xor eax, eax\r
- mov dx, cx\r
- in ax, dx\r
- ret\r
-CpuIoRead16 ENDP\r
-\r
-;------------------------------------------------------------------------------\r
-; VOID\r
-; CpuIoWrite16 (\r
-; UINT16 Port, // rcx\r
-; UINT32 Data // rdx\r
-; )\r
-;------------------------------------------------------------------------------\r
-CpuIoWrite16 PROC PUBLIC\r
- mov eax, edx\r
- mov dx, cx\r
- out dx, ax\r
- ret\r
-CpuIoWrite16 ENDP\r
-\r
-;------------------------------------------------------------------------------\r
-; UINT32\r
-; CpuIoRead32 (\r
-; UINT16 Port // rcx\r
-; )\r
-;------------------------------------------------------------------------------\r
-CpuIoRead32 PROC PUBLIC\r
- mov dx, cx\r
- in eax, dx\r
- ret\r
-CpuIoRead32 ENDP\r
-\r
-;------------------------------------------------------------------------------\r
-; VOID\r
-; CpuIoWrite32 (\r
-; UINT16 Port, // rcx\r
-; UINT32 Data // rdx\r
-; )\r
-;------------------------------------------------------------------------------\r
-CpuIoWrite32 PROC PUBLIC\r
- mov eax, edx\r
- mov dx, cx\r
- out dx, eax\r
- ret\r
-CpuIoWrite32 ENDP\r
-\r
-END\r