audk/MdeModulePkg/Core/Dxe/DxeRing3/Ring3Protocols.c

223 lines
4.2 KiB
C

/** @file
Copyright (c) 2024, Mikhail Krichanov. All rights reserved.
SPDX-License-Identifier: BSD-3-Clause
**/
#include "Ring3.h"
EFI_STATUS
EFIAPI
Ring3BlockIoReset (
IN EFI_BLOCK_IO_PROTOCOL *This,
IN BOOLEAN ExtendedVerification
)
{
return SysCall (
SysCallBlockIoReset,
2,
This,
ExtendedVerification
);
}
EFI_STATUS
EFIAPI
Ring3BlockIoRead (
IN EFI_BLOCK_IO_PROTOCOL *This,
IN UINT32 MediaId,
IN EFI_LBA Lba,
IN UINTN BufferSize,
OUT VOID *Buffer
)
{
return SysCall (
SysCallBlockIoRead,
5,
This,
MediaId,
BufferSize,
Buffer,
Lba
);
}
EFI_STATUS
EFIAPI
Ring3BlockIoWrite (
IN EFI_BLOCK_IO_PROTOCOL *This,
IN UINT32 MediaId,
IN EFI_LBA Lba,
IN UINTN BufferSize,
IN VOID *Buffer
)
{
return SysCall (
SysCallBlockIoWrite,
5,
This,
MediaId,
BufferSize,
Buffer,
Lba
);
}
EFI_STATUS
EFIAPI
Ring3BlockIoFlush (
IN EFI_BLOCK_IO_PROTOCOL *This
)
{
return SysCall (
SysCallBlockIoFlush,
1,
This
);
}
EFI_STATUS
EFIAPI
Ring3DiskIoRead (
IN EFI_DISK_IO_PROTOCOL *This,
IN UINT32 MediaId,
IN UINT64 Offset,
IN UINTN BufferSize,
OUT VOID *Buffer
)
{
return SysCall (
SysCallDiskIoRead,
5,
This,
MediaId,
BufferSize,
Buffer,
Offset
);
}
EFI_STATUS
EFIAPI
Ring3DiskIoWrite (
IN EFI_DISK_IO_PROTOCOL *This,
IN UINT32 MediaId,
IN UINT64 Offset,
IN UINTN BufferSize,
IN VOID *Buffer
)
{
return SysCall (
SysCallDiskIoWrite,
5,
This,
MediaId,
BufferSize,
Buffer,
Offset
);
}
INTN
EFIAPI
Ring3UnicodeStriColl (
IN EFI_UNICODE_COLLATION_PROTOCOL *This,
IN CHAR16 *Str1,
IN CHAR16 *Str2
)
{
return (INTN)SysCall (
SysCallUnicodeStriColl,
3,
This,
Str1,
Str2
);
}
BOOLEAN
EFIAPI
Ring3UnicodeMetaiMatch (
IN EFI_UNICODE_COLLATION_PROTOCOL *This,
IN CHAR16 *String,
IN CHAR16 *Pattern
)
{
return (BOOLEAN)SysCall (
SysCallUnicodeMetaiMatch,
3,
This,
String,
Pattern
);
}
VOID
EFIAPI
Ring3UnicodeStrLwr (
IN EFI_UNICODE_COLLATION_PROTOCOL *This,
IN OUT CHAR16 *Str
)
{
SysCall (
SysCallUnicodeStrLwr,
2,
This,
Str
);
}
VOID
EFIAPI
Ring3UnicodeStrUpr (
IN EFI_UNICODE_COLLATION_PROTOCOL *This,
IN OUT CHAR16 *Str
)
{
SysCall (
SysCallUnicodeStrUpr,
2,
This,
Str
);
}
VOID
EFIAPI
Ring3UnicodeFatToStr (
IN EFI_UNICODE_COLLATION_PROTOCOL *This,
IN UINTN FatSize,
IN CHAR8 *Fat,
OUT CHAR16 *String
)
{
SysCall (
SysCallUnicodeFatToStr,
4,
This,
FatSize,
Fat,
String
);
}
BOOLEAN
EFIAPI
Ring3UnicodeStrToFat (
IN EFI_UNICODE_COLLATION_PROTOCOL *This,
IN CHAR16 *String,
IN UINTN FatSize,
OUT CHAR8 *Fat
)
{
return (BOOLEAN)SysCall (
SysCallUnicodeStrToFat,
4,
This,
String,
FatSize,
Fat
);
}