mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-29 16:44:10 +02:00
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]
|
[Sources.IA32]
|
||||||
IoLibGcc.c | GCC
|
IoLibGcc.c | GCC
|
||||||
IoLibMsc.c | MSFT
|
IoLibMsc.c | MSFT
|
||||||
IoLibIcc.c | INTEL
|
|
||||||
IoLib.c
|
IoLib.c
|
||||||
Ia32/IoFifo.nasm
|
Ia32/IoFifo.nasm
|
||||||
|
|
||||||
[Sources.X64]
|
[Sources.X64]
|
||||||
IoLibGcc.c | GCC
|
IoLibGcc.c | GCC
|
||||||
IoLibMsc.c | MSFT
|
IoLibMsc.c | MSFT
|
||||||
IoLibIcc.c | INTEL
|
|
||||||
IoLib.c
|
IoLib.c
|
||||||
X64/IoFifo.nasm
|
X64/IoFifo.nasm
|
||||||
|
|
||||||
|
@ -34,14 +34,12 @@
|
|||||||
[Sources.IA32]
|
[Sources.IA32]
|
||||||
IoLibGcc.c | GCC
|
IoLibGcc.c | GCC
|
||||||
IoLibMsc.c | MSFT
|
IoLibMsc.c | MSFT
|
||||||
IoLibIcc.c | INTEL
|
|
||||||
IoLib.c
|
IoLib.c
|
||||||
Ia32/IoFifoSev.nasm
|
Ia32/IoFifoSev.nasm
|
||||||
|
|
||||||
[Sources.X64]
|
[Sources.X64]
|
||||||
IoLibGcc.c | GCC
|
IoLibGcc.c | GCC
|
||||||
IoLibMsc.c | MSFT
|
IoLibMsc.c | MSFT
|
||||||
IoLibIcc.c | INTEL
|
|
||||||
IoLib.c
|
IoLib.c
|
||||||
X64/IoFifoSev.nasm
|
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…
x
Reference in New Issue
Block a user