mirror of https://github.com/acidanthera/audk.git
MdePkg/BaseIoLibIntrinsic: Remove IoLibIcc.c
As ICC tool chain will be removed, IoLibIcc.c should also be removed. https://bugzilla.tianocore.org/show_bug.cgi?id=1666 Cc: Michael D Kinney <michael.d.kinney@intel.com> Cc: Liming Gao <liming.gao@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Shenglei Zhang <shenglei.zhang@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com> (cherry picked from commit 9b5be294b93f7ff7fe1bcafdc3c57016f58ee4e8)
This commit is contained in:
parent
81a8a52a6b
commit
e7ee4e0da1
|
@ -36,14 +36,12 @@
|
|||
[Sources.IA32]
|
||||
IoLibGcc.c | GCC
|
||||
IoLibMsc.c | MSFT
|
||||
IoLibIcc.c | INTEL
|
||||
IoLib.c
|
||||
Ia32/IoFifo.nasm
|
||||
|
||||
[Sources.X64]
|
||||
IoLibGcc.c | GCC
|
||||
IoLibMsc.c | MSFT
|
||||
IoLibIcc.c | INTEL
|
||||
IoLib.c
|
||||
X64/IoFifo.nasm
|
||||
|
||||
|
|
|
@ -34,14 +34,12 @@
|
|||
[Sources.IA32]
|
||||
IoLibGcc.c | GCC
|
||||
IoLibMsc.c | MSFT
|
||||
IoLibIcc.c | INTEL
|
||||
IoLib.c
|
||||
Ia32/IoFifoSev.nasm
|
||||
|
||||
[Sources.X64]
|
||||
IoLibGcc.c | GCC
|
||||
IoLibMsc.c | MSFT
|
||||
IoLibIcc.c | INTEL
|
||||
IoLib.c
|
||||
X64/IoFifoSev.nasm
|
||||
|
||||
|
|
|
@ -1,208 +0,0 @@
|
|||
/** @file
|
||||
I/O Library. This file has compiler specifics for ICC as there
|
||||
is no ANSI C standard for doing IO.
|
||||
|
||||
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
||||
**/
|
||||
|
||||
#include "BaseIoLibIntrinsicInternal.h"
|
||||
|
||||
/**
|
||||
Reads an 8-bit I/O port.
|
||||
|
||||
Reads the 8-bit I/O port specified by Port. The 8-bit read value is returned.
|
||||
This function must guarantee that all I/O read and write operations are
|
||||
serialized.
|
||||
|
||||
If 8-bit I/O port operations are not supported, then ASSERT().
|
||||
|
||||
@param Port The I/O port to read.
|
||||
|
||||
@return The value read.
|
||||
|
||||
**/
|
||||
UINT8
|
||||
EFIAPI
|
||||
IoRead8 (
|
||||
IN UINTN Port
|
||||
)
|
||||
{
|
||||
UINT8 Data;
|
||||
|
||||
__asm {
|
||||
mov dx, word ptr [Port]
|
||||
in al, dx
|
||||
|
||||
mov Data, al
|
||||
}
|
||||
return Data;
|
||||
}
|
||||
|
||||
/**
|
||||
Writes an 8-bit I/O port.
|
||||
|
||||
Writes the 8-bit I/O port specified by Port with the value specified by Value
|
||||
and returns Value. This function must guarantee that all I/O read and write
|
||||
operations are serialized.
|
||||
|
||||
If 8-bit I/O port operations are not supported, then ASSERT().
|
||||
|
||||
@param Port The I/O port to write.
|
||||
@param Value The value to write to the I/O port.
|
||||
|
||||
@return The value written the I/O port.
|
||||
|
||||
**/
|
||||
UINT8
|
||||
EFIAPI
|
||||
IoWrite8 (
|
||||
IN UINTN Port,
|
||||
IN UINT8 Value
|
||||
)
|
||||
{
|
||||
__asm {
|
||||
mov al, byte ptr [Value]
|
||||
mov dx, word ptr [Port]
|
||||
out dx, al
|
||||
}
|
||||
return Value;
|
||||
}
|
||||
|
||||
/**
|
||||
Reads a 16-bit I/O port.
|
||||
|
||||
Reads the 16-bit I/O port specified by Port. The 16-bit read value is returned.
|
||||
This function must guarantee that all I/O read and write operations are
|
||||
serialized.
|
||||
|
||||
If 16-bit I/O port operations are not supported, then ASSERT().
|
||||
If Port is not aligned on a 16-bit boundary, then ASSERT().
|
||||
|
||||
@param Port The I/O port to read.
|
||||
|
||||
@return The value read.
|
||||
|
||||
**/
|
||||
UINT16
|
||||
EFIAPI
|
||||
IoRead16 (
|
||||
IN UINTN Port
|
||||
)
|
||||
{
|
||||
UINT16 Data;
|
||||
|
||||
ASSERT ((Port & 1) == 0);
|
||||
|
||||
__asm {
|
||||
mov dx, word ptr [Port]
|
||||
in ax, dx
|
||||
mov word ptr [Data], ax
|
||||
}
|
||||
|
||||
return Data;
|
||||
}
|
||||
|
||||
/**
|
||||
Writes a 16-bit I/O port.
|
||||
|
||||
Writes the 16-bit I/O port specified by Port with the value specified by Value
|
||||
and returns Value. This function must guarantee that all I/O read and write
|
||||
operations are serialized.
|
||||
|
||||
If 16-bit I/O port operations are not supported, then ASSERT().
|
||||
If Port is not aligned on a 16-bit boundary, then ASSERT().
|
||||
|
||||
@param Port The I/O port to write.
|
||||
@param Value The value to write to the I/O port.
|
||||
|
||||
@return The value written the I/O port.
|
||||
|
||||
**/
|
||||
UINT16
|
||||
EFIAPI
|
||||
IoWrite16 (
|
||||
IN UINTN Port,
|
||||
IN UINT16 Value
|
||||
)
|
||||
{
|
||||
ASSERT ((Port & 1) == 0);
|
||||
|
||||
__asm {
|
||||
mov ax, word ptr [Value]
|
||||
mov dx, word ptr [Port]
|
||||
out dx, ax
|
||||
}
|
||||
|
||||
return Value;
|
||||
}
|
||||
|
||||
/**
|
||||
Reads a 32-bit I/O port.
|
||||
|
||||
Reads the 32-bit I/O port specified by Port. The 32-bit read value is returned.
|
||||
This function must guarantee that all I/O read and write operations are
|
||||
serialized.
|
||||
|
||||
If 32-bit I/O port operations are not supported, then ASSERT().
|
||||
If Port is not aligned on a 32-bit boundary, then ASSERT().
|
||||
|
||||
@param Port The I/O port to read.
|
||||
|
||||
@return The value read.
|
||||
|
||||
**/
|
||||
UINT32
|
||||
EFIAPI
|
||||
IoRead32 (
|
||||
IN UINTN Port
|
||||
)
|
||||
{
|
||||
UINT32 Data;
|
||||
|
||||
ASSERT ((Port & 3) == 0);
|
||||
|
||||
__asm {
|
||||
mov dx, word ptr [Port]
|
||||
in eax, dx
|
||||
mov dword ptr [Data], eax
|
||||
}
|
||||
|
||||
return Data;
|
||||
}
|
||||
|
||||
/**
|
||||
Writes a 32-bit I/O port.
|
||||
|
||||
Writes the 32-bit I/O port specified by Port with the value specified by Value
|
||||
and returns Value. This function must guarantee that all I/O read and write
|
||||
operations are serialized.
|
||||
|
||||
If 32-bit I/O port operations are not supported, then ASSERT().
|
||||
If Port is not aligned on a 32-bit boundary, then ASSERT().
|
||||
|
||||
@param Port The I/O port to write.
|
||||
@param Value The value to write to the I/O port.
|
||||
|
||||
@return The value written the I/O port.
|
||||
|
||||
**/
|
||||
UINT32
|
||||
EFIAPI
|
||||
IoWrite32 (
|
||||
IN UINTN Port,
|
||||
IN UINT32 Value
|
||||
)
|
||||
{
|
||||
ASSERT ((Port & 3) == 0);
|
||||
|
||||
__asm {
|
||||
mov eax, dword ptr [Value]
|
||||
mov dx, word ptr [Port]
|
||||
out dx, eax
|
||||
}
|
||||
|
||||
return Value;
|
||||
}
|
||||
|
Loading…
Reference in New Issue