summaryrefslogtreecommitdiffstats
path: root/EmulatorPkg/Unix
diff options
context:
space:
mode:
authorMichael Kubacki <michael.kubacki@microsoft.com>2021-12-05 14:53:57 -0800
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2021-12-07 17:24:28 +0000
commita550d468a6ca577d9e9c57a0eafcf2fc9fbb8c97 (patch)
tree16ea0a059e01bb8af07f41dcea5996424c309a95 /EmulatorPkg/Unix
parente7108d0e9655b1795c94ac372b0449f28dd907df (diff)
downloadedk2-a550d468a6ca577d9e9c57a0eafcf2fc9fbb8c97.tar.gz
edk2-a550d468a6ca577d9e9c57a0eafcf2fc9fbb8c97.tar.bz2
edk2-a550d468a6ca577d9e9c57a0eafcf2fc9fbb8c97.zip
EmulatorPkg: Apply uncrustify changes
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the EmulatorPkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Ray Ni <ray.ni@intel.com>
Diffstat (limited to 'EmulatorPkg/Unix')
-rw-r--r--EmulatorPkg/Unix/Host/BerkeleyPacketFilter.c261
-rw-r--r--EmulatorPkg/Unix/Host/BlockIo.c262
-rw-r--r--EmulatorPkg/Unix/Host/EmuThunk.c183
-rw-r--r--EmulatorPkg/Unix/Host/Gasket.h288
-rw-r--r--EmulatorPkg/Unix/Host/Host.c400
-rw-r--r--EmulatorPkg/Unix/Host/Host.h160
-rw-r--r--EmulatorPkg/Unix/Host/Ia32/SwitchStack.c12
-rw-r--r--EmulatorPkg/Unix/Host/LinuxPacketFilter.c142
-rw-r--r--EmulatorPkg/Unix/Host/MemoryAllocationLib.c14
-rw-r--r--EmulatorPkg/Unix/Host/PosixFileSystem.c637
-rw-r--r--EmulatorPkg/Unix/Host/Pthreads.c66
-rw-r--r--EmulatorPkg/Unix/Host/X11GraphicsWindow.c1076
12 files changed, 1753 insertions, 1748 deletions
diff --git a/EmulatorPkg/Unix/Host/BerkeleyPacketFilter.c b/EmulatorPkg/Unix/Host/BerkeleyPacketFilter.c
index 441f1e8d0a..ecfdacc748 100644
--- a/EmulatorPkg/Unix/Host/BerkeleyPacketFilter.c
+++ b/EmulatorPkg/Unix/Host/BerkeleyPacketFilter.c
@@ -11,53 +11,48 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
-
#include "Host.h"
#ifdef __APPLE__
+ #include <Library/NetLib.h>
-#include <Library/NetLib.h>
-
-
-#define EMU_SNP_PRIVATE_SIGNATURE SIGNATURE_32('E', 'M', 's', 'n')
+#define EMU_SNP_PRIVATE_SIGNATURE SIGNATURE_32('E', 'M', 's', 'n')
typedef struct {
- UINTN Signature;
+ UINTN Signature;
- EMU_IO_THUNK_PROTOCOL *Thunk;
- EMU_SNP_PROTOCOL EmuSnp;
- EFI_SIMPLE_NETWORK_MODE *Mode;
+ EMU_IO_THUNK_PROTOCOL *Thunk;
+ EMU_SNP_PROTOCOL EmuSnp;
+ EFI_SIMPLE_NETWORK_MODE *Mode;
- int BpfFd;
- char *InterfaceName;
- EFI_MAC_ADDRESS MacAddress;
- u_int ReadBufferSize;
- VOID *ReadBuffer;
+ int BpfFd;
+ char *InterfaceName;
+ EFI_MAC_ADDRESS MacAddress;
+ u_int ReadBufferSize;
+ VOID *ReadBuffer;
//
// Two walking pointers to manage the multiple packets that can be returned
// in a single read.
//
- VOID *CurrentReadPointer;
- VOID *EndReadPointer;
-
- UINT32 ReceivedPackets;
- UINT32 DroppedPackets;
+ VOID *CurrentReadPointer;
+ VOID *EndReadPointer;
+ UINT32 ReceivedPackets;
+ UINT32 DroppedPackets;
} EMU_SNP_PRIVATE;
#define EMU_SNP_PRIVATE_DATA_FROM_THIS(a) \
CR(a, EMU_SNP_PRIVATE, EmuSnp, EMU_SNP_PRIVATE_SIGNATURE)
-
//
// Strange, but there doesn't appear to be any structure for the Ethernet header in edk2...
//
typedef struct {
- UINT8 DstAddr[NET_ETHER_ADDR_LEN];
- UINT8 SrcAddr[NET_ETHER_ADDR_LEN];
- UINT16 Type;
+ UINT8 DstAddr[NET_ETHER_ADDR_LEN];
+ UINT8 SrcAddr[NET_ETHER_ADDR_LEN];
+ UINT16 Type;
} ETHERNET_HEADER;
/**
@@ -76,7 +71,7 @@ EmuSnpCreateMapping (
IN EFI_SIMPLE_NETWORK_MODE *Mode
)
{
- EMU_SNP_PRIVATE *Private;
+ EMU_SNP_PRIVATE *Private;
Private = EMU_SNP_PRIVATE_DATA_FROM_THIS (This);
@@ -100,40 +95,38 @@ EmuSnpCreateMapping (
return EFI_SUCCESS;
}
-
-static struct bpf_insn mFilterInstructionTemplate[] = {
+static struct bpf_insn mFilterInstructionTemplate[] = {
// Load 4 bytes from the destination MAC address.
- BPF_STMT (BPF_LD + BPF_W + BPF_ABS, OFFSET_OF (ETHERNET_HEADER, DstAddr[0])),
+ BPF_STMT (BPF_LD + BPF_W + BPF_ABS, OFFSET_OF (ETHERNET_HEADER, DstAddr[0])),
// Compare to first 4 bytes of fake MAC address.
- BPF_JUMP (BPF_JMP + BPF_JEQ + BPF_K, 0x12345678, 0, 3 ),
+ BPF_JUMP (BPF_JMP + BPF_JEQ + BPF_K, 0x12345678, 0, 3),
// Load remaining 2 bytes from the destination MAC address.
- BPF_STMT (BPF_LD + BPF_H + BPF_ABS, OFFSET_OF( ETHERNET_HEADER, DstAddr[4])),
+ BPF_STMT (BPF_LD + BPF_H + BPF_ABS, OFFSET_OF (ETHERNET_HEADER, DstAddr[4])),
// Compare to remaining 2 bytes of fake MAC address.
- BPF_JUMP (BPF_JMP + BPF_JEQ + BPF_K, 0x9ABC, 5, 0 ),
+ BPF_JUMP (BPF_JMP + BPF_JEQ + BPF_K, 0x9ABC, 5, 0),
// Load 4 bytes from the destination MAC address.
- BPF_STMT (BPF_LD + BPF_W + BPF_ABS, OFFSET_OF (ETHERNET_HEADER, DstAddr[0])),
+ BPF_STMT (BPF_LD + BPF_W + BPF_ABS, OFFSET_OF (ETHERNET_HEADER, DstAddr[0])),
// Compare to first 4 bytes of broadcast MAC address.
- BPF_JUMP (BPF_JMP + BPF_JEQ + BPF_K, 0xFFFFFFFF, 0, 2),
+ BPF_JUMP (BPF_JMP + BPF_JEQ + BPF_K, 0xFFFFFFFF, 0, 2),
// Load remaining 2 bytes from the destination MAC address.
- BPF_STMT (BPF_LD + BPF_H + BPF_ABS, OFFSET_OF( ETHERNET_HEADER, DstAddr[4])),
+ BPF_STMT (BPF_LD + BPF_H + BPF_ABS, OFFSET_OF (ETHERNET_HEADER, DstAddr[4])),
// Compare to remaining 2 bytes of broadcast MAC address.
- BPF_JUMP (BPF_JMP + BPF_JEQ + BPF_K, 0xFFFF, 1, 0),
+ BPF_JUMP (BPF_JMP + BPF_JEQ + BPF_K, 0xFFFF, 1, 0),
// Reject packet.
- BPF_STMT (BPF_RET + BPF_K, 0),
+ BPF_STMT (BPF_RET + BPF_K, 0),
// Receive entire packet.
- BPF_STMT (BPF_RET + BPF_K, -1)
+ BPF_STMT (BPF_RET + BPF_K, -1)
};
-
EFI_STATUS
OpenBpfFileDescriptor (
IN EMU_SNP_PRIVATE *Private,
@@ -171,7 +164,6 @@ OpenBpfFileDescriptor (
return EFI_OUT_OF_RESOURCES;
}
-
/**
Changes the state of a network interface from "stopped" to "started".
@@ -189,15 +181,15 @@ EmuSnpStart (
IN EMU_SNP_PROTOCOL *This
)
{
- EFI_STATUS Status;
- EMU_SNP_PRIVATE *Private;
- struct ifreq BoundIf;
- struct bpf_program BpfProgram;
- struct bpf_insn *FilterProgram;
+ EFI_STATUS Status;
+ EMU_SNP_PRIVATE *Private;
+ struct ifreq BoundIf;
+ struct bpf_program BpfProgram;
+ struct bpf_insn *FilterProgram;
u_int Value;
u_int ReadBufferSize;
- UINT16 Temp16;
- UINT32 Temp32;
+ UINT16 Temp16;
+ UINT32 Temp32;
Private = EMU_SNP_PRIVATE_DATA_FROM_THIS (This);
@@ -215,7 +207,7 @@ EmuSnpStart (
break;
}
- Status = EFI_SUCCESS;
+ Status = EFI_SUCCESS;
Private->ReadBuffer = NULL;
if (Private->BpfFd == 0) {
Status = OpenBpfFileDescriptor (Private, &Private->BpfFd);
@@ -282,7 +274,7 @@ EmuSnpStart (
// Allocate read buffer.
//
Private->ReadBufferSize = ReadBufferSize;
- Private->ReadBuffer = malloc (Private->ReadBufferSize);
+ Private->ReadBuffer = malloc (Private->ReadBufferSize);
if (Private->ReadBuffer == NULL) {
goto ErrorExit;
}
@@ -293,7 +285,7 @@ EmuSnpStart (
// Install our packet filter: successful reads should only produce broadcast or unicast
// packets directed to our fake MAC address.
//
- FilterProgram = malloc (sizeof (mFilterInstructionTemplate)) ;
+ FilterProgram = malloc (sizeof (mFilterInstructionTemplate));
if ( FilterProgram == NULL ) {
goto ErrorExit;
}
@@ -308,7 +300,7 @@ EmuSnpStart (
CopyMem (&Temp16, &Private->Mode->CurrentAddress.Addr[4], sizeof (UINT16));
FilterProgram[3].k = NTOHS (Temp16);
- BpfProgram.bf_len = sizeof (mFilterInstructionTemplate) / sizeof (struct bpf_insn);
+ BpfProgram.bf_len = sizeof (mFilterInstructionTemplate) / sizeof (struct bpf_insn);
BpfProgram.bf_insns = FilterProgram;
if (ioctl (Private->BpfFd, BIOCSETF, &BpfProgram) < 0) {
@@ -324,7 +316,6 @@ EmuSnpStart (
goto DeviceErrorExit;
}
-
Private->Mode->State = EfiSimpleNetworkStarted;
}
@@ -337,10 +328,10 @@ ErrorExit:
free (Private->ReadBuffer);
Private->ReadBuffer = NULL;
}
+
return Status;
}
-
/**
Changes the state of a network interface from "started" to "stopped".
@@ -358,7 +349,7 @@ EmuSnpStop (
IN EMU_SNP_PROTOCOL *This
)
{
- EMU_SNP_PRIVATE *Private;
+ EMU_SNP_PRIVATE *Private;
Private = EMU_SNP_PRIVATE_DATA_FROM_THIS (This);
@@ -381,7 +372,7 @@ EmuSnpStop (
}
if (Private->ReadBuffer != NULL) {
- free (Private->ReadBuffer );
+ free (Private->ReadBuffer);
Private->CurrentReadPointer = Private->EndReadPointer = Private->ReadBuffer = NULL;
}
@@ -390,7 +381,6 @@ EmuSnpStop (
return EFI_SUCCESS;
}
-
/**
Resets a network adapter and allocates the transmit and receive buffers
required by the network interface; optionally, also requests allocation
@@ -419,12 +409,12 @@ EmuSnpStop (
**/
EFI_STATUS
EmuSnpInitialize (
- IN EMU_SNP_PROTOCOL *This,
- IN UINTN ExtraRxBufferSize OPTIONAL,
- IN UINTN ExtraTxBufferSize OPTIONAL
+ IN EMU_SNP_PROTOCOL *This,
+ IN UINTN ExtraRxBufferSize OPTIONAL,
+ IN UINTN ExtraTxBufferSize OPTIONAL
)
{
- EMU_SNP_PRIVATE *Private;
+ EMU_SNP_PRIVATE *Private;
Private = EMU_SNP_PRIVATE_DATA_FROM_THIS (This);
@@ -441,7 +431,7 @@ EmuSnpInitialize (
break;
}
- Private->Mode->MCastFilterCount = 0;
+ Private->Mode->MCastFilterCount = 0;
Private->Mode->ReceiveFilterSetting = 0;
ZeroMem (Private->Mode->MCastFilter, sizeof (Private->Mode->MCastFilter));
@@ -450,7 +440,6 @@ EmuSnpInitialize (
return EFI_SUCCESS;
}
-
/**
Resets a network adapter and re-initializes it with the parameters that were
provided in the previous call to Initialize().
@@ -469,11 +458,11 @@ EmuSnpInitialize (
**/
EFI_STATUS
EmuSnpReset (
- IN EMU_SNP_PROTOCOL *This,
- IN BOOLEAN ExtendedVerification
+ IN EMU_SNP_PROTOCOL *This,
+ IN BOOLEAN ExtendedVerification
)
{
- EMU_SNP_PRIVATE *Private;
+ EMU_SNP_PRIVATE *Private;
Private = EMU_SNP_PRIVATE_DATA_FROM_THIS (This);
@@ -493,7 +482,6 @@ EmuSnpReset (
return EFI_SUCCESS;
}
-
/**
Resets a network adapter and leaves it in a state that is safe for
another driver to initialize.
@@ -512,7 +500,7 @@ EmuSnpShutdown (
IN EMU_SNP_PROTOCOL *This
)
{
- EMU_SNP_PRIVATE *Private;
+ EMU_SNP_PRIVATE *Private;
Private = EMU_SNP_PRIVATE_DATA_FROM_THIS (This);
@@ -532,7 +520,7 @@ EmuSnpShutdown (
Private->Mode->State = EfiSimpleNetworkStarted;
Private->Mode->ReceiveFilterSetting = 0;
- Private->Mode->MCastFilterCount = 0;
+ Private->Mode->MCastFilterCount = 0;
ZeroMem (Private->Mode->MCastFilter, sizeof (Private->Mode->MCastFilter));
if (Private->BpfFd != 0) {
@@ -574,15 +562,15 @@ EmuSnpShutdown (
**/
EFI_STATUS
EmuSnpReceiveFilters (
- IN EMU_SNP_PROTOCOL *This,
- IN UINT32 Enable,
- IN UINT32 Disable,
- IN BOOLEAN ResetMCastFilter,
- IN UINTN MCastFilterCnt OPTIONAL,
- IN EFI_MAC_ADDRESS *MCastFilter OPTIONAL
+ IN EMU_SNP_PROTOCOL *This,
+ IN UINT32 Enable,
+ IN UINT32 Disable,
+ IN BOOLEAN ResetMCastFilter,
+ IN UINTN MCastFilterCnt OPTIONAL,
+ IN EFI_MAC_ADDRESS *MCastFilter OPTIONAL
)
{
- EMU_SNP_PRIVATE *Private;
+ EMU_SNP_PRIVATE *Private;
Private = EMU_SNP_PRIVATE_DATA_FROM_THIS (This);
@@ -590,7 +578,6 @@ EmuSnpReceiveFilters (
return EFI_SUCCESS;
}
-
/**
Modifies or resets the current station address, if supported.
@@ -608,19 +595,18 @@ EmuSnpReceiveFilters (
**/
EFI_STATUS
EmuSnpStationAddress (
- IN EMU_SNP_PROTOCOL *This,
- IN BOOLEAN Reset,
- IN EFI_MAC_ADDRESS *New OPTIONAL
+ IN EMU_SNP_PROTOCOL *This,
+ IN BOOLEAN Reset,
+ IN EFI_MAC_ADDRESS *New OPTIONAL
)
{
- EMU_SNP_PRIVATE *Private;
+ EMU_SNP_PRIVATE *Private;
Private = EMU_SNP_PRIVATE_DATA_FROM_THIS (This);
return EFI_UNSUPPORTED;
}
-
/**
Resets or collects the statistics on a network interface.
@@ -644,20 +630,19 @@ EmuSnpStationAddress (
**/
EFI_STATUS
EmuSnpStatistics (
- IN EMU_SNP_PROTOCOL *This,
- IN BOOLEAN Reset,
- IN OUT UINTN *StatisticsSize OPTIONAL,
- OUT EFI_NETWORK_STATISTICS *StatisticsTable OPTIONAL
+ IN EMU_SNP_PROTOCOL *This,
+ IN BOOLEAN Reset,
+ IN OUT UINTN *StatisticsSize OPTIONAL,
+ OUT EFI_NETWORK_STATISTICS *StatisticsTable OPTIONAL
)
{
- EMU_SNP_PRIVATE *Private;
+ EMU_SNP_PRIVATE *Private;
Private = EMU_SNP_PRIVATE_DATA_FROM_THIS (This);
return EFI_UNSUPPORTED;
}
-
/**
Converts a multicast IP address to a multicast HW MAC address.
@@ -681,20 +666,19 @@ EmuSnpStatistics (
**/
EFI_STATUS
EmuSnpMCastIpToMac (
- IN EMU_SNP_PROTOCOL *This,
- IN BOOLEAN IPv6,
- IN EFI_IP_ADDRESS *IP,
- OUT EFI_MAC_ADDRESS *MAC
+ IN EMU_SNP_PROTOCOL *This,
+ IN BOOLEAN IPv6,
+ IN EFI_IP_ADDRESS *IP,
+ OUT EFI_MAC_ADDRESS *MAC
)
{
- EMU_SNP_PRIVATE *Private;
+ EMU_SNP_PRIVATE *Private;
Private = EMU_SNP_PRIVATE_DATA_FROM_THIS (This);
return EFI_UNSUPPORTED;
}
-
/**
Performs read and write operations on the NVRAM device attached to a
network interface.
@@ -717,14 +701,14 @@ EmuSnpMCastIpToMac (
**/
EFI_STATUS
EmuSnpNvData (
- IN EMU_SNP_PROTOCOL *This,
- IN BOOLEAN ReadWrite,
- IN UINTN Offset,
- IN UINTN BufferSize,
- IN OUT VOID *Buffer
+ IN EMU_SNP_PROTOCOL *This,
+ IN BOOLEAN ReadWrite,
+ IN UINTN Offset,
+ IN UINTN BufferSize,
+ IN OUT VOID *Buffer
)
{
- EMU_SNP_PRIVATE *Private;
+ EMU_SNP_PRIVATE *Private;
Private = EMU_SNP_PRIVATE_DATA_FROM_THIS (This);
@@ -758,12 +742,12 @@ EmuSnpNvData (
**/
EFI_STATUS
EmuSnpGetStatus (
- IN EMU_SNP_PROTOCOL *This,
- OUT UINT32 *InterruptStatus OPTIONAL,
- OUT VOID **TxBuf OPTIONAL
+ IN EMU_SNP_PROTOCOL *This,
+ OUT UINT32 *InterruptStatus OPTIONAL,
+ OUT VOID **TxBuf OPTIONAL
)
{
- EMU_SNP_PRIVATE *Private;
+ EMU_SNP_PRIVATE *Private;
Private = EMU_SNP_PRIVATE_DATA_FROM_THIS (This);
@@ -774,7 +758,6 @@ EmuSnpGetStatus (
return EFI_SUCCESS;
}
-
/**
Places a packet in the transmit queue of a network interface.
@@ -810,17 +793,17 @@ EmuSnpGetStatus (
**/
EFI_STATUS
EmuSnpTransmit (
- IN EMU_SNP_PROTOCOL *This,
- IN UINTN HeaderSize,
- IN UINTN BufferSize,
- IN VOID *Buffer,
- IN EFI_MAC_ADDRESS *SrcAddr OPTIONAL,
- IN EFI_MAC_ADDRESS *DestAddr OPTIONAL,
- IN UINT16 *Protocol OPTIONAL
+ IN EMU_SNP_PROTOCOL *This,
+ IN UINTN HeaderSize,
+ IN UINTN BufferSize,
+ IN VOID *Buffer,
+ IN EFI_MAC_ADDRESS *SrcAddr OPTIONAL,
+ IN EFI_MAC_ADDRESS *DestAddr OPTIONAL,
+ IN UINT16 *Protocol OPTIONAL
)
{
- EMU_SNP_PRIVATE *Private;
- ETHERNET_HEADER *EnetHeader;
+ EMU_SNP_PRIVATE *Private;
+ ETHERNET_HEADER *EnetHeader;
Private = EMU_SNP_PRIVATE_DATA_FROM_THIS (This);
@@ -837,15 +820,15 @@ EmuSnpTransmit (
SrcAddr = &Private->Mode->CurrentAddress;
}
- EnetHeader = (ETHERNET_HEADER *) Buffer;
+ EnetHeader = (ETHERNET_HEADER *)Buffer;
CopyMem (EnetHeader->DstAddr, DestAddr, NET_ETHER_ADDR_LEN);
CopyMem (EnetHeader->SrcAddr, SrcAddr, NET_ETHER_ADDR_LEN);
- EnetHeader->Type = HTONS(*Protocol);
+ EnetHeader->Type = HTONS (*Protocol);
}
- if (write (Private->BpfFd, Buffer, BufferSize) < 0) {
+ if (write (Private->BpfFd, Buffer, BufferSize) < 0) {
return EFI_DEVICE_ERROR;
}
@@ -886,20 +869,20 @@ EmuSnpTransmit (
**/
EFI_STATUS
EmuSnpReceive (
- IN EMU_SNP_PROTOCOL *This,
- OUT UINTN *HeaderSize OPTIONAL,
- IN OUT UINTN *BufferSize,
- OUT VOID *Buffer,
- OUT EFI_MAC_ADDRESS *SrcAddr OPTIONAL,
- OUT EFI_MAC_ADDRESS *DestAddr OPTIONAL,
- OUT UINT16 *Protocol OPTIONAL
+ IN EMU_SNP_PROTOCOL *This,
+ OUT UINTN *HeaderSize OPTIONAL,
+ IN OUT UINTN *BufferSize,
+ OUT VOID *Buffer,
+ OUT EFI_MAC_ADDRESS *SrcAddr OPTIONAL,
+ OUT EFI_MAC_ADDRESS *DestAddr OPTIONAL,
+ OUT UINT16 *Protocol OPTIONAL
)
{
- EMU_SNP_PRIVATE *Private;
- struct bpf_hdr *BpfHeader;
- struct bpf_stat BpfStats;
- ETHERNET_HEADER *EnetHeader;
- ssize_t Result;
+ EMU_SNP_PRIVATE *Private;
+ struct bpf_hdr *BpfHeader;
+ struct bpf_stat BpfStats;
+ ETHERNET_HEADER *EnetHeader;
+ ssize_t Result;
Private = EMU_SNP_PRIVATE_DATA_FROM_THIS (This);
@@ -907,7 +890,7 @@ EmuSnpReceive (
return EFI_NOT_STARTED;
}
- ZeroMem (&BpfStats, sizeof( BpfStats));
+ ZeroMem (&BpfStats, sizeof (BpfStats));
if (ioctl (Private->BpfFd, BIOCGSTATS, &BpfStats) == 0) {
Private->ReceivedPackets += BpfStats.bs_recv;
@@ -936,10 +919,10 @@ EmuSnpReceive (
}
Private->CurrentReadPointer = Private->ReadBuffer;
- Private->EndReadPointer = Private->CurrentReadPointer + Result;
+ Private->EndReadPointer = Private->CurrentReadPointer + Result;
}
- BpfHeader = Private->CurrentReadPointer;
+ BpfHeader = Private->CurrentReadPointer;
EnetHeader = Private->CurrentReadPointer + BpfHeader->bh_hdrlen;
if (BpfHeader->bh_caplen > *BufferSize) {
@@ -972,8 +955,7 @@ EmuSnpReceive (
return EFI_SUCCESS;
}
-
-EMU_SNP_PROTOCOL gEmuSnpProtocol = {
+EMU_SNP_PROTOCOL gEmuSnpProtocol = {
GasketSnpCreateMapping,
GasketSnpStart,
GasketSnpStop,
@@ -992,7 +974,7 @@ EMU_SNP_PROTOCOL gEmuSnpProtocol = {
EFI_STATUS
GetInterfaceMacAddr (
- EMU_SNP_PRIVATE *Private
+ EMU_SNP_PRIVATE *Private
)
{
EFI_STATUS Status;
@@ -1020,12 +1002,12 @@ GetInterfaceMacAddr (
);
Status = EFI_NOT_FOUND;
- If = IfAddrs;
+ If = IfAddrs;
while (If != NULL) {
IfSdl = (struct sockaddr_dl *)If->ifa_addr;
if (IfSdl->sdl_family == AF_LINK) {
- if (!AsciiStrCmp( Private->InterfaceName, If->ifa_name)) {
+ if (!AsciiStrCmp (Private->InterfaceName, If->ifa_name)) {
CopyMem (&Private->MacAddress, LLADDR (IfSdl), NET_ETHER_ADDR_LEN);
Status = EFI_SUCCESS;
@@ -1041,10 +1023,9 @@ Exit:
return Status;
}
-
EFI_STATUS
EmuSnpThunkOpen (
- IN EMU_IO_THUNK_PROTOCOL *This
+ IN EMU_IO_THUNK_PROTOCOL *This
)
{
EMU_SNP_PRIVATE *Private;
@@ -1062,7 +1043,6 @@ EmuSnpThunkOpen (
return EFI_OUT_OF_RESOURCES;
}
-
Private->Signature = EMU_SNP_PRIVATE_SIGNATURE;
Private->Thunk = This;
CopyMem (&Private->EmuSnp, &gEmuSnpProtocol, sizeof (gEmuSnpProtocol));
@@ -1073,10 +1053,9 @@ EmuSnpThunkOpen (
return EFI_SUCCESS;
}
-
EFI_STATUS
EmuSnpThunkClose (
- IN EMU_IO_THUNK_PROTOCOL *This
+ IN EMU_IO_THUNK_PROTOCOL *This
)
{
EMU_SNP_PRIVATE *Private;
@@ -1091,9 +1070,7 @@ EmuSnpThunkClose (
return EFI_SUCCESS;
}
-
-
-EMU_IO_THUNK_PROTOCOL gSnpThunkIo = {
+EMU_IO_THUNK_PROTOCOL gSnpThunkIo = {
&gEmuSnpProtocolGuid,
NULL,
NULL,
diff --git a/EmulatorPkg/Unix/Host/BlockIo.c b/EmulatorPkg/Unix/Host/BlockIo.c
index e3d7c52a43..cf2d6b4cda 100644
--- a/EmulatorPkg/Unix/Host/BlockIo.c
+++ b/EmulatorPkg/Unix/Host/BlockIo.c
@@ -7,41 +7,37 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include "Host.h"
-#define EMU_BLOCK_IO_PRIVATE_SIGNATURE SIGNATURE_32 ('E', 'M', 'b', 'k')
+#define EMU_BLOCK_IO_PRIVATE_SIGNATURE SIGNATURE_32 ('E', 'M', 'b', 'k')
typedef struct {
- UINTN Signature;
+ UINTN Signature;
- EMU_IO_THUNK_PROTOCOL *Thunk;
+ EMU_IO_THUNK_PROTOCOL *Thunk;
- char *Filename;
- UINTN ReadMode;
- UINTN Mode;
+ char *Filename;
+ UINTN ReadMode;
+ UINTN Mode;
- int fd;
+ int fd;
- BOOLEAN RemovableMedia;
- BOOLEAN WriteProtected;
+ BOOLEAN RemovableMedia;
+ BOOLEAN WriteProtected;
- UINT64 NumberOfBlocks;
- UINT32 BlockSize;
-
- EMU_BLOCK_IO_PROTOCOL EmuBlockIo;
- EFI_BLOCK_IO_MEDIA *Media;
+ UINT64 NumberOfBlocks;
+ UINT32 BlockSize;
+ EMU_BLOCK_IO_PROTOCOL EmuBlockIo;
+ EFI_BLOCK_IO_MEDIA *Media;
} EMU_BLOCK_IO_PRIVATE;
#define EMU_BLOCK_IO_PRIVATE_DATA_FROM_THIS(a) \
CR(a, EMU_BLOCK_IO_PRIVATE, EmuBlockIo, EMU_BLOCK_IO_PRIVATE_SIGNATURE)
-
-
EFI_STATUS
EmuBlockIoReset (
- IN EMU_BLOCK_IO_PROTOCOL *This,
- IN BOOLEAN ExtendedVerification
+ IN EMU_BLOCK_IO_PROTOCOL *This,
+ IN BOOLEAN ExtendedVerification
);
-
/*++
This function extends the capability of SetFilePointer to accept 64 bit parameters
@@ -49,18 +45,18 @@ This function extends the capability of SetFilePointer to accept 64 bit paramete
**/
EFI_STATUS
SetFilePointer64 (
- IN EMU_BLOCK_IO_PRIVATE *Private,
- IN INT64 DistanceToMove,
- OUT UINT64 *NewFilePointer,
- IN INT32 MoveMethod
+ IN EMU_BLOCK_IO_PRIVATE *Private,
+ IN INT64 DistanceToMove,
+ OUT UINT64 *NewFilePointer,
+ IN INT32 MoveMethod
)
{
- EFI_STATUS Status;
- off_t res;
- off_t offset = DistanceToMove;
+ EFI_STATUS Status;
+ off_t res;
+ off_t offset = DistanceToMove;
Status = EFI_SUCCESS;
- res = lseek (Private->fd, offset, (int)MoveMethod);
+ res = lseek (Private->fd, offset, (int)MoveMethod);
if (res == -1) {
Status = EFI_INVALID_PARAMETER;
}
@@ -72,16 +68,14 @@ SetFilePointer64 (
return Status;
}
-
EFI_STATUS
EmuBlockIoOpenDevice (
- IN EMU_BLOCK_IO_PRIVATE *Private
+ IN EMU_BLOCK_IO_PRIVATE *Private
)
{
- EFI_STATUS Status;
- UINT64 FileSize;
- struct statfs buf;
-
+ EFI_STATUS Status;
+ UINT64 FileSize;
+ struct statfs buf;
//
// If the device is already opened, close it
@@ -95,9 +89,9 @@ EmuBlockIoOpenDevice (
//
Private->fd = open (Private->Filename, Private->Mode, 0644);
if (Private->fd < 0) {
- printf ("EmuOpenBlock: Could not open %s: %s\n", Private->Filename, strerror(errno));
- Private->Media->MediaPresent = FALSE;
- Status = EFI_NO_MEDIA;
+ printf ("EmuOpenBlock: Could not open %s: %s\n", Private->Filename, strerror (errno));
+ Private->Media->MediaPresent = FALSE;
+ Status = EFI_NO_MEDIA;
goto Done;
}
@@ -120,13 +114,14 @@ EmuBlockIoOpenDevice (
if (FileSize == 0) {
// lseek fails on a real device. ioctl calls are OS specific
-#if __APPLE__
+ #if __APPLE__
{
- UINT32 BlockSize;
+ UINT32 BlockSize;
if (ioctl (Private->fd, DKIOCGETBLOCKSIZE, &BlockSize) == 0) {
Private->Media->BlockSize = BlockSize;
}
+
if (ioctl (Private->fd, DKIOCGETBLOCKCOUNT, &Private->NumberOfBlocks) == 0) {
if ((Private->NumberOfBlocks == 0) && (BlockSize == 0x800)) {
// A DVD is ~ 4.37 GB so make up a number
@@ -135,34 +130,35 @@ EmuBlockIoOpenDevice (
Private->Media->LastBlock = Private->NumberOfBlocks - 1;
}
}
+
ioctl (Private->fd, DKIOCGETMAXBLOCKCOUNTWRITE, &Private->Media->OptimalTransferLengthGranularity);
}
-#else
+ #else
{
- size_t BlockSize;
- UINT64 DiskSize;
+ size_t BlockSize;
+ UINT64 DiskSize;
if (ioctl (Private->fd, BLKSSZGET, &BlockSize) == 0) {
Private->Media->BlockSize = BlockSize;
}
+
if (ioctl (Private->fd, BLKGETSIZE64, &DiskSize) == 0) {
- Private->NumberOfBlocks = DivU64x32 (DiskSize, (UINT32)BlockSize);
+ Private->NumberOfBlocks = DivU64x32 (DiskSize, (UINT32)BlockSize);
Private->Media->LastBlock = Private->NumberOfBlocks - 1;
}
}
-#endif
-
+ #endif
} else {
Private->Media->BlockSize = Private->BlockSize;
- Private->NumberOfBlocks = DivU64x32 (FileSize, Private->Media->BlockSize);
+ Private->NumberOfBlocks = DivU64x32 (FileSize, Private->Media->BlockSize);
Private->Media->LastBlock = Private->NumberOfBlocks - 1;
if (fstatfs (Private->fd, &buf) == 0) {
-#if __APPLE__
+ #if __APPLE__
Private->Media->OptimalTransferLengthGranularity = buf.f_iosize/buf.f_bsize;
-#else
+ #else
Private->Media->OptimalTransferLengthGranularity = buf.f_bsize/buf.f_bsize;
-#endif
+ #endif
}
}
@@ -179,15 +175,14 @@ Done:
return Status;
}
-
EFI_STATUS
EmuBlockIoCreateMapping (
- IN EMU_BLOCK_IO_PROTOCOL *This,
- IN EFI_BLOCK_IO_MEDIA *Media
+ IN EMU_BLOCK_IO_PROTOCOL *This,
+ IN EFI_BLOCK_IO_MEDIA *Media
)
{
- EFI_STATUS Status;
- EMU_BLOCK_IO_PRIVATE *Private;
+ EFI_STATUS Status;
+ EMU_BLOCK_IO_PRIVATE *Private;
Private = EMU_BLOCK_IO_PRIVATE_DATA_FROM_THIS (This);
@@ -206,66 +201,61 @@ EmuBlockIoCreateMapping (
Media->LowestAlignedLba = 0;
Media->LogicalBlocksPerPhysicalBlock = 0;
-
// EFI_BLOCK_IO_PROTOCOL_REVISION3
Media->OptimalTransferLengthGranularity = 0;
Status = EmuBlockIoOpenDevice (Private);
-
return Status;
}
-
EFI_STATUS
EmuBlockIoError (
- IN EMU_BLOCK_IO_PRIVATE *Private
+ IN EMU_BLOCK_IO_PRIVATE *Private
)
{
- EFI_STATUS Status;
- BOOLEAN ReinstallBlockIoFlag;
-
+ EFI_STATUS Status;
+ BOOLEAN ReinstallBlockIoFlag;
switch (errno) {
-
- case EAGAIN:
- Status = EFI_NO_MEDIA;
- Private->Media->ReadOnly = FALSE;
- Private->Media->MediaPresent = FALSE;
- ReinstallBlockIoFlag = FALSE;
- break;
-
- case EACCES:
- Private->Media->ReadOnly = FALSE;
- Private->Media->MediaPresent = TRUE;
- Private->Media->MediaId += 1;
- ReinstallBlockIoFlag = TRUE;
- Status = EFI_MEDIA_CHANGED;
- break;
-
- case EROFS:
- Private->Media->ReadOnly = TRUE;
- ReinstallBlockIoFlag = FALSE;
- Status = EFI_WRITE_PROTECTED;
- break;
-
- default:
- ReinstallBlockIoFlag = FALSE;
- Status = EFI_DEVICE_ERROR;
- break;
+ case EAGAIN:
+ Status = EFI_NO_MEDIA;
+ Private->Media->ReadOnly = FALSE;
+ Private->Media->MediaPresent = FALSE;
+ ReinstallBlockIoFlag = FALSE;
+ break;
+
+ case EACCES:
+ Private->Media->ReadOnly = FALSE;
+ Private->Media->MediaPresent = TRUE;
+ Private->Media->MediaId += 1;
+ ReinstallBlockIoFlag = TRUE;
+ Status = EFI_MEDIA_CHANGED;
+ break;
+
+ case EROFS:
+ Private->Media->ReadOnly = TRUE;
+ ReinstallBlockIoFlag = FALSE;
+ Status = EFI_WRITE_PROTECTED;
+ break;
+
+ default:
+ ReinstallBlockIoFlag = FALSE;
+ Status = EFI_DEVICE_ERROR;
+ break;
}
+
return Status;
}
-
EFI_STATUS
EmuBlockIoReadWriteCommon (
- IN EMU_BLOCK_IO_PRIVATE *Private,
- IN UINT32 MediaId,
- IN EFI_LBA Lba,
- IN UINTN BufferSize,
- IN VOID *Buffer,
- IN CHAR8 *CallerName
+ IN EMU_BLOCK_IO_PRIVATE *Private,
+ IN UINT32 MediaId,
+ IN EFI_LBA Lba,
+ IN UINTN BufferSize,
+ IN VOID *Buffer,
+ IN CHAR8 *CallerName
)
{
EFI_STATUS Status;
@@ -290,7 +280,7 @@ EmuBlockIoReadWriteCommon (
return EFI_MEDIA_CHANGED;
}
- if ((UINTN) Buffer % Private->Media->IoAlign != 0) {
+ if ((UINTN)Buffer % Private->Media->IoAlign != 0) {
return EFI_INVALID_PARAMETER;
}
@@ -313,11 +303,12 @@ EmuBlockIoReadWriteCommon (
DEBUG ((DEBUG_INIT, "ReadBlocks: Attempted to read off end of device\n"));
return EFI_INVALID_PARAMETER;
}
+
//
// Seek to End of File
//
DistanceToMove = MultU64x32 (Lba, BlockSize);
- Status = SetFilePointer64 (Private, DistanceToMove, &DistanceMoved, SEEK_SET);
+ Status = SetFilePointer64 (Private, DistanceToMove, &DistanceMoved, SEEK_SET);
if (EFI_ERROR (Status)) {
DEBUG ((DEBUG_INIT, "WriteBlocks: SetFilePointer failed\n"));
@@ -327,7 +318,6 @@ EmuBlockIoReadWriteCommon (
return EFI_SUCCESS;
}
-
/**
Read BufferSize bytes from Lba into Buffer.
@@ -368,16 +358,16 @@ EmuBlockIoReadBlocks (
IN EFI_LBA LBA,
IN OUT EFI_BLOCK_IO2_TOKEN *Token,
IN UINTN BufferSize,
- OUT VOID *Buffer
+ OUT VOID *Buffer
)
{
- EFI_STATUS Status;
- EMU_BLOCK_IO_PRIVATE *Private;
- ssize_t len;
+ EFI_STATUS Status;
+ EMU_BLOCK_IO_PRIVATE *Private;
+ ssize_t len;
Private = EMU_BLOCK_IO_PRIVATE_DATA_FROM_THIS (This);
- Status = EmuBlockIoReadWriteCommon (Private, MediaId, LBA, BufferSize, Buffer, "UnixReadBlocks");
+ Status = EmuBlockIoReadWriteCommon (Private, MediaId, LBA, BufferSize, Buffer, "UnixReadBlocks");
if (EFI_ERROR (Status)) {
goto Done;
}
@@ -393,7 +383,7 @@ EmuBlockIoReadBlocks (
// If we read then media is present.
//
Private->Media->MediaPresent = TRUE;
- Status = EFI_SUCCESS;
+ Status = EFI_SUCCESS;
Done:
if (Token != NULL) {
@@ -403,10 +393,10 @@ Done:
return EFI_SUCCESS;
}
}
+
return Status;
}
-
/**
Write BufferSize bytes from Lba into Buffer.
@@ -448,14 +438,13 @@ EmuBlockIoWriteBlocks (
IN VOID *Buffer
)
{
- EMU_BLOCK_IO_PRIVATE *Private;
- ssize_t len;
- EFI_STATUS Status;
-
+ EMU_BLOCK_IO_PRIVATE *Private;
+ ssize_t len;
+ EFI_STATUS Status;
Private = EMU_BLOCK_IO_PRIVATE_DATA_FROM_THIS (This);
- Status = EmuBlockIoReadWriteCommon (Private, MediaId, LBA, BufferSize, Buffer, "UnixWriteBlocks");
+ Status = EmuBlockIoReadWriteCommon (Private, MediaId, LBA, BufferSize, Buffer, "UnixWriteBlocks");
if (EFI_ERROR (Status)) {
goto Done;
}
@@ -472,7 +461,7 @@ EmuBlockIoWriteBlocks (
//
Private->Media->MediaPresent = TRUE;
Private->Media->ReadOnly = FALSE;
- Status = EFI_SUCCESS;
+ Status = EFI_SUCCESS;
Done:
if (Token != NULL) {
@@ -486,7 +475,6 @@ Done:
return Status;
}
-
/**
Flush the Block Device.
@@ -511,22 +499,21 @@ Done:
**/
EFI_STATUS
EmuBlockIoFlushBlocks (
- IN EMU_BLOCK_IO_PROTOCOL *This,
- IN OUT EFI_BLOCK_IO2_TOKEN *Token
+ IN EMU_BLOCK_IO_PROTOCOL *This,
+ IN OUT EFI_BLOCK_IO2_TOKEN *Token
)
{
- EMU_BLOCK_IO_PRIVATE *Private;
+ EMU_BLOCK_IO_PRIVATE *Private;
Private = EMU_BLOCK_IO_PRIVATE_DATA_FROM_THIS (This);
if (Private->fd >= 0) {
fsync (Private->fd);
-#if __APPLE__
+ #if __APPLE__
fcntl (Private->fd, F_FULLFSYNC);
-#endif
+ #endif
}
-
if (Token != NULL) {
if (Token->Event != NULL) {
// Caller is responsible for signaling EFI Event
@@ -538,7 +525,6 @@ EmuBlockIoFlushBlocks (
return EFI_SUCCESS;
}
-
/**
Reset the block device hardware.
@@ -554,11 +540,11 @@ EmuBlockIoFlushBlocks (
**/
EFI_STATUS
EmuBlockIoReset (
- IN EMU_BLOCK_IO_PROTOCOL *This,
- IN BOOLEAN ExtendedVerification
+ IN EMU_BLOCK_IO_PROTOCOL *This,
+ IN BOOLEAN ExtendedVerification
)
{
- EMU_BLOCK_IO_PRIVATE *Private;
+ EMU_BLOCK_IO_PRIVATE *Private;
Private = EMU_BLOCK_IO_PRIVATE_DATA_FROM_THIS (This);
@@ -570,17 +556,16 @@ EmuBlockIoReset (
return EFI_SUCCESS;
}
-
char *
StdDupUnicodeToAscii (
- IN CHAR16 *Str
+ IN CHAR16 *Str
)
{
- UINTN Size;
- char *Ascii;
- char *Ptr;
+ UINTN Size;
+ char *Ascii;
+ char *Ptr;
- Size = StrLen (Str) + 1;
+ Size = StrLen (Str) + 1;
Ascii = malloc (Size);
if (Ascii == NULL) {
return NULL;
@@ -589,13 +574,13 @@ StdDupUnicodeToAscii (
for (Ptr = Ascii; *Str != '\0'; Ptr++, Str++) {
*Ptr = *Str;
}
+
*Ptr = 0;
return Ascii;
}
-
-EMU_BLOCK_IO_PROTOCOL gEmuBlockIoProtocol = {
+EMU_BLOCK_IO_PROTOCOL gEmuBlockIoProtocol = {
GasketEmuBlockIoReset,
GasketEmuBlockIoReadBlocks,
GasketEmuBlockIoWriteBlocks,
@@ -605,7 +590,7 @@ EMU_BLOCK_IO_PROTOCOL gEmuBlockIoProtocol = {
EFI_STATUS
EmuBlockIoThunkOpen (
- IN EMU_IO_THUNK_PROTOCOL *This
+ IN EMU_IO_THUNK_PROTOCOL *This
)
{
EMU_BLOCK_IO_PRIVATE *Private;
@@ -624,7 +609,6 @@ EmuBlockIoThunkOpen (
return EFI_OUT_OF_RESOURCES;
}
-
Private->Signature = EMU_BLOCK_IO_PRIVATE_SIGNATURE;
Private->Thunk = This;
CopyMem (&Private->EmuBlockIo, &gEmuBlockIoProtocol, sizeof (gEmuBlockIoProtocol));
@@ -642,12 +626,14 @@ EmuBlockIoThunkOpen (
Private->WriteProtected = FALSE;
} else {
for (*Str++ = '\0'; *Str != 0; Str++) {
- if (*Str == 'R' || *Str == 'F') {
- Private->RemovableMedia = (BOOLEAN) (*Str == 'R');
+ if ((*Str == 'R') || (*Str == 'F')) {
+ Private->RemovableMedia = (BOOLEAN)(*Str == 'R');
}
- if (*Str == 'O' || *Str == 'W') {
- Private->WriteProtected = (BOOLEAN) (*Str == 'O');
+
+ if ((*Str == 'O') || (*Str == 'W')) {
+ Private->WriteProtected = (BOOLEAN)(*Str == 'O');
}
+
if (*Str == ':') {
Private->BlockSize = strtol (++Str, NULL, 0);
break;
@@ -662,10 +648,9 @@ EmuBlockIoThunkOpen (
return EFI_SUCCESS;
}
-
EFI_STATUS
EmuBlockIoThunkClose (
- IN EMU_IO_THUNK_PROTOCOL *This
+ IN EMU_IO_THUNK_PROTOCOL *This
)
{
EMU_BLOCK_IO_PRIVATE *Private;
@@ -680,6 +665,7 @@ EmuBlockIoThunkClose (
if (Private->Filename != NULL) {
free (Private->Filename);
}
+
free (This->Private);
This->Private = NULL;
}
@@ -687,9 +673,7 @@ EmuBlockIoThunkClose (
return EFI_SUCCESS;
}
-
-
-EMU_IO_THUNK_PROTOCOL gBlockIoThunkIo = {
+EMU_IO_THUNK_PROTOCOL gBlockIoThunkIo = {
&gEmuBlockIoProtocolGuid,
NULL,
NULL,
diff --git a/EmulatorPkg/Unix/Host/EmuThunk.c b/EmulatorPkg/Unix/Host/EmuThunk.c
index b8b0651c6a..6422f056a6 100644
--- a/EmulatorPkg/Unix/Host/EmuThunk.c
+++ b/EmulatorPkg/Unix/Host/EmuThunk.c
@@ -18,43 +18,41 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include "Host.h"
#ifdef __APPLE__
-#define DebugAssert _Mangle__DebugAssert
+#define DebugAssert _Mangle__DebugAssert
-#include <assert.h>
-#include <CoreServices/CoreServices.h>
-#include <mach/mach.h>
-#include <mach/mach_time.h>
+ #include <assert.h>
+ #include <CoreServices/CoreServices.h>
+ #include <mach/mach.h>
+ #include <mach/mach_time.h>
-#undef DebugAssert
+ #undef DebugAssert
#endif
-int settimer_initialized;
-struct timeval settimer_timeval;
-UINTN settimer_callback = 0;
-
-BOOLEAN gEmulatorInterruptEnabled = FALSE;
+int settimer_initialized;
+struct timeval settimer_timeval;
+UINTN settimer_callback = 0;
+BOOLEAN gEmulatorInterruptEnabled = FALSE;
UINTN
SecWriteStdErr (
- IN UINT8 *Buffer,
- IN UINTN NumberOfBytes
+ IN UINT8 *Buffer,
+ IN UINTN NumberOfBytes
)
{
- ssize_t Return;
+ ssize_t Return;
Return = write (STDERR_FILENO, (const void *)Buffer, (size_t)NumberOfBytes);
return (Return == -1) ? 0 : Return;
}
-
EFI_STATUS
SecConfigStdIn (
VOID
)
{
- struct termios tty;
+ struct termios tty;
//
// Need to turn off line buffering, ECHO, and make it unbuffered.
@@ -63,7 +61,7 @@ SecConfigStdIn (
tty.c_lflag &= ~(ICANON | ECHO);
tcsetattr (STDIN_FILENO, TCSANOW, &tty);
-// setvbuf (STDIN_FILENO, NULL, _IONBF, 0);
+ // setvbuf (STDIN_FILENO, NULL, _IONBF, 0);
// now ioctl FIONREAD will do what we need
return EFI_SUCCESS;
@@ -71,11 +69,11 @@ SecConfigStdIn (
UINTN
SecWriteStdOut (
- IN UINT8 *Buffer,
- IN UINTN NumberOfBytes
+ IN UINT8 *Buffer,
+ IN UINTN NumberOfBytes
)
{
- ssize_t Return;
+ ssize_t Return;
Return = write (STDOUT_FILENO, (const void *)Buffer, (size_t)NumberOfBytes);
@@ -84,11 +82,11 @@ SecWriteStdOut (
UINTN
SecReadStdIn (
- IN UINT8 *Buffer,
- IN UINTN NumberOfBytes
+ IN UINT8 *Buffer,
+ IN UINTN NumberOfBytes
)
{
- ssize_t Return;
+ ssize_t Return;
Return = read (STDIN_FILENO, Buffer, (size_t)NumberOfBytes);
@@ -100,8 +98,8 @@ SecPollStdIn (
VOID
)
{
- int Result;
- int Bytes;
+ int Result;
+ int Bytes;
Result = ioctl (STDIN_FILENO, FIONREAD, &Bytes);
if (Result == -1) {
@@ -111,10 +109,9 @@ SecPollStdIn (
return (BOOLEAN)(Bytes > 0);
}
-
VOID *
SecMalloc (
- IN UINTN Size
+ IN UINTN Size
)
{
return malloc ((size_t)Size);
@@ -122,7 +119,7 @@ SecMalloc (
VOID *
SecValloc (
- IN UINTN Size
+ IN UINTN Size
)
{
return valloc ((size_t)Size);
@@ -130,7 +127,7 @@ SecValloc (
BOOLEAN
SecFree (
- IN VOID *Ptr
+ IN VOID *Ptr
)
{
if (EfiSystemMemoryRange (Ptr)) {
@@ -143,17 +140,18 @@ SecFree (
return TRUE;
}
-
void
-settimer_handler (int sig)
+settimer_handler (
+ int sig
+ )
{
- struct timeval timeval;
- UINT64 delta;
+ struct timeval timeval;
+ UINT64 delta;
gettimeofday (&timeval, NULL);
delta = ((UINT64)timeval.tv_sec * 1000) + (timeval.tv_usec / 1000)
- - ((UINT64)settimer_timeval.tv_sec * 1000)
- - (settimer_timeval.tv_usec / 1000);
+ - ((UINT64)settimer_timeval.tv_sec * 1000)
+ - (settimer_timeval.tv_usec / 1000);
settimer_timeval = timeval;
if (settimer_callback) {
@@ -167,37 +165,39 @@ SecSetTimer (
IN EMU_SET_TIMER_CALLBACK CallBack
)
{
- struct itimerval timerval;
- UINT32 remainder;
+ struct itimerval timerval;
+ UINT32 remainder;
if (!settimer_initialized) {
- struct sigaction act;
+ struct sigaction act;
settimer_initialized = 1;
- act.sa_handler = settimer_handler;
- act.sa_flags = 0;
+ act.sa_handler = settimer_handler;
+ act.sa_flags = 0;
sigemptyset (&act.sa_mask);
gEmulatorInterruptEnabled = TRUE;
if (sigaction (SIGALRM, &act, NULL) != 0) {
printf ("SetTimer: sigaction error %s\n", strerror (errno));
}
+
if (gettimeofday (&settimer_timeval, NULL) != 0) {
printf ("SetTimer: gettimeofday error %s\n", strerror (errno));
}
}
- timerval.it_value.tv_sec = DivU64x32(PeriodMs, 1000);
- DivU64x32Remainder(PeriodMs, 1000, &remainder);
+
+ timerval.it_value.tv_sec = DivU64x32 (PeriodMs, 1000);
+ DivU64x32Remainder (PeriodMs, 1000, &remainder);
timerval.it_value.tv_usec = remainder * 1000;
- timerval.it_value.tv_sec = DivU64x32(PeriodMs, 1000);
- timerval.it_interval = timerval.it_value;
+ timerval.it_value.tv_sec = DivU64x32 (PeriodMs, 1000);
+ timerval.it_interval = timerval.it_value;
if (setitimer (ITIMER_REAL, &timerval, NULL) != 0) {
printf ("SetTimer: setitimer error %s\n", strerror (errno));
}
+
settimer_callback = (UINTN)CallBack;
}
-
VOID
SecEnableInterrupt (
VOID
@@ -213,7 +213,6 @@ SecEnableInterrupt (
pthread_sigmask (SIG_UNBLOCK, &sigset, NULL);
}
-
VOID
SecDisableInterrupt (
VOID
@@ -229,14 +228,14 @@ SecDisableInterrupt (
gEmulatorInterruptEnabled = FALSE;
}
-
BOOLEAN
-SecInterruptEanbled (void)
+SecInterruptEanbled (
+ void
+ )
{
return gEmulatorInterruptEnabled;
}
-
UINT64
QueryPerformanceFrequency (
VOID
@@ -251,10 +250,9 @@ QueryPerformanceCounter (
VOID
)
{
-#if __APPLE__
- UINT64 Start;
- static mach_timebase_info_data_t sTimebaseInfo;
-
+ #if __APPLE__
+ UINT64 Start;
+ static mach_timebase_info_data_t sTimebaseInfo;
Start = mach_absolute_time ();
@@ -266,29 +264,27 @@ QueryPerformanceCounter (
// denominator is a fraction.
if ( sTimebaseInfo.denom == 0 ) {
- (void) mach_timebase_info(&sTimebaseInfo);
+ (void)mach_timebase_info (&sTimebaseInfo);
}
// Do the maths. We hope that the multiplication doesn't
// overflow; the price you pay for working in fixed point.
return (Start * sTimebaseInfo.numer) / sTimebaseInfo.denom;
-#else
+ #else
// Need to figure out what to do for Linux?
return 0;
-#endif
+ #endif
}
-
-
VOID
SecSleep (
- IN UINT64 Nanoseconds
+ IN UINT64 Nanoseconds
)
{
- struct timespec rq, rm;
- struct timeval start, end;
- unsigned long MicroSec;
+ struct timespec rq, rm;
+ struct timeval start, end;
+ unsigned long MicroSec;
rq.tv_sec = DivU64x32 (Nanoseconds, 1000000000);
rq.tv_nsec = ModU64x32 (Nanoseconds, 1000000000);
@@ -299,7 +295,7 @@ SecSleep (
//
gettimeofday (&start, NULL);
end.tv_sec = start.tv_sec + rq.tv_sec;
- MicroSec = (start.tv_usec + rq.tv_nsec/1000);
+ MicroSec = (start.tv_usec + rq.tv_nsec/1000);
end.tv_usec = MicroSec % 1000000;
if (MicroSec > 1000000) {
end.tv_sec++;
@@ -309,23 +305,26 @@ SecSleep (
if (errno != EINTR) {
break;
}
+
gettimeofday (&start, NULL);
if (start.tv_sec > end.tv_sec) {
break;
- } if ((start.tv_sec == end.tv_sec) && (start.tv_usec > end.tv_usec)) {
+ }
+
+ if ((start.tv_sec == end.tv_sec) && (start.tv_usec > end.tv_usec)) {
break;
}
+
rq = rm;
}
}
-
VOID
SecCpuSleep (
VOID
)
{
- struct timespec rq, rm;
+ struct timespec rq, rm;
// nanosleep gets interrupted by the timer tic
rq.tv_sec = 1;
@@ -334,51 +333,47 @@ SecCpuSleep (
nanosleep (&rq, &rm);
}
-
VOID
SecExit (
- UINTN Status
+ UINTN Status
)
{
exit (Status);
}
-
VOID
SecGetTime (
- OUT EFI_TIME *Time,
- OUT EFI_TIME_CAPABILITIES *Capabilities OPTIONAL
+ OUT EFI_TIME *Time,
+ OUT EFI_TIME_CAPABILITIES *Capabilities OPTIONAL
)
{
- struct tm *tm;
- time_t t;
+ struct tm *tm;
+ time_t t;
- t = time (NULL);
+ t = time (NULL);
tm = localtime (&t);
- Time->Year = 1900 + tm->tm_year;
- Time->Month = tm->tm_mon + 1;
- Time->Day = tm->tm_mday;
- Time->Hour = tm->tm_hour;
- Time->Minute = tm->tm_min;
- Time->Second = tm->tm_sec;
+ Time->Year = 1900 + tm->tm_year;
+ Time->Month = tm->tm_mon + 1;
+ Time->Day = tm->tm_mday;
+ Time->Hour = tm->tm_hour;
+ Time->Minute = tm->tm_min;
+ Time->Second = tm->tm_sec;
Time->Nanosecond = 0;
- Time->TimeZone = timezone / 60;
- Time->Daylight = (daylight ? EFI_TIME_ADJUST_DAYLIGHT : 0)
- | (tm->tm_isdst > 0 ? EFI_TIME_IN_DAYLIGHT : 0);
+ Time->TimeZone = timezone / 60;
+ Time->Daylight = (daylight ? EFI_TIME_ADJUST_DAYLIGHT : 0)
+ | (tm->tm_isdst > 0 ? EFI_TIME_IN_DAYLIGHT : 0);
if (Capabilities != NULL) {
- Capabilities->Resolution = 1;
- Capabilities->Accuracy = 50000000;
- Capabilities->SetsToZero = FALSE;
+ Capabilities->Resolution = 1;
+ Capabilities->Accuracy = 50000000;
+ Capabilities->SetsToZero = FALSE;
}
}
-
-
VOID
SecSetTime (
- IN EFI_TIME *Time
+ IN EFI_TIME *Time
)
{
// Don't change the time on the system
@@ -386,18 +381,16 @@ SecSetTime (
return;
}
-
EFI_STATUS
SecGetNextProtocol (
- IN BOOLEAN EmuBusDriver,
- OUT EMU_IO_THUNK_PROTOCOL **Instance OPTIONAL
+ IN BOOLEAN EmuBusDriver,
+ OUT EMU_IO_THUNK_PROTOCOL **Instance OPTIONAL
)
{
return GetNextThunkProtocol (EmuBusDriver, Instance);
}
-
-EMU_THUNK_PROTOCOL gEmuThunkProtocol = {
+EMU_THUNK_PROTOCOL gEmuThunkProtocol = {
GasketSecWriteStdErr,
GasketSecConfigStdIn,
GasketSecWriteStdOut,
@@ -422,7 +415,6 @@ EMU_THUNK_PROTOCOL gEmuThunkProtocol = {
GasketSecGetNextProtocol
};
-
VOID
SecInitThunkProtocol (
VOID
@@ -431,4 +423,3 @@ SecInitThunkProtocol (
// timezone and daylight lib globals depend on tzset be called 1st.
tzset ();
}
-
diff --git a/EmulatorPkg/Unix/Host/Gasket.h b/EmulatorPkg/Unix/Host/Gasket.h
index e082397d23..6dafc903cf 100644
--- a/EmulatorPkg/Unix/Host/Gasket.h
+++ b/EmulatorPkg/Unix/Host/Gasket.h
@@ -17,8 +17,8 @@
UINTN
EFIAPI
GasketSecWriteStdErr (
- IN UINT8 *Buffer,
- IN UINTN NumberOfBytes
+ IN UINT8 *Buffer,
+ IN UINTN NumberOfBytes
);
EFI_STATUS
@@ -30,15 +30,15 @@ GasketSecConfigStdIn (
UINTN
EFIAPI
GasketSecWriteStdOut (
- IN UINT8 *Buffer,
- IN UINTN NumberOfBytes
+ IN UINT8 *Buffer,
+ IN UINTN NumberOfBytes
);
UINTN
EFIAPI
GasketSecReadStdIn (
- IN UINT8 *Buffer,
- IN UINTN NumberOfBytes
+ IN UINT8 *Buffer,
+ IN UINTN NumberOfBytes
);
BOOLEAN
@@ -50,22 +50,21 @@ GasketSecPollStdIn (
VOID *
EFIAPI
GasketSecMalloc (
- IN UINTN Size
+ IN UINTN Size
);
VOID *
EFIAPI
GasketSecValloc (
- IN UINTN Size
+ IN UINTN Size
);
BOOLEAN
EFIAPI
GasketSecFree (
- IN VOID *Ptr
+ IN VOID *Ptr
);
-
RETURN_STATUS
EFIAPI
GasketSecPeCoffGetEntryPoint (
@@ -116,11 +115,10 @@ GasketQueryPerformanceCounter (
VOID
);
-
VOID
EFIAPI
GasketSecSleep (
- IN UINT64 Nanoseconds
+ IN UINT64 Nanoseconds
);
VOID
@@ -132,33 +130,31 @@ GasketSecCpuSleep (
VOID
EFIAPI
GasketSecExit (
- UINTN Status
+ UINTN Status
);
VOID
EFIAPI
GasketSecGetTime (
- OUT EFI_TIME *Time,
- OUT EFI_TIME_CAPABILITIES *Capabilities OPTIONAL
+ OUT EFI_TIME *Time,
+ OUT EFI_TIME_CAPABILITIES *Capabilities OPTIONAL
);
VOID
EFIAPI
GasketSecSetTime (
- IN EFI_TIME *Time
+ IN EFI_TIME *Time
);
EFI_STATUS
EFIAPI
GasketSecGetNextProtocol (
- IN BOOLEAN EmuBusDriver,
- OUT EMU_IO_THUNK_PROTOCOL **Instance OPTIONAL
+ IN BOOLEAN EmuBusDriver,
+ OUT EMU_IO_THUNK_PROTOCOL **Instance OPTIONAL
);
-
// PPIs produced by SEC
-
EFI_STATUS
EFIAPI
GasketSecUnixPeiAutoScan (
@@ -173,7 +169,6 @@ GasketSecEmuThunkAddress (
VOID
);
-
EFI_STATUS
EFIAPI
GasketSecUnixUnixFwhAddress (
@@ -181,55 +176,52 @@ GasketSecUnixUnixFwhAddress (
IN OUT EFI_PHYSICAL_ADDRESS *FwhBase
);
-
-
//
// Reverse (UNIX to EFIAPI) gaskets
//
typedef
void
-(EFIAPI *CALL_BACK) (
+(EFIAPI *CALL_BACK)(
UINT64 Delta
);
UINTN
ReverseGasketUint64 (
- UINTN CallBack,
- UINT64 a
+ UINTN CallBack,
+ UINT64 a
);
UINTN
ReverseGasketUint64Uint64 (
- VOID *CallBack,
- VOID *Context,
- VOID *Key
+ VOID *CallBack,
+ VOID *Context,
+ VOID *Key
);
//
// Gasket functions for EFI_EMU_UGA_IO_PROTOCOL
//
-
EFI_STATUS
EFIAPI
GasketX11Size (
- EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsWindowsIo,
- UINT32 Width,
- UINT32 Height
+ EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsWindowsIo,
+ UINT32 Width,
+ UINT32 Height
);
EFI_STATUS
EFIAPI
GasketX11CheckKey (
- EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsWindowsIo
+ EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsWindowsIo
);
EFI_STATUS
EFIAPI
GasketX11GetKey (
- EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsWindowsIo,
- EFI_KEY_DATA *key
+ EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsWindowsIo,
+ EFI_KEY_DATA *key
);
EFI_STATUS
@@ -242,45 +234,44 @@ GasketX11KeySetState (
EFI_STATUS
EFIAPI
GasketX11RegisterKeyNotify (
- IN EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsWindowsIo,
- IN EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK MakeCallBack,
- IN EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK BreakCallBack,
- IN VOID *Context
+ IN EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsWindowsIo,
+ IN EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK MakeCallBack,
+ IN EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK BreakCallBack,
+ IN VOID *Context
);
-
EFI_STATUS
EFIAPI
GasketX11Blt (
- IN EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsWindows,
- IN EFI_UGA_PIXEL *BltBuffer OPTIONAL,
- IN EFI_UGA_BLT_OPERATION BltOperation,
- IN EMU_GRAPHICS_WINDOWS__BLT_ARGS *Args
+ IN EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsWindows,
+ IN EFI_UGA_PIXEL *BltBuffer OPTIONAL,
+ IN EFI_UGA_BLT_OPERATION BltOperation,
+ IN EMU_GRAPHICS_WINDOWS__BLT_ARGS *Args
);
EFI_STATUS
EFIAPI
GasketX11CheckPointer (
- EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsWindowsIo
+ EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsWindowsIo
);
EFI_STATUS
EFIAPI
GasketX11GetPointerState (
- EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsWindowsIo,
- EFI_SIMPLE_POINTER_STATE *state
+ EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsWindowsIo,
+ EFI_SIMPLE_POINTER_STATE *state
);
EFI_STATUS
EFIAPI
GasketX11GraphicsWindowOpen (
- IN EMU_IO_THUNK_PROTOCOL *This
+ IN EMU_IO_THUNK_PROTOCOL *This
);
EFI_STATUS
EFIAPI
GasketX11GraphicsWindowClose (
- IN EMU_IO_THUNK_PROTOCOL *This
+ IN EMU_IO_THUNK_PROTOCOL *This
);
// Pthreads
@@ -288,55 +279,48 @@ GasketX11GraphicsWindowClose (
UINTN
EFIAPI
GasketPthreadMutexLock (
- IN VOID *Mutex
+ IN VOID *Mutex
);
-
-
UINTN
EFIAPI
GasketPthreadMutexUnLock (
- IN VOID *Mutex
+ IN VOID *Mutex
);
-
UINTN
EFIAPI
GasketPthreadMutexTryLock (
- IN VOID *Mutex
+ IN VOID *Mutex
);
-
VOID *
EFIAPI
GasketPthreadMutexInit (
IN VOID
);
-
UINTN
EFIAPI
GasketPthreadMutexDestroy (
- IN VOID *Mutex
+ IN VOID *Mutex
);
-
UINTN
EFIAPI
GasketPthreadCreate (
- IN VOID *Thread,
- IN VOID *Attribute,
- IN THREAD_THUNK_THREAD_ENTRY Start,
- IN VOID *Context
+ IN VOID *Thread,
+ IN VOID *Attribute,
+ IN THREAD_THUNK_THREAD_ENTRY Start,
+ IN VOID *Context
);
VOID
EFIAPI
GasketPthreadExit (
- IN VOID *ValuePtr
+ IN VOID *ValuePtr
);
-
UINTN
EFIAPI
GasketPthreadSelf (
@@ -346,33 +330,32 @@ GasketPthreadSelf (
EFI_STATUS
EFIAPI
GasketPthreadOpen (
- IN EMU_IO_THUNK_PROTOCOL *This
+ IN EMU_IO_THUNK_PROTOCOL *This
);
EFI_STATUS
EFIAPI
GasketPthreadClose (
- IN EMU_IO_THUNK_PROTOCOL *This
+ IN EMU_IO_THUNK_PROTOCOL *This
);
-
// PosixFileSystem
EFI_STATUS
EFIAPI
GasketPosixOpenVolume (
- IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *This,
- OUT EFI_FILE_PROTOCOL **Root
+ IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *This,
+ OUT EFI_FILE_PROTOCOL **Root
);
EFI_STATUS
EFIAPI
GasketPosixFileOpen (
- IN EFI_FILE_PROTOCOL *This,
- OUT EFI_FILE_PROTOCOL **NewHandle,
- IN CHAR16 *FileName,
- IN UINT64 OpenMode,
- IN UINT64 Attributes
+ IN EFI_FILE_PROTOCOL *This,
+ OUT EFI_FILE_PROTOCOL **NewHandle,
+ IN CHAR16 *FileName,
+ IN UINT64 OpenMode,
+ IN UINT64 Attributes
);
EFI_STATUS
@@ -390,49 +373,49 @@ GasketPosixFileDelete (
EFI_STATUS
EFIAPI
GasketPosixFileRead (
- IN EFI_FILE_PROTOCOL *This,
- IN OUT UINTN *BufferSize,
- OUT VOID *Buffer
+ IN EFI_FILE_PROTOCOL *This,
+ IN OUT UINTN *BufferSize,
+ OUT VOID *Buffer
);
EFI_STATUS
EFIAPI
GasketPosixFileWrite (
- IN EFI_FILE_PROTOCOL *This,
- IN OUT UINTN *BufferSize,
- IN VOID *Buffer
+ IN EFI_FILE_PROTOCOL *This,
+ IN OUT UINTN *BufferSize,
+ IN VOID *Buffer
);
EFI_STATUS
EFIAPI
GasketPosixFileSetPossition (
- IN EFI_FILE_PROTOCOL *This,
- IN UINT64 Position
+ IN EFI_FILE_PROTOCOL *This,
+ IN UINT64 Position
);
EFI_STATUS
EFIAPI
GasketPosixFileGetPossition (
- IN EFI_FILE_PROTOCOL *This,
- OUT UINT64 *Position
+ IN EFI_FILE_PROTOCOL *This,
+ OUT UINT64 *Position
);
EFI_STATUS
EFIAPI
GasketPosixFileGetInfo (
- IN EFI_FILE_PROTOCOL *This,
- IN EFI_GUID *InformationType,
- IN OUT UINTN *BufferSize,
- OUT VOID *Buffer
+ IN EFI_FILE_PROTOCOL *This,
+ IN EFI_GUID *InformationType,
+ IN OUT UINTN *BufferSize,
+ OUT VOID *Buffer
);
EFI_STATUS
EFIAPI
GasketPosixFileSetInfo (
- IN EFI_FILE_PROTOCOL *This,
- IN EFI_GUID *InformationType,
- IN UINTN BufferSize,
- IN VOID *Buffer
+ IN EFI_FILE_PROTOCOL *This,
+ IN EFI_GUID *InformationType,
+ IN UINTN BufferSize,
+ IN VOID *Buffer
);
EFI_STATUS
@@ -444,20 +427,20 @@ GasketPosixFileFlush (
EFI_STATUS
EFIAPI
GasketPosixFileSystmeThunkOpen (
- IN EMU_IO_THUNK_PROTOCOL *This
+ IN EMU_IO_THUNK_PROTOCOL *This
);
EFI_STATUS
EFIAPI
GasketPosixFileSystmeThunkClose (
- IN EMU_IO_THUNK_PROTOCOL *This
+ IN EMU_IO_THUNK_PROTOCOL *This
);
EFI_STATUS
EFIAPI
GasketEmuBlockIoReset (
- IN EMU_BLOCK_IO_PROTOCOL *This,
- IN BOOLEAN ExtendedVerification
+ IN EMU_BLOCK_IO_PROTOCOL *This,
+ IN BOOLEAN ExtendedVerification
);
EFI_STATUS
@@ -468,7 +451,7 @@ GasketEmuBlockIoReadBlocks (
IN EFI_LBA LBA,
IN OUT EFI_BLOCK_IO2_TOKEN *Token,
IN UINTN BufferSize,
- OUT VOID *Buffer
+ OUT VOID *Buffer
);
EFI_STATUS
@@ -485,39 +468,39 @@ GasketEmuBlockIoWriteBlocks (
EFI_STATUS
EFIAPI
GasketEmuBlockIoFlushBlocks (
- IN EMU_BLOCK_IO_PROTOCOL *This,
- IN OUT EFI_BLOCK_IO2_TOKEN *Token
+ IN EMU_BLOCK_IO_PROTOCOL *This,
+ IN OUT EFI_BLOCK_IO2_TOKEN *Token
);
EFI_STATUS
EFIAPI
GasketEmuBlockIoCreateMapping (
- IN EMU_BLOCK_IO_PROTOCOL *This,
- IN EFI_BLOCK_IO_MEDIA *Media
+ IN EMU_BLOCK_IO_PROTOCOL *This,
+ IN EFI_BLOCK_IO_MEDIA *Media
);
EFI_STATUS
EFIAPI
GasketBlockIoThunkOpen (
- IN EMU_IO_THUNK_PROTOCOL *This
+ IN EMU_IO_THUNK_PROTOCOL *This
);
EFI_STATUS
EFIAPI
GasketBlockIoThunkClose (
- IN EMU_IO_THUNK_PROTOCOL *This
+ IN EMU_IO_THUNK_PROTOCOL *This
);
EFI_STATUS
EFIAPI
GasketSnpThunkOpen (
- IN EMU_IO_THUNK_PROTOCOL *This
+ IN EMU_IO_THUNK_PROTOCOL *This
);
EFI_STATUS
EFIAPI
GasketSnpThunkClose (
- IN EMU_IO_THUNK_PROTOCOL *This
+ IN EMU_IO_THUNK_PROTOCOL *This
);
EFI_STATUS
@@ -542,16 +525,16 @@ GasketSnpStop (
EFI_STATUS
EFIAPI
GasketSnpInitialize (
- IN EMU_SNP_PROTOCOL *This,
- IN UINTN ExtraRxBufferSize OPTIONAL,
- IN UINTN ExtraTxBufferSize OPTIONAL
+ IN EMU_SNP_PROTOCOL *This,
+ IN UINTN ExtraRxBufferSize OPTIONAL,
+ IN UINTN ExtraTxBufferSize OPTIONAL
);
EFI_STATUS
EFIAPI
GasketSnpReset (
- IN EMU_SNP_PROTOCOL *This,
- IN BOOLEAN ExtendedVerification
+ IN EMU_SNP_PROTOCOL *This,
+ IN BOOLEAN ExtendedVerification
);
EFI_STATUS
@@ -563,83 +546,80 @@ GasketSnpShutdown (
EFI_STATUS
EFIAPI
GasketSnpReceiveFilters (
- IN EMU_SNP_PROTOCOL *This,
- IN UINT32 Enable,
- IN UINT32 Disable,
- IN BOOLEAN ResetMCastFilter,
- IN UINTN MCastFilterCnt OPTIONAL,
- IN EFI_MAC_ADDRESS *MCastFilter OPTIONAL
+ IN EMU_SNP_PROTOCOL *This,
+ IN UINT32 Enable,
+ IN UINT32 Disable,
+ IN BOOLEAN ResetMCastFilter,
+ IN UINTN MCastFilterCnt OPTIONAL,
+ IN EFI_MAC_ADDRESS *MCastFilter OPTIONAL
);
EFI_STATUS
EFIAPI
GasketSnpStationAddress (
- IN EMU_SNP_PROTOCOL *This,
- IN BOOLEAN Reset,
- IN EFI_MAC_ADDRESS *New OPTIONAL
+ IN EMU_SNP_PROTOCOL *This,
+ IN BOOLEAN Reset,
+ IN EFI_MAC_ADDRESS *New OPTIONAL
);
EFI_STATUS
EFIAPI
GasketSnpStatistics (
- IN EMU_SNP_PROTOCOL *This,
- IN BOOLEAN Reset,
- IN OUT UINTN *StatisticsSize OPTIONAL,
- OUT EFI_NETWORK_STATISTICS *StatisticsTable OPTIONAL
+ IN EMU_SNP_PROTOCOL *This,
+ IN BOOLEAN Reset,
+ IN OUT UINTN *StatisticsSize OPTIONAL,
+ OUT EFI_NETWORK_STATISTICS *StatisticsTable OPTIONAL
);
EFI_STATUS
EFIAPI
GasketSnpMCastIpToMac (
- IN EMU_SNP_PROTOCOL *This,
- IN BOOLEAN IPv6,
- IN EFI_IP_ADDRESS *IP,
- OUT EFI_MAC_ADDRESS *MAC
+ IN EMU_SNP_PROTOCOL *This,
+ IN BOOLEAN IPv6,
+ IN EFI_IP_ADDRESS *IP,
+ OUT EFI_MAC_ADDRESS *MAC
);
EFI_STATUS
EFIAPI
GasketSnpNvData (
- IN EMU_SNP_PROTOCOL *This,
- IN BOOLEAN ReadWrite,
- IN UINTN Offset,
- IN UINTN BufferSize,
- IN OUT VOID *Buffer
+ IN EMU_SNP_PROTOCOL *This,
+ IN BOOLEAN ReadWrite,
+ IN UINTN Offset,
+ IN UINTN BufferSize,
+ IN OUT VOID *Buffer
);
EFI_STATUS
EFIAPI
GasketSnpGetStatus (
- IN EMU_SNP_PROTOCOL *This,
- OUT UINT32 *InterruptStatus OPTIONAL,
- OUT VOID **TxBuf OPTIONAL
+ IN EMU_SNP_PROTOCOL *This,
+ OUT UINT32 *InterruptStatus OPTIONAL,
+ OUT VOID **TxBuf OPTIONAL
);
EFI_STATUS
EFIAPI
GasketSnpTransmit (
- IN EMU_SNP_PROTOCOL *This,
- IN UINTN HeaderSize,
- IN UINTN BufferSize,
- IN VOID *Buffer,
- IN EFI_MAC_ADDRESS *SrcAddr OPTIONAL,
- IN EFI_MAC_ADDRESS *DestAddr OPTIONAL,
- IN UINT16 *Protocol OPTIONAL
+ IN EMU_SNP_PROTOCOL *This,
+ IN UINTN HeaderSize,
+ IN UINTN BufferSize,
+ IN VOID *Buffer,
+ IN EFI_MAC_ADDRESS *SrcAddr OPTIONAL,
+ IN EFI_MAC_ADDRESS *DestAddr OPTIONAL,
+ IN UINT16 *Protocol OPTIONAL
);
EFI_STATUS
EFIAPI
GasketSnpReceive (
- IN EMU_SNP_PROTOCOL *This,
- OUT UINTN *HeaderSize OPTIONAL,
- IN OUT UINTN *BufferSize,
- OUT VOID *Buffer,
- OUT EFI_MAC_ADDRESS *SrcAddr OPTIONAL,
- OUT EFI_MAC_ADDRESS *DestAddr OPTIONAL,
- OUT UINT16 *Protocol OPTIONAL
+ IN EMU_SNP_PROTOCOL *This,
+ OUT UINTN *HeaderSize OPTIONAL,
+ IN OUT UINTN *BufferSize,
+ OUT VOID *Buffer,
+ OUT EFI_MAC_ADDRESS *SrcAddr OPTIONAL,
+ OUT EFI_MAC_ADDRESS *DestAddr OPTIONAL,
+ OUT UINT16 *Protocol OPTIONAL
);
-
#endif
-
-
diff --git a/EmulatorPkg/Unix/Host/Host.c b/EmulatorPkg/Unix/Host/Host.c
index b4e5510613..38c01c84af 100644
--- a/EmulatorPkg/Unix/Host/Host.c
+++ b/EmulatorPkg/Unix/Host/Host.c
@@ -9,23 +9,21 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include "Host.h"
#ifdef __APPLE__
-#define MAP_ANONYMOUS MAP_ANON
+#define MAP_ANONYMOUS MAP_ANON
#endif
-
//
// Globals
//
-EMU_THUNK_PPI mSecEmuThunkPpi = {
+EMU_THUNK_PPI mSecEmuThunkPpi = {
GasketSecUnixPeiAutoScan,
GasketSecUnixFdAddress,
GasketSecEmuThunkAddress
};
-char *gGdbWorkingFileName = NULL;
-unsigned int mScriptSymbolChangesCount = 0;
-
+char *gGdbWorkingFileName = NULL;
+unsigned int mScriptSymbolChangesCount = 0;
//
// Default information about where the FD is located.
@@ -34,8 +32,8 @@ unsigned int mScriptSymbolChangesCount = 0;
// The number of array elements is allocated base on parsing
// EFI_FIRMWARE_VOLUMES and the memory is never freed.
//
-UINTN gFdInfoCount = 0;
-EMU_FD_INFO *gFdInfo;
+UINTN gFdInfoCount = 0;
+EMU_FD_INFO *gFdInfo;
//
// Array that supports separate memory ranges.
@@ -46,16 +44,12 @@ EMU_FD_INFO *gFdInfo;
UINTN gSystemMemoryCount = 0;
EMU_SYSTEM_MEMORY *gSystemMemory;
-
-
UINTN mImageContextModHandleArraySize = 0;
-IMAGE_CONTEXT_TO_MOD_HANDLE *mImageContextModHandleArray = NULL;
+IMAGE_CONTEXT_TO_MOD_HANDLE *mImageContextModHandleArray = NULL;
EFI_PEI_PPI_DESCRIPTOR *gPpiList;
-
-int gInXcode = 0;
-
+int gInXcode = 0;
/*++
Breakpoint target for Xcode project. Set in the Xcode XML
@@ -71,8 +65,6 @@ SecGdbConfigBreak (
{
}
-
-
/*++
Routine Description:
@@ -121,8 +113,8 @@ main (
// If dlopen doesn't work, then we build a gdb script to allow the
// symbols to be loaded.
//
- Index = strlen (*Argv);
- gGdbWorkingFileName = AllocatePool (Index + strlen(".gdb") + 1);
+ Index = strlen (*Argv);
+ gGdbWorkingFileName = AllocatePool (Index + strlen (".gdb") + 1);
strcpy (gGdbWorkingFileName, *Argv);
strcat (gGdbWorkingFileName, ".gdb");
@@ -139,8 +131,8 @@ main (
setbuf (stdout, 0);
setbuf (stderr, 0);
- MemorySizeStr = (CHAR16 *) PcdGetPtr (PcdEmuMemorySize);
- FirmwareVolumesStr = (CHAR16 *) PcdGetPtr (PcdEmuFirmwareVolume);
+ MemorySizeStr = (CHAR16 *)PcdGetPtr (PcdEmuMemorySize);
+ FirmwareVolumesStr = (CHAR16 *)PcdGetPtr (PcdEmuFirmwareVolume);
//
// PPIs pased into PEI_CORE
@@ -169,17 +161,18 @@ main (
//
// Allocate space for gSystemMemory Array
//
- gSystemMemoryCount = CountSeparatorsInString (MemorySizeStr, '!') + 1;
- gSystemMemory = AllocateZeroPool (gSystemMemoryCount * sizeof (EMU_SYSTEM_MEMORY));
+ gSystemMemoryCount = CountSeparatorsInString (MemorySizeStr, '!') + 1;
+ gSystemMemory = AllocateZeroPool (gSystemMemoryCount * sizeof (EMU_SYSTEM_MEMORY));
if (gSystemMemory == NULL) {
printf ("ERROR : Can not allocate memory for system. Exiting.\n");
exit (1);
}
+
//
// Allocate space for gSystemMemory Array
//
- gFdInfoCount = CountSeparatorsInString (FirmwareVolumesStr, '!') + 1;
- gFdInfo = AllocateZeroPool (gFdInfoCount * sizeof (EMU_FD_INFO));
+ gFdInfoCount = CountSeparatorsInString (FirmwareVolumesStr, '!') + 1;
+ gFdInfo = AllocateZeroPool (gFdInfoCount * sizeof (EMU_FD_INFO));
if (gFdInfo == NULL) {
printf ("ERROR : Can not allocate memory for fd info. Exiting.\n");
exit (1);
@@ -192,31 +185,35 @@ main (
// on a real platform this would be SRAM, or using the cache as RAM.
// Set InitialStackMemory to zero so UnixOpenFile will allocate a new mapping
//
- InitialStackMemorySize = STACK_SIZE;
- InitialStackMemory = (UINTN)MapMemory (
- 0, (UINT32) InitialStackMemorySize,
- PROT_READ | PROT_WRITE | PROT_EXEC, MAP_ANONYMOUS | MAP_PRIVATE
- );
+ InitialStackMemorySize = STACK_SIZE;
+ InitialStackMemory = (UINTN)MapMemory (
+ 0,
+ (UINT32)InitialStackMemorySize,
+ PROT_READ | PROT_WRITE | PROT_EXEC,
+ MAP_ANONYMOUS | MAP_PRIVATE
+ );
if (InitialStackMemory == 0) {
printf ("ERROR : Can not open SecStack Exiting\n");
exit (1);
}
- printf (" OS Emulator passing in %u KB of temp RAM at 0x%08lx to SEC\n",
+ printf (
+ " OS Emulator passing in %u KB of temp RAM at 0x%08lx to SEC\n",
(unsigned int)(InitialStackMemorySize / 1024),
(unsigned long)InitialStackMemory
);
- for (StackPointer = (UINTN*) (UINTN) InitialStackMemory;
- StackPointer < (UINTN*)(UINTN)((UINTN) InitialStackMemory + (UINT64) InitialStackMemorySize);
- StackPointer ++) {
+ for (StackPointer = (UINTN *)(UINTN)InitialStackMemory;
+ StackPointer < (UINTN *)(UINTN)((UINTN)InitialStackMemory + (UINT64)InitialStackMemorySize);
+ StackPointer++)
+ {
*StackPointer = 0x5AA55AA5;
}
//
// Open All the firmware volumes and remember the info in the gFdInfo global
//
- FileName = (CHAR8 *) AllocatePool (StrLen (FirmwareVolumesStr) + 1);
+ FileName = (CHAR8 *)AllocatePool (StrLen (FirmwareVolumesStr) + 1);
if (FileName == NULL) {
printf ("ERROR : Can not allocate memory for firmware volume string\n");
exit (1);
@@ -225,39 +222,43 @@ main (
Index2 = 0;
for (Done = FALSE, Index = 0, PeiIndex = 0, SecFile = NULL;
FirmwareVolumesStr[Index2] != 0;
- Index++) {
+ Index++)
+ {
for (Index1 = 0; (FirmwareVolumesStr[Index2] != '!') && (FirmwareVolumesStr[Index2] != 0); Index2++) {
FileName[Index1++] = FirmwareVolumesStr[Index2];
}
+
if (FirmwareVolumesStr[Index2] == '!') {
Index2++;
}
- FileName[Index1] = '\0';
+
+ FileName[Index1] = '\0';
if (Index == 0) {
// Map FV Recovery Read Only and other areas Read/Write
Status = MapFd0 (
- FileName,
- &gFdInfo[0].Address,
- &gFdInfo[0].Size
- );
+ FileName,
+ &gFdInfo[0].Address,
+ &gFdInfo[0].Size
+ );
} else {
//
// Open the FD and remember where it got mapped into our processes address space
// Maps Read Only
//
Status = MapFile (
- FileName,
- &gFdInfo[Index].Address,
- &gFdInfo[Index].Size
- );
+ FileName,
+ &gFdInfo[Index].Address,
+ &gFdInfo[Index].Size
+ );
}
+
if (EFI_ERROR (Status)) {
printf ("ERROR : Can not open Firmware Device File %s (%x). Exiting.\n", FileName, (unsigned int)Status);
exit (1);
}
- printf (" FD loaded from %s at 0x%08lx",FileName, (unsigned long)gFdInfo[Index].Address);
+ printf (" FD loaded from %s at 0x%08lx", FileName, (unsigned long)gFdInfo[Index].Address);
if (SecFile == NULL) {
//
@@ -265,11 +266,11 @@ main (
// Load the first one we find.
//
FileHandle = NULL;
- Status = PeiServicesFfsFindNextFile (
- EFI_FV_FILETYPE_SECURITY_CORE,
- (EFI_PEI_FV_HANDLE)(UINTN)gFdInfo[Index].Address,
- &FileHandle
- );
+ Status = PeiServicesFfsFindNextFile (
+ EFI_FV_FILETYPE_SECURITY_CORE,
+ (EFI_PEI_FV_HANDLE)(UINTN)gFdInfo[Index].Address,
+ &FileHandle
+ );
if (!EFI_ERROR (Status)) {
Status = PeiServicesFfsFindSectionData (EFI_SECTION_PE32, FileHandle, &SecFile);
if (!EFI_ERROR (Status)) {
@@ -293,9 +294,9 @@ main (
// map this memory into the SEC process memory space.
//
Index1 = 0;
- Index = 0;
+ Index = 0;
while (1) {
- UINTN val = 0;
+ UINTN val = 0;
//
// Save the size of the memory.
//
@@ -303,10 +304,12 @@ main (
val = val * 10 + MemorySizeStr[Index1] - '0';
Index1++;
}
+
gSystemMemory[Index++].Size = val * 0x100000;
if (MemorySizeStr[Index1] == 0) {
break;
}
+
Index1++;
}
@@ -315,7 +318,7 @@ main (
//
// Hand off to SEC
//
- SecLoadFromCore ((UINTN) InitialStackMemory, (UINTN) InitialStackMemorySize, (UINTN) gFdInfo[0].Address, SecFile);
+ SecLoadFromCore ((UINTN)InitialStackMemory, (UINTN)InitialStackMemorySize, (UINTN)gFdInfo[0].Address, SecFile);
//
// If we get here, then the SEC Core returned. This is an error as SEC should
@@ -325,40 +328,40 @@ main (
exit (1);
}
-
EFI_PHYSICAL_ADDRESS *
MapMemory (
- IN INTN fd,
- IN UINT64 length,
- IN INTN prot,
- IN INTN flags
+ IN INTN fd,
+ IN UINT64 length,
+ IN INTN prot,
+ IN INTN flags
)
{
- STATIC UINTN base = 0x40000000;
- CONST UINTN align = (1 << 24);
- VOID *res = NULL;
- BOOLEAN isAligned = 0;
+ STATIC UINTN base = 0x40000000;
+ CONST UINTN align = (1 << 24);
+ VOID *res = NULL;
+ BOOLEAN isAligned = 0;
//
// Try to get an aligned block somewhere in the address space of this
// process.
//
- while((!isAligned) && (base != 0)) {
+ while ((!isAligned) && (base != 0)) {
res = mmap ((void *)base, length, prot, flags, fd, 0);
if (res == MAP_FAILED) {
return NULL;
}
+
if ((((UINTN)res) & ~(align-1)) == (UINTN)res) {
- isAligned=1;
+ isAligned = 1;
} else {
- munmap(res, length);
+ munmap (res, length);
base += align;
}
}
+
return res;
}
-
/*++
Routine Description:
@@ -389,16 +392,16 @@ MapFile (
OUT UINT64 *Length
)
{
- int fd;
- VOID *res;
- UINTN FileSize;
+ int fd;
+ VOID *res;
+ UINTN FileSize;
fd = open (FileName, O_RDWR);
if (fd < 0) {
return EFI_NOT_FOUND;
}
- FileSize = lseek (fd, 0, SEEK_END);
+ FileSize = lseek (fd, 0, SEEK_END);
res = MapMemory (fd, FileSize, PROT_READ | PROT_EXEC, MAP_PRIVATE);
@@ -409,8 +412,8 @@ MapFile (
return EFI_DEVICE_ERROR;
}
- *Length = (UINT64) FileSize;
- *BaseAddress = (EFI_PHYSICAL_ADDRESS) (UINTN) res;
+ *Length = (UINT64)FileSize;
+ *BaseAddress = (EFI_PHYSICAL_ADDRESS)(UINTN)res;
return EFI_SUCCESS;
}
@@ -422,16 +425,17 @@ MapFd0 (
OUT UINT64 *Length
)
{
- int fd;
- void *res, *res2, *res3;
- UINTN FileSize;
- UINTN FvSize;
- void *EmuMagicPage;
+ int fd;
+ void *res, *res2, *res3;
+ UINTN FileSize;
+ UINTN FvSize;
+ void *EmuMagicPage;
fd = open (FileName, O_RDWR);
if (fd < 0) {
return EFI_NOT_FOUND;
}
+
FileSize = lseek (fd, 0, SEEK_END);
FvSize = FixedPcdGet64 (PcdEmuFlashFvRecoverySize);
@@ -469,13 +473,13 @@ MapFd0 (
// Map the rest of the FD as read/write
res2 = mmap (
- (void *)(UINTN)(FixedPcdGet64 (PcdEmuFlashFvRecoveryBase) + FvSize),
- FileSize - FvSize,
- PROT_READ | PROT_WRITE | PROT_EXEC,
- MAP_SHARED,
- fd,
- FvSize
- );
+ (void *)(UINTN)(FixedPcdGet64 (PcdEmuFlashFvRecoveryBase) + FvSize),
+ FileSize - FvSize,
+ PROT_READ | PROT_WRITE | PROT_EXEC,
+ MAP_SHARED,
+ fd,
+ FvSize
+ );
close (fd);
if (res2 == MAP_FAILED) {
perror ("MapFd0() Failed res2 =");
@@ -504,13 +508,12 @@ MapFd0 (
}
}
- *Length = (UINT64) FileSize;
- *BaseAddress = (EFI_PHYSICAL_ADDRESS) (UINTN) res;
+ *Length = (UINT64)FileSize;
+ *BaseAddress = (EFI_PHYSICAL_ADDRESS)(UINTN)res;
return EFI_SUCCESS;
}
-
/*++
Routine Description:
@@ -528,24 +531,24 @@ Returns:
**/
VOID
SecLoadFromCore (
- IN UINTN LargestRegion,
- IN UINTN LargestRegionSize,
- IN UINTN BootFirmwareVolumeBase,
- IN VOID *PeiCorePe32File
+ IN UINTN LargestRegion,
+ IN UINTN LargestRegionSize,
+ IN UINTN BootFirmwareVolumeBase,
+ IN VOID *PeiCorePe32File
)
{
- EFI_STATUS Status;
- EFI_PHYSICAL_ADDRESS TopOfMemory;
- VOID *TopOfStack;
- EFI_PHYSICAL_ADDRESS PeiCoreEntryPoint;
- EFI_SEC_PEI_HAND_OFF *SecCoreData;
- UINTN PeiStackSize;
+ EFI_STATUS Status;
+ EFI_PHYSICAL_ADDRESS TopOfMemory;
+ VOID *TopOfStack;
+ EFI_PHYSICAL_ADDRESS PeiCoreEntryPoint;
+ EFI_SEC_PEI_HAND_OFF *SecCoreData;
+ UINTN PeiStackSize;
//
// Compute Top Of Memory for Stack and PEI Core Allocations
//
TopOfMemory = LargestRegion + LargestRegionSize;
- PeiStackSize = (UINTN)RShiftU64((UINT64)STACK_SIZE,1);
+ PeiStackSize = (UINTN)RShiftU64 ((UINT64)STACK_SIZE, 1);
//
// |-----------| <---- TemporaryRamBase + TemporaryRamSize
@@ -562,22 +565,21 @@ SecLoadFromCore (
//
// Reservet space for storing PeiCore's parament in stack.
//
- TopOfStack = (VOID *)((UINTN)TopOfStack - sizeof (EFI_SEC_PEI_HAND_OFF) - CPU_STACK_ALIGNMENT);
- TopOfStack = ALIGN_POINTER (TopOfStack, CPU_STACK_ALIGNMENT);
-
+ TopOfStack = (VOID *)((UINTN)TopOfStack - sizeof (EFI_SEC_PEI_HAND_OFF) - CPU_STACK_ALIGNMENT);
+ TopOfStack = ALIGN_POINTER (TopOfStack, CPU_STACK_ALIGNMENT);
//
// Bind this information into the SEC hand-off state
//
- SecCoreData = (EFI_SEC_PEI_HAND_OFF*)(UINTN) TopOfStack;
- SecCoreData->DataSize = sizeof(EFI_SEC_PEI_HAND_OFF);
- SecCoreData->BootFirmwareVolumeBase = (VOID*)BootFirmwareVolumeBase;
+ SecCoreData = (EFI_SEC_PEI_HAND_OFF *)(UINTN)TopOfStack;
+ SecCoreData->DataSize = sizeof (EFI_SEC_PEI_HAND_OFF);
+ SecCoreData->BootFirmwareVolumeBase = (VOID *)BootFirmwareVolumeBase;
SecCoreData->BootFirmwareVolumeSize = PcdGet32 (PcdEmuFirmwareFdSize);
- SecCoreData->TemporaryRamBase = (VOID*)(UINTN)LargestRegion;
+ SecCoreData->TemporaryRamBase = (VOID *)(UINTN)LargestRegion;
SecCoreData->TemporaryRamSize = STACK_SIZE;
SecCoreData->StackBase = SecCoreData->TemporaryRamBase;
SecCoreData->StackSize = PeiStackSize;
- SecCoreData->PeiTemporaryRamBase = (VOID*) ((UINTN) SecCoreData->TemporaryRamBase + PeiStackSize);
+ SecCoreData->PeiTemporaryRamBase = (VOID *)((UINTN)SecCoreData->TemporaryRamBase + PeiStackSize);
SecCoreData->PeiTemporaryRamSize = STACK_SIZE - PeiStackSize;
//
@@ -585,14 +587,14 @@ SecLoadFromCore (
//
Status = SecPeCoffGetEntryPoint (PeiCorePe32File, (VOID **)&PeiCoreEntryPoint);
if (EFI_ERROR (Status)) {
- return ;
+ return;
}
//
// Transfer control to the SEC Core
//
PeiSwitchStacks (
- (SWITCH_STACK_ENTRY_POINT) (UINTN) PeiCoreEntryPoint,
+ (SWITCH_STACK_ENTRY_POINT)(UINTN)PeiCoreEntryPoint,
SecCoreData,
(VOID *)gPpiList,
TopOfStack
@@ -600,10 +602,9 @@ SecLoadFromCore (
//
// If we get here, then the SEC Core returned. This is an error
//
- return ;
+ return;
}
-
/*++
Routine Description:
@@ -631,29 +632,30 @@ SecUnixPeiAutoScan (
OUT UINT64 *MemorySize
)
{
- void *res;
+ void *res;
if (Index >= gSystemMemoryCount) {
return EFI_UNSUPPORTED;
}
*MemoryBase = 0;
- res = MapMemory (
- 0, gSystemMemory[Index].Size,
- PROT_READ | PROT_WRITE | PROT_EXEC,
- MAP_PRIVATE | MAP_ANONYMOUS
- );
+ res = MapMemory (
+ 0,
+ gSystemMemory[Index].Size,
+ PROT_READ | PROT_WRITE | PROT_EXEC,
+ MAP_PRIVATE | MAP_ANONYMOUS
+ );
if (res == MAP_FAILED) {
return EFI_DEVICE_ERROR;
}
- *MemorySize = gSystemMemory[Index].Size;
- *MemoryBase = (UINTN)res;
+
+ *MemorySize = gSystemMemory[Index].Size;
+ *MemoryBase = (UINTN)res;
gSystemMemory[Index].Memory = *MemoryBase;
return EFI_SUCCESS;
}
-
/*++
Routine Description:
@@ -675,7 +677,7 @@ Returns:
**/
BOOLEAN
EfiSystemMemoryRange (
- IN VOID *MemoryAddress
+ IN VOID *MemoryAddress
)
{
UINTN Index;
@@ -684,7 +686,8 @@ EfiSystemMemoryRange (
MemoryBase = (EFI_PHYSICAL_ADDRESS)(UINTN)MemoryAddress;
for (Index = 0; Index < gSystemMemoryCount; Index++) {
if ((MemoryBase >= gSystemMemory[Index].Memory) &&
- (MemoryBase < (gSystemMemory[Index].Memory + gSystemMemory[Index].Size)) ) {
+ (MemoryBase < (gSystemMemory[Index].Memory + gSystemMemory[Index].Size)))
+ {
return TRUE;
}
}
@@ -692,7 +695,6 @@ EfiSystemMemoryRange (
return FALSE;
}
-
/*++
Routine Description:
@@ -715,8 +717,6 @@ SecEmuThunkAddress (
return &gEmuThunkProtocol;
}
-
-
RETURN_STATUS
EFIAPI
SecPeCoffGetEntryPoint (
@@ -728,10 +728,10 @@ SecPeCoffGetEntryPoint (
PE_COFF_LOADER_IMAGE_CONTEXT ImageContext;
ZeroMem (&ImageContext, sizeof (ImageContext));
- ImageContext.Handle = Pe32Data;
- ImageContext.ImageRead = (PE_COFF_LOADER_READ_FILE) SecImageRead;
+ ImageContext.Handle = Pe32Data;
+ ImageContext.ImageRead = (PE_COFF_LOADER_READ_FILE)SecImageRead;
- Status = PeCoffLoaderGetImageInfo (&ImageContext);
+ Status = PeCoffLoaderGetImageInfo (&ImageContext);
if (EFI_ERROR (Status)) {
return Status;
}
@@ -741,7 +741,7 @@ SecPeCoffGetEntryPoint (
// Relocate image to match the address where it resides
//
ImageContext.ImageAddress = (UINTN)Pe32Data;
- Status = PeCoffLoaderLoadImage (&ImageContext);
+ Status = PeCoffLoaderLoadImage (&ImageContext);
if (EFI_ERROR (Status)) {
return Status;
}
@@ -755,10 +755,11 @@ SecPeCoffGetEntryPoint (
// Or just return image entry point
//
ImageContext.PdbPointer = PeCoffLoaderGetPdbPointer (Pe32Data);
- Status = PeCoffLoaderGetEntryPoint (Pe32Data, EntryPoint);
+ Status = PeCoffLoaderGetEntryPoint (Pe32Data, EntryPoint);
if (EFI_ERROR (Status)) {
return Status;
}
+
ImageContext.EntryPoint = (UINTN)*EntryPoint;
}
@@ -769,8 +770,6 @@ SecPeCoffGetEntryPoint (
return Status;
}
-
-
/*++
Routine Description:
@@ -804,7 +803,7 @@ SecUnixFdAddress (
*FdSize = gFdInfo[Index].Size;
*FixUp = 0;
- if (*FdBase == 0 && *FdSize == 0) {
+ if ((*FdBase == 0) && (*FdSize == 0)) {
return EFI_UNSUPPORTED;
}
@@ -820,7 +819,6 @@ SecUnixFdAddress (
return EFI_SUCCESS;
}
-
/*++
Routine Description:
@@ -836,11 +834,11 @@ Returns:
**/
UINTN
CountSeparatorsInString (
- IN const CHAR16 *String,
- IN CHAR16 Separator
+ IN const CHAR16 *String,
+ IN CHAR16 Separator
)
{
- UINTN Count;
+ UINTN Count;
for (Count = 0; *String != '\0'; String++) {
if (*String == Separator) {
@@ -851,15 +849,15 @@ CountSeparatorsInString (
return Count;
}
-
EFI_STATUS
EFIAPI
SecImageRead (
- IN VOID *FileHandle,
- IN UINTN FileOffset,
- IN OUT UINTN *ReadSize,
- OUT VOID *Buffer
+ IN VOID *FileHandle,
+ IN UINTN FileOffset,
+ IN OUT UINTN *ReadSize,
+ OUT VOID *Buffer
)
+
/*++
Routine Description:
@@ -876,13 +874,13 @@ Returns:
**/
{
- CHAR8 *Destination8;
- CHAR8 *Source8;
- UINTN Length;
+ CHAR8 *Destination8;
+ CHAR8 *Source8;
+ UINTN Length;
- Destination8 = Buffer;
- Source8 = (CHAR8 *) ((UINTN) FileHandle + FileOffset);
- Length = *ReadSize;
+ Destination8 = Buffer;
+ Source8 = (CHAR8 *)((UINTN)FileHandle + FileOffset);
+ Length = *ReadSize;
while (Length--) {
*(Destination8++) = *(Source8++);
}
@@ -890,7 +888,6 @@ Returns:
return EFI_SUCCESS;
}
-
/*++
Routine Description:
@@ -909,14 +906,13 @@ Returns:
**/
EFI_STATUS
AddHandle (
- IN PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext,
- IN VOID *ModHandle
+ IN PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext,
+ IN VOID *ModHandle
)
{
- UINTN Index;
- IMAGE_CONTEXT_TO_MOD_HANDLE *Array;
- UINTN PreviousSize;
-
+ UINTN Index;
+ IMAGE_CONTEXT_TO_MOD_HANDLE *Array;
+ UINTN PreviousSize;
Array = mImageContextModHandleArray;
for (Index = 0; Index < mImageContextModHandleArraySize; Index++, Array++) {
@@ -936,7 +932,7 @@ AddHandle (
// copy the old values to the new location. But it does
// not zero the new memory area.
//
- PreviousSize = mImageContextModHandleArraySize * sizeof (IMAGE_CONTEXT_TO_MOD_HANDLE);
+ PreviousSize = mImageContextModHandleArraySize * sizeof (IMAGE_CONTEXT_TO_MOD_HANDLE);
mImageContextModHandleArraySize += MAX_IMAGE_CONTEXT_TO_MOD_HANDLE_ARRAY_SIZE;
mImageContextModHandleArray = ReallocatePool (
@@ -954,7 +950,6 @@ AddHandle (
return AddHandle (ImageContext, ModHandle);
}
-
/*++
Routine Description:
@@ -971,7 +966,7 @@ Returns:
**/
VOID *
RemoveHandle (
- IN PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext
+ IN PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext
)
{
UINTN Index;
@@ -998,60 +993,60 @@ RemoveHandle (
return NULL;
}
-
-
BOOLEAN
IsPdbFile (
- IN CHAR8 *PdbFileName
+ IN CHAR8 *PdbFileName
)
{
- UINTN Len;
+ UINTN Len;
if (PdbFileName == NULL) {
return FALSE;
}
Len = strlen (PdbFileName);
- if ((Len < 5)|| (PdbFileName[Len - 4] != '.')) {
+ if ((Len < 5) || (PdbFileName[Len - 4] != '.')) {
return FALSE;
}
- if ((PdbFileName[Len - 3] == 'P' || PdbFileName[Len - 3] == 'p') &&
- (PdbFileName[Len - 2] == 'D' || PdbFileName[Len - 2] == 'd') &&
- (PdbFileName[Len - 1] == 'B' || PdbFileName[Len - 1] == 'b')) {
+ if (((PdbFileName[Len - 3] == 'P') || (PdbFileName[Len - 3] == 'p')) &&
+ ((PdbFileName[Len - 2] == 'D') || (PdbFileName[Len - 2] == 'd')) &&
+ ((PdbFileName[Len - 1] == 'B') || (PdbFileName[Len - 1] == 'b')))
+ {
return TRUE;
}
return FALSE;
}
-
-#define MAX_SPRINT_BUFFER_SIZE 0x200
+#define MAX_SPRINT_BUFFER_SIZE 0x200
void
PrintLoadAddress (
- IN PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext
+ IN PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext
)
{
if (ImageContext->PdbPointer == NULL) {
- fprintf (stderr,
+ fprintf (
+ stderr,
"0x%08lx Loading NO DEBUG with entry point 0x%08lx\n",
(unsigned long)(ImageContext->ImageAddress),
(unsigned long)ImageContext->EntryPoint
);
} else {
- fprintf (stderr,
+ fprintf (
+ stderr,
"0x%08lx Loading %s with entry point 0x%08lx\n",
(unsigned long)(ImageContext->ImageAddress + ImageContext->SizeOfHeaders),
ImageContext->PdbPointer,
(unsigned long)ImageContext->EntryPoint
);
}
+
// Keep output synced up
fflush (stderr);
}
-
/**
Loads the image using dlopen so symbols will be automatically
loaded by gdb.
@@ -1064,18 +1059,17 @@ PrintLoadAddress (
**/
BOOLEAN
DlLoadImage (
- IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext
+ IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext
)
{
-
-#ifdef __APPLE__
+ #ifdef __APPLE__
return FALSE;
-#else
+ #else
- void *Handle = NULL;
- void *Entry = NULL;
+ void *Handle = NULL;
+ void *Entry = NULL;
if (ImageContext->PdbPointer == NULL) {
return FALSE;
@@ -1086,19 +1080,19 @@ DlLoadImage (
}
fprintf (
- stderr,
- "Loading %s 0x%08lx - entry point 0x%08lx\n",
- ImageContext->PdbPointer,
- (unsigned long)ImageContext->ImageAddress,
- (unsigned long)ImageContext->EntryPoint
- );
+ stderr,
+ "Loading %s 0x%08lx - entry point 0x%08lx\n",
+ ImageContext->PdbPointer,
+ (unsigned long)ImageContext->ImageAddress,
+ (unsigned long)ImageContext->EntryPoint
+ );
Handle = dlopen (ImageContext->PdbPointer, RTLD_NOW);
if (Handle != NULL) {
Entry = dlsym (Handle, "_ModuleEntryPoint");
AddHandle (ImageContext, Handle);
} else {
- printf("%s\n", dlerror());
+ printf ("%s\n", dlerror ());
}
if (Entry != NULL) {
@@ -1109,25 +1103,23 @@ DlLoadImage (
return FALSE;
}
-#endif
+ #endif
}
-
#ifdef __APPLE__
-__attribute__((noinline))
+__attribute__ ((noinline))
#endif
VOID
SecGdbScriptBreak (
- char *FileName,
- int FileNameLength,
- long unsigned int LoadAddress,
- int AddSymbolFlag
+ char *FileName,
+ int FileNameLength,
+ long unsigned int LoadAddress,
+ int AddSymbolFlag
)
{
return;
}
-
/**
Adds the image to a gdb script so its symbols can be loaded.
The AddFirmwareSymbolFile helper macro is used.
@@ -1137,18 +1129,17 @@ SecGdbScriptBreak (
**/
VOID
GdbScriptAddImage (
- IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext
+ IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext
)
{
-
PrintLoadAddress (ImageContext);
- if (ImageContext->PdbPointer != NULL && !IsPdbFile (ImageContext->PdbPointer)) {
+ if ((ImageContext->PdbPointer != NULL) && !IsPdbFile (ImageContext->PdbPointer)) {
FILE *GdbTempFile;
if (FeaturePcdGet (PcdEmulatorLazyLoadSymbols)) {
GdbTempFile = fopen (gGdbWorkingFileName, "a");
if (GdbTempFile != NULL) {
- long unsigned int SymbolsAddr = (long unsigned int)(ImageContext->ImageAddress + ImageContext->SizeOfHeaders);
+ long unsigned int SymbolsAddr = (long unsigned int)(ImageContext->ImageAddress + ImageContext->SizeOfHeaders);
mScriptSymbolChangesCount++;
fprintf (
GdbTempFile,
@@ -1188,11 +1179,10 @@ GdbScriptAddImage (
}
}
-
VOID
EFIAPI
SecPeCoffRelocateImageExtraAction (
- IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext
+ IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext
)
{
if (!DlLoadImage (ImageContext)) {
@@ -1200,7 +1190,6 @@ SecPeCoffRelocateImageExtraAction (
}
}
-
/**
Adds the image to a gdb script so its symbols can be unloaded.
The RemoveFirmwareSymbolFile helper macro is used.
@@ -1210,7 +1199,7 @@ SecPeCoffRelocateImageExtraAction (
**/
VOID
GdbScriptRemoveImage (
- IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext
+ IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext
)
{
FILE *GdbTempFile;
@@ -1257,27 +1246,24 @@ GdbScriptRemoveImage (
}
}
-
VOID
EFIAPI
SecPeCoffUnloadImageExtraAction (
- IN PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext
+ IN PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext
)
{
- VOID *Handle;
+ VOID *Handle;
//
// Check to see if the image symbols were loaded with gdb script, or dlopen
//
Handle = RemoveHandle (ImageContext);
if (Handle != NULL) {
-#ifndef __APPLE__
+ #ifndef __APPLE__
dlclose (Handle);
-#endif
+ #endif
return;
}
GdbScriptRemoveImage (ImageContext);
}
-
-
diff --git a/EmulatorPkg/Unix/Host/Host.h b/EmulatorPkg/Unix/Host/Host.h
index a372ecaadb..0c81cdfc01 100644
--- a/EmulatorPkg/Unix/Host/Host.h
+++ b/EmulatorPkg/Unix/Host/Host.h
@@ -30,9 +30,9 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include <sys/time.h>
#if __CYGWIN__
-#include <sys/dirent.h>
+ #include <sys/dirent.h>
#else
-#include <sys/dir.h>
+ #include <sys/dir.h>
#endif
#include <sys/mman.h>
@@ -56,19 +56,19 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include <ifaddrs.h>
#ifdef __APPLE__
-#include <net/if_dl.h>
-#include <net/bpf.h>
-#include <sys/param.h>
-#include <sys/mount.h>
-#include <sys/disk.h>
+ #include <net/if_dl.h>
+ #include <net/bpf.h>
+ #include <sys/param.h>
+ #include <sys/mount.h>
+ #include <sys/disk.h>
#define _XOPEN_SOURCE
-#ifndef _Bool
- #define _Bool char // for clang debug
-#endif
+ #ifndef _Bool
+#define _Bool char // for clang debug
+ #endif
#else
-#include <termio.h>
-#include <sys/vfs.h>
-#include <linux/fs.h>
+ #include <termio.h>
+ #include <sys/vfs.h>
+ #include <linux/fs.h>
#endif
#include <utime.h>
@@ -120,31 +120,27 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include <Guid/FileSystemInfo.h>
#include <Guid/FileSystemVolumeLabelInfo.h>
-
#include "Gasket.h"
-
-#define STACK_SIZE 0x20000
+#define STACK_SIZE 0x20000
typedef struct {
- EFI_PHYSICAL_ADDRESS Address;
- UINT64 Size;
+ EFI_PHYSICAL_ADDRESS Address;
+ UINT64 Size;
} EMU_FD_INFO;
typedef struct {
- EFI_PHYSICAL_ADDRESS Memory;
- UINT64 Size;
+ EFI_PHYSICAL_ADDRESS Memory;
+ UINT64 Size;
} EMU_SYSTEM_MEMORY;
-
-#define MAX_IMAGE_CONTEXT_TO_MOD_HANDLE_ARRAY_SIZE 0x100
+#define MAX_IMAGE_CONTEXT_TO_MOD_HANDLE_ARRAY_SIZE 0x100
typedef struct {
- PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext;
- VOID *ModHandle;
+ PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext;
+ VOID *ModHandle;
} IMAGE_CONTEXT_TO_MOD_HANDLE;
-
EFI_STATUS
EFIAPI
SecUnixPeiLoadFile (
@@ -163,18 +159,18 @@ main (
VOID
SecLoadFromCore (
- IN UINTN LargestRegion,
- IN UINTN LargestRegionSize,
- IN UINTN BootFirmwareVolumeBase,
- IN VOID *PeiCoreFile
+ IN UINTN LargestRegion,
+ IN UINTN LargestRegionSize,
+ IN UINTN BootFirmwareVolumeBase,
+ IN VOID *PeiCoreFile
);
EFI_STATUS
SecLoadFile (
- IN VOID *Pe32Data,
- IN EFI_PHYSICAL_ADDRESS *ImageAddress,
- IN UINT64 *ImageSize,
- IN EFI_PHYSICAL_ADDRESS *EntryPoint
+ IN VOID *Pe32Data,
+ IN EFI_PHYSICAL_ADDRESS *ImageAddress,
+ IN UINT64 *ImageSize,
+ IN EFI_PHYSICAL_ADDRESS *EntryPoint
);
EFI_STATUS
@@ -192,23 +188,23 @@ SecFfsFindNextFile (
EFI_STATUS
SecFfsFindSectionData (
- IN EFI_SECTION_TYPE SectionType,
- IN EFI_FFS_FILE_HEADER *FfsFileHeader,
- IN OUT VOID **SectionData
+ IN EFI_SECTION_TYPE SectionType,
+ IN EFI_FFS_FILE_HEADER *FfsFileHeader,
+ IN OUT VOID **SectionData
);
EFI_STATUS
EFIAPI
SecUnixPeCoffLoaderLoadAsDll (
- IN CHAR8 *PdbFileName,
- IN VOID **ImageEntryPoint,
- OUT VOID **ModHandle
+ IN CHAR8 *PdbFileName,
+ IN VOID **ImageEntryPoint,
+ OUT VOID **ModHandle
);
EFI_STATUS
EFIAPI
SecUnixPeCoffLoaderFreeLibrary (
- OUT VOID *ModHandle
+ OUT VOID *ModHandle
);
EFI_STATUS
@@ -230,53 +226,51 @@ GasketSecUnixFdAddress (
)
;
-
EFI_STATUS
GetImageReadFunction (
- IN PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext,
- IN EFI_PHYSICAL_ADDRESS *TopOfMemory
+ IN PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext,
+ IN EFI_PHYSICAL_ADDRESS *TopOfMemory
);
EFI_STATUS
EFIAPI
SecImageRead (
- IN VOID *FileHandle,
- IN UINTN FileOffset,
- IN OUT UINTN *ReadSize,
- OUT VOID *Buffer
+ IN VOID *FileHandle,
+ IN UINTN FileOffset,
+ IN OUT UINTN *ReadSize,
+ OUT VOID *Buffer
);
CHAR16 *
AsciiToUnicode (
- IN CHAR8 *Ascii,
- IN UINTN *StrLen OPTIONAL
+ IN CHAR8 *Ascii,
+ IN UINTN *StrLen OPTIONAL
);
UINTN
CountSeparatorsInString (
- IN const CHAR16 *String,
- IN CHAR16 Separator
+ IN const CHAR16 *String,
+ IN CHAR16 Separator
);
EFI_STATUS
EFIAPI
SecTemporaryRamSupport (
- IN CONST EFI_PEI_SERVICES **PeiServices,
- IN EFI_PHYSICAL_ADDRESS TemporaryMemoryBase,
- IN EFI_PHYSICAL_ADDRESS PermanentMemoryBase,
- IN UINTN CopySize
+ IN CONST EFI_PEI_SERVICES **PeiServices,
+ IN EFI_PHYSICAL_ADDRESS TemporaryMemoryBase,
+ IN EFI_PHYSICAL_ADDRESS PermanentMemoryBase,
+ IN UINTN CopySize
);
EFI_STATUS
EFIAPI
GasketSecTemporaryRamSupport (
- IN CONST EFI_PEI_SERVICES **PeiServices,
- IN EFI_PHYSICAL_ADDRESS TemporaryMemoryBase,
- IN EFI_PHYSICAL_ADDRESS PermanentMemoryBase,
- IN UINTN CopySize
+ IN CONST EFI_PEI_SERVICES **PeiServices,
+ IN EFI_PHYSICAL_ADDRESS TemporaryMemoryBase,
+ IN EFI_PHYSICAL_ADDRESS PermanentMemoryBase,
+ IN UINTN CopySize
);
-
RETURN_STATUS
EFIAPI
SecPeCoffGetEntryPoint (
@@ -296,7 +290,6 @@ SecPeCoffLoaderUnloadImageExtraAction (
IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext
);
-
VOID
PeiSwitchStacks (
IN SWITCH_STACK_ENTRY_POINT EntryPoint,
@@ -310,13 +303,13 @@ SecInitThunkProtocol (
VOID
);
-
EFI_PHYSICAL_ADDRESS *
MapMemory (
- INTN fd,
- UINT64 length,
- INTN prot,
- INTN flags);
+ INTN fd,
+ UINT64 length,
+ INTN prot,
+ INTN flags
+ );
EFI_STATUS
MapFile (
@@ -334,21 +327,34 @@ MapFd0 (
BOOLEAN
EfiSystemMemoryRange (
- IN VOID *MemoryAddress
+ IN VOID *MemoryAddress
+ );
+
+VOID
+SecSleep (
+ UINT64 Nanoseconds
);
+VOID
+SecEnableInterrupt (
+ VOID
+ );
-VOID SecSleep (UINT64 Nanoseconds);
-VOID SecEnableInterrupt (VOID);
-VOID SecDisableInterrupt (VOID);
-BOOLEAN SecInterruptEanbled (VOID);
+VOID
+SecDisableInterrupt (
+ VOID
+ );
+BOOLEAN
+SecInterruptEanbled (
+ VOID
+ );
-extern EMU_THUNK_PROTOCOL gEmuThunkProtocol;
-extern EMU_IO_THUNK_PROTOCOL gX11ThunkIo;
-extern EMU_IO_THUNK_PROTOCOL gPosixFileSystemThunkIo;
-extern EMU_IO_THUNK_PROTOCOL gPthreadThunkIo;
-extern EMU_IO_THUNK_PROTOCOL gBlockIoThunkIo;
-extern EMU_IO_THUNK_PROTOCOL gSnpThunkIo;
+extern EMU_THUNK_PROTOCOL gEmuThunkProtocol;
+extern EMU_IO_THUNK_PROTOCOL gX11ThunkIo;
+extern EMU_IO_THUNK_PROTOCOL gPosixFileSystemThunkIo;
+extern EMU_IO_THUNK_PROTOCOL gPthreadThunkIo;
+extern EMU_IO_THUNK_PROTOCOL gBlockIoThunkIo;
+extern EMU_IO_THUNK_PROTOCOL gSnpThunkIo;
#endif
diff --git a/EmulatorPkg/Unix/Host/Ia32/SwitchStack.c b/EmulatorPkg/Unix/Host/Ia32/SwitchStack.c
index 0184de2894..18028f3791 100644
--- a/EmulatorPkg/Unix/Host/Ia32/SwitchStack.c
+++ b/EmulatorPkg/Unix/Host/Ia32/SwitchStack.c
@@ -9,7 +9,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include "Host.h"
-
/**
Transfers control to a function starting with a new stack.
@@ -49,15 +48,14 @@ PeiSwitchStacks (
//
ASSERT (((UINTN)NewStack & (CPU_STACK_ALIGNMENT - 1)) == 0);
- JumpBuffer.Eip = (UINTN)EntryPoint;
- JumpBuffer.Esp = (UINTN)NewStack - sizeof (VOID*);
- JumpBuffer.Esp -= sizeof (Context1) + sizeof (Context2);
- ((VOID**)JumpBuffer.Esp)[1] = Context1;
- ((VOID**)JumpBuffer.Esp)[2] = Context2;
+ JumpBuffer.Eip = (UINTN)EntryPoint;
+ JumpBuffer.Esp = (UINTN)NewStack - sizeof (VOID *);
+ JumpBuffer.Esp -= sizeof (Context1) + sizeof (Context2);
+ ((VOID **)JumpBuffer.Esp)[1] = Context1;
+ ((VOID **)JumpBuffer.Esp)[2] = Context2;
LongJump (&JumpBuffer, (UINTN)-1);
-
//
// PeiSwitchStacks () will never return
//
diff --git a/EmulatorPkg/Unix/Host/LinuxPacketFilter.c b/EmulatorPkg/Unix/Host/LinuxPacketFilter.c
index 2b772ab884..87c3dd6be4 100644
--- a/EmulatorPkg/Unix/Host/LinuxPacketFilter.c
+++ b/EmulatorPkg/Unix/Host/LinuxPacketFilter.c
@@ -12,21 +12,18 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
-
#include "Host.h"
#ifndef __APPLE__
-#define EMU_SNP_PRIVATE_SIGNATURE SIGNATURE_32('E', 'M', 's', 'n')
+#define EMU_SNP_PRIVATE_SIGNATURE SIGNATURE_32('E', 'M', 's', 'n')
typedef struct {
- UINTN Signature;
-
- EMU_IO_THUNK_PROTOCOL *Thunk;
-
+ UINTN Signature;
- EMU_SNP_PROTOCOL EmuSnp;
- EFI_SIMPLE_NETWORK_MODE *Mode;
+ EMU_IO_THUNK_PROTOCOL *Thunk;
+ EMU_SNP_PROTOCOL EmuSnp;
+ EFI_SIMPLE_NETWORK_MODE *Mode;
} EMU_SNP_PRIVATE;
#define EMU_SNP_PRIVATE_DATA_FROM_THIS(a) \
@@ -48,7 +45,7 @@ EmuSnpCreateMapping (
IN EFI_SIMPLE_NETWORK_MODE *Mode
)
{
- EMU_SNP_PRIVATE *Private;
+ EMU_SNP_PRIVATE *Private;
Private = EMU_SNP_PRIVATE_DATA_FROM_THIS (This);
@@ -74,7 +71,7 @@ EmuSnpStart (
IN EMU_SNP_PROTOCOL *This
)
{
- EMU_SNP_PRIVATE *Private;
+ EMU_SNP_PRIVATE *Private;
Private = EMU_SNP_PRIVATE_DATA_FROM_THIS (This);
@@ -98,7 +95,7 @@ EmuSnpStop (
IN EMU_SNP_PROTOCOL *This
)
{
- EMU_SNP_PRIVATE *Private;
+ EMU_SNP_PRIVATE *Private;
Private = EMU_SNP_PRIVATE_DATA_FROM_THIS (This);
@@ -133,12 +130,12 @@ EmuSnpStop (
**/
EFI_STATUS
EmuSnpInitialize (
- IN EMU_SNP_PROTOCOL *This,
- IN UINTN ExtraRxBufferSize OPTIONAL,
- IN UINTN ExtraTxBufferSize OPTIONAL
+ IN EMU_SNP_PROTOCOL *This,
+ IN UINTN ExtraRxBufferSize OPTIONAL,
+ IN UINTN ExtraTxBufferSize OPTIONAL
)
{
- EMU_SNP_PRIVATE *Private;
+ EMU_SNP_PRIVATE *Private;
Private = EMU_SNP_PRIVATE_DATA_FROM_THIS (This);
@@ -163,11 +160,11 @@ EmuSnpInitialize (
**/
EFI_STATUS
EmuSnpReset (
- IN EMU_SNP_PROTOCOL *This,
- IN BOOLEAN ExtendedVerification
+ IN EMU_SNP_PROTOCOL *This,
+ IN BOOLEAN ExtendedVerification
)
{
- EMU_SNP_PRIVATE *Private;
+ EMU_SNP_PRIVATE *Private;
Private = EMU_SNP_PRIVATE_DATA_FROM_THIS (This);
@@ -192,7 +189,7 @@ EmuSnpShutdown (
IN EMU_SNP_PROTOCOL *This
)
{
- EMU_SNP_PRIVATE *Private;
+ EMU_SNP_PRIVATE *Private;
Private = EMU_SNP_PRIVATE_DATA_FROM_THIS (This);
@@ -225,15 +222,15 @@ EmuSnpShutdown (
**/
EFI_STATUS
EmuSnpReceiveFilters (
- IN EMU_SNP_PROTOCOL *This,
- IN UINT32 Enable,
- IN UINT32 Disable,
- IN BOOLEAN ResetMCastFilter,
- IN UINTN MCastFilterCnt OPTIONAL,
- IN EFI_MAC_ADDRESS *MCastFilter OPTIONAL
+ IN EMU_SNP_PROTOCOL *This,
+ IN UINT32 Enable,
+ IN UINT32 Disable,
+ IN BOOLEAN ResetMCastFilter,
+ IN UINTN MCastFilterCnt OPTIONAL,
+ IN EFI_MAC_ADDRESS *MCastFilter OPTIONAL
)
{
- EMU_SNP_PRIVATE *Private;
+ EMU_SNP_PRIVATE *Private;
Private = EMU_SNP_PRIVATE_DATA_FROM_THIS (This);
@@ -257,12 +254,12 @@ EmuSnpReceiveFilters (
**/
EFI_STATUS
EmuSnpStationAddress (
- IN EMU_SNP_PROTOCOL *This,
- IN BOOLEAN Reset,
- IN EFI_MAC_ADDRESS *New OPTIONAL
+ IN EMU_SNP_PROTOCOL *This,
+ IN BOOLEAN Reset,
+ IN EFI_MAC_ADDRESS *New OPTIONAL
)
{
- EMU_SNP_PRIVATE *Private;
+ EMU_SNP_PRIVATE *Private;
Private = EMU_SNP_PRIVATE_DATA_FROM_THIS (This);
@@ -292,13 +289,13 @@ EmuSnpStationAddress (
**/
EFI_STATUS
EmuSnpStatistics (
- IN EMU_SNP_PROTOCOL *This,
- IN BOOLEAN Reset,
- IN OUT UINTN *StatisticsSize OPTIONAL,
- OUT EFI_NETWORK_STATISTICS *StatisticsTable OPTIONAL
+ IN EMU_SNP_PROTOCOL *This,
+ IN BOOLEAN Reset,
+ IN OUT UINTN *StatisticsSize OPTIONAL,
+ OUT EFI_NETWORK_STATISTICS *StatisticsTable OPTIONAL
)
{
- EMU_SNP_PRIVATE *Private;
+ EMU_SNP_PRIVATE *Private;
Private = EMU_SNP_PRIVATE_DATA_FROM_THIS (This);
@@ -328,13 +325,13 @@ EmuSnpStatistics (
**/
EFI_STATUS
EmuSnpMCastIpToMac (
- IN EMU_SNP_PROTOCOL *This,
- IN BOOLEAN IPv6,
- IN EFI_IP_ADDRESS *IP,
- OUT EFI_MAC_ADDRESS *MAC
+ IN EMU_SNP_PROTOCOL *This,
+ IN BOOLEAN IPv6,
+ IN EFI_IP_ADDRESS *IP,
+ OUT EFI_MAC_ADDRESS *MAC
)
{
- EMU_SNP_PRIVATE *Private;
+ EMU_SNP_PRIVATE *Private;
Private = EMU_SNP_PRIVATE_DATA_FROM_THIS (This);
@@ -363,14 +360,14 @@ EmuSnpMCastIpToMac (
**/
EFI_STATUS
EmuSnpNvData (
- IN EMU_SNP_PROTOCOL *This,
- IN BOOLEAN ReadWrite,
- IN UINTN Offset,
- IN UINTN BufferSize,
- IN OUT VOID *Buffer
+ IN EMU_SNP_PROTOCOL *This,
+ IN BOOLEAN ReadWrite,
+ IN UINTN Offset,
+ IN UINTN BufferSize,
+ IN OUT VOID *Buffer
)
{
- EMU_SNP_PRIVATE *Private;
+ EMU_SNP_PRIVATE *Private;
Private = EMU_SNP_PRIVATE_DATA_FROM_THIS (This);
@@ -404,12 +401,12 @@ EmuSnpNvData (
**/
EFI_STATUS
EmuSnpGetStatus (
- IN EMU_SNP_PROTOCOL *This,
- OUT UINT32 *InterruptStatus OPTIONAL,
- OUT VOID **TxBuf OPTIONAL
+ IN EMU_SNP_PROTOCOL *This,
+ OUT UINT32 *InterruptStatus OPTIONAL,
+ OUT VOID **TxBuf OPTIONAL
)
{
- EMU_SNP_PRIVATE *Private;
+ EMU_SNP_PRIVATE *Private;
Private = EMU_SNP_PRIVATE_DATA_FROM_THIS (This);
@@ -451,16 +448,16 @@ EmuSnpGetStatus (
**/
EFI_STATUS
EmuSnpTransmit (
- IN EMU_SNP_PROTOCOL *This,
- IN UINTN HeaderSize,
- IN UINTN BufferSize,
- IN VOID *Buffer,
- IN EFI_MAC_ADDRESS *SrcAddr OPTIONAL,
- IN EFI_MAC_ADDRESS *DestAddr OPTIONAL,
- IN UINT16 *Protocol OPTIONAL
+ IN EMU_SNP_PROTOCOL *This,
+ IN UINTN HeaderSize,
+ IN UINTN BufferSize,
+ IN VOID *Buffer,
+ IN EFI_MAC_ADDRESS *SrcAddr OPTIONAL,
+ IN EFI_MAC_ADDRESS *DestAddr OPTIONAL,
+ IN UINT16 *Protocol OPTIONAL
)
{
- EMU_SNP_PRIVATE *Private;
+ EMU_SNP_PRIVATE *Private;
Private = EMU_SNP_PRIVATE_DATA_FROM_THIS (This);
@@ -501,24 +498,23 @@ EmuSnpTransmit (
**/
EFI_STATUS
EmuSnpReceive (
- IN EMU_SNP_PROTOCOL *This,
- OUT UINTN *HeaderSize OPTIONAL,
- IN OUT UINTN *BufferSize,
- OUT VOID *Buffer,
- OUT EFI_MAC_ADDRESS *SrcAddr OPTIONAL,
- OUT EFI_MAC_ADDRESS *DestAddr OPTIONAL,
- OUT UINT16 *Protocol OPTIONAL
+ IN EMU_SNP_PROTOCOL *This,
+ OUT UINTN *HeaderSize OPTIONAL,
+ IN OUT UINTN *BufferSize,
+ OUT VOID *Buffer,
+ OUT EFI_MAC_ADDRESS *SrcAddr OPTIONAL,
+ OUT EFI_MAC_ADDRESS *DestAddr OPTIONAL,
+ OUT UINT16 *Protocol OPTIONAL
)
{
- EMU_SNP_PRIVATE *Private;
+ EMU_SNP_PRIVATE *Private;
Private = EMU_SNP_PRIVATE_DATA_FROM_THIS (This);
return EFI_UNSUPPORTED;
}
-
-EMU_SNP_PROTOCOL gEmuSnpProtocol = {
+EMU_SNP_PROTOCOL gEmuSnpProtocol = {
GasketSnpCreateMapping,
GasketSnpStart,
GasketSnpStop,
@@ -537,7 +533,7 @@ EMU_SNP_PROTOCOL gEmuSnpProtocol = {
EFI_STATUS
EmuSnpThunkOpen (
- IN EMU_IO_THUNK_PROTOCOL *This
+ IN EMU_IO_THUNK_PROTOCOL *This
)
{
EMU_SNP_PRIVATE *Private;
@@ -555,7 +551,6 @@ EmuSnpThunkOpen (
return EFI_OUT_OF_RESOURCES;
}
-
Private->Signature = EMU_SNP_PRIVATE_SIGNATURE;
Private->Thunk = This;
CopyMem (&Private->EmuSnp, &gEmuSnpProtocol, sizeof (gEmuSnpProtocol));
@@ -565,10 +560,9 @@ EmuSnpThunkOpen (
return EFI_SUCCESS;
}
-
EFI_STATUS
EmuSnpThunkClose (
- IN EMU_IO_THUNK_PROTOCOL *This
+ IN EMU_IO_THUNK_PROTOCOL *This
)
{
EMU_SNP_PRIVATE *Private;
@@ -583,9 +577,7 @@ EmuSnpThunkClose (
return EFI_SUCCESS;
}
-
-
-EMU_IO_THUNK_PROTOCOL gSnpThunkIo = {
+EMU_IO_THUNK_PROTOCOL gSnpThunkIo = {
&gEmuSnpProtocolGuid,
NULL,
NULL,
diff --git a/EmulatorPkg/Unix/Host/MemoryAllocationLib.c b/EmulatorPkg/Unix/Host/MemoryAllocationLib.c
index 456f451c16..4e3c8faa3c 100644
--- a/EmulatorPkg/Unix/Host/MemoryAllocationLib.c
+++ b/EmulatorPkg/Unix/Host/MemoryAllocationLib.c
@@ -30,10 +30,9 @@ AllocatePool (
IN UINTN AllocationSize
)
{
- return (VOID*) malloc (AllocationSize);
+ return (VOID *)malloc (AllocationSize);
}
-
/**
Allocates and zeros a buffer of type EfiBootServicesData.
@@ -53,7 +52,7 @@ AllocateZeroPool (
IN UINTN AllocationSize
)
{
- VOID *Buffer;
+ VOID *Buffer;
Buffer = AllocatePool (AllocationSize);
if (Buffer == NULL) {
@@ -65,7 +64,6 @@ AllocateZeroPool (
return Buffer;
}
-
/**
Reallocates a buffer of type EfiBootServicesData.
@@ -95,7 +93,7 @@ ReallocatePool (
IN VOID *OldBuffer OPTIONAL
)
{
- VOID *NewBuffer;
+ VOID *NewBuffer;
NewBuffer = AllocatePool (NewSize);
if (NewBuffer == NULL) {
@@ -113,7 +111,6 @@ ReallocatePool (
return NewBuffer;
}
-
/**
Frees a buffer that was previously allocated with one of the pool allocation functions in the
Memory Allocation Library.
@@ -131,9 +128,8 @@ ReallocatePool (
VOID
EFIAPI
FreePool (
- IN VOID *Buffer
+ IN VOID *Buffer
)
{
- free ((void *) Buffer);
+ free ((void *)Buffer);
}
-
diff --git a/EmulatorPkg/Unix/Host/PosixFileSystem.c b/EmulatorPkg/Unix/Host/PosixFileSystem.c
index 0a618abcd8..ae3fe72a05 100644
--- a/EmulatorPkg/Unix/Host/PosixFileSystem.c
+++ b/EmulatorPkg/Unix/Host/PosixFileSystem.c
@@ -10,16 +10,15 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include "Host.h"
-
-#define EMU_SIMPLE_FILE_SYSTEM_PRIVATE_SIGNATURE SIGNATURE_32 ('E', 'P', 'f', 's')
+#define EMU_SIMPLE_FILE_SYSTEM_PRIVATE_SIGNATURE SIGNATURE_32 ('E', 'P', 'f', 's')
typedef struct {
- UINTN Signature;
- EMU_IO_THUNK_PROTOCOL *Thunk;
- EFI_SIMPLE_FILE_SYSTEM_PROTOCOL SimpleFileSystem;
- CHAR8 *FilePath;
- CHAR16 *VolumeLabel;
- BOOLEAN FileHandlesOpen;
+ UINTN Signature;
+ EMU_IO_THUNK_PROTOCOL *Thunk;
+ EFI_SIMPLE_FILE_SYSTEM_PROTOCOL SimpleFileSystem;
+ CHAR8 *FilePath;
+ CHAR16 *VolumeLabel;
+ BOOLEAN FileHandlesOpen;
} EMU_SIMPLE_FILE_SYSTEM_PRIVATE;
#define EMU_SIMPLE_FILE_SYSTEM_PRIVATE_DATA_FROM_THIS(a) \
@@ -29,21 +28,20 @@ typedef struct {
EMU_SIMPLE_FILE_SYSTEM_PRIVATE_SIGNATURE \
)
-
-#define EMU_EFI_FILE_PRIVATE_SIGNATURE SIGNATURE_32 ('E', 'P', 'f', 'i')
+#define EMU_EFI_FILE_PRIVATE_SIGNATURE SIGNATURE_32 ('E', 'P', 'f', 'i')
typedef struct {
- UINTN Signature;
- EMU_IO_THUNK_PROTOCOL *Thunk;
- EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *SimpleFileSystem;
- EFI_FILE_PROTOCOL EfiFile;
- int fd;
- DIR *Dir;
- BOOLEAN IsRootDirectory;
- BOOLEAN IsDirectoryPath;
- BOOLEAN IsOpenedByRead;
- char *FileName;
- struct dirent *Dirent;
+ UINTN Signature;
+ EMU_IO_THUNK_PROTOCOL *Thunk;
+ EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *SimpleFileSystem;
+ EFI_FILE_PROTOCOL EfiFile;
+ int fd;
+ DIR *Dir;
+ BOOLEAN IsRootDirectory;
+ BOOLEAN IsDirectoryPath;
+ BOOLEAN IsOpenedByRead;
+ char *FileName;
+ struct dirent *Dirent;
} EMU_EFI_FILE_PRIVATE;
#define EMU_EFI_FILE_PRIVATE_DATA_FROM_THIS(a) \
@@ -55,22 +53,21 @@ typedef struct {
EFI_STATUS
PosixFileGetInfo (
- IN EFI_FILE_PROTOCOL *This,
- IN EFI_GUID *InformationType,
- IN OUT UINTN *BufferSize,
- OUT VOID *Buffer
+ IN EFI_FILE_PROTOCOL *This,
+ IN EFI_GUID *InformationType,
+ IN OUT UINTN *BufferSize,
+ OUT VOID *Buffer
);
EFI_STATUS
PosixFileSetInfo (
- IN EFI_FILE_PROTOCOL *This,
- IN EFI_GUID *InformationType,
- IN UINTN BufferSize,
- IN VOID *Buffer
+ IN EFI_FILE_PROTOCOL *This,
+ IN EFI_GUID *InformationType,
+ IN UINTN BufferSize,
+ IN VOID *Buffer
);
-
-EFI_FILE_PROTOCOL gPosixFileProtocol = {
+EFI_FILE_PROTOCOL gPosixFileProtocol = {
EFI_FILE_REVISION,
GasketPosixFileOpen,
GasketPosixFileCLose,
@@ -84,12 +81,11 @@ EFI_FILE_PROTOCOL gPosixFileProtocol = {
GasketPosixFileFlush
};
-EFI_SIMPLE_FILE_SYSTEM_PROTOCOL gPosixFileSystemProtocol = {
+EFI_SIMPLE_FILE_SYSTEM_PROTOCOL gPosixFileSystemProtocol = {
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_REVISION,
GasketPosixOpenVolume,
};
-
/**
Open the root directory on a volume.
@@ -107,17 +103,17 @@ EFI_SIMPLE_FILE_SYSTEM_PROTOCOL gPosixFileSystemProtocol = {
**/
EFI_STATUS
PosixOpenVolume (
- IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *This,
- OUT EFI_FILE_PROTOCOL **Root
+ IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *This,
+ OUT EFI_FILE_PROTOCOL **Root
)
{
- EFI_STATUS Status;
- EMU_SIMPLE_FILE_SYSTEM_PRIVATE *Private;
- EMU_EFI_FILE_PRIVATE *PrivateFile;
+ EFI_STATUS Status;
+ EMU_SIMPLE_FILE_SYSTEM_PRIVATE *Private;
+ EMU_EFI_FILE_PRIVATE *PrivateFile;
- Private = EMU_SIMPLE_FILE_SYSTEM_PRIVATE_DATA_FROM_THIS (This);
+ Private = EMU_SIMPLE_FILE_SYSTEM_PRIVATE_DATA_FROM_THIS (This);
- Status = EFI_OUT_OF_RESOURCES;
+ Status = EFI_OUT_OF_RESOURCES;
PrivateFile = malloc (sizeof (EMU_EFI_FILE_PRIVATE));
if (PrivateFile == NULL) {
goto Done;
@@ -127,24 +123,25 @@ PosixOpenVolume (
if (PrivateFile->FileName == NULL) {
goto Done;
}
+
AsciiStrCpyS (
PrivateFile->FileName,
AsciiStrSize (Private->FilePath),
Private->FilePath
);
- PrivateFile->Signature = EMU_EFI_FILE_PRIVATE_SIGNATURE;
- PrivateFile->Thunk = Private->Thunk;
- PrivateFile->SimpleFileSystem = This;
- PrivateFile->IsRootDirectory = TRUE;
- PrivateFile->IsDirectoryPath = TRUE;
- PrivateFile->IsOpenedByRead = TRUE;
+ PrivateFile->Signature = EMU_EFI_FILE_PRIVATE_SIGNATURE;
+ PrivateFile->Thunk = Private->Thunk;
+ PrivateFile->SimpleFileSystem = This;
+ PrivateFile->IsRootDirectory = TRUE;
+ PrivateFile->IsDirectoryPath = TRUE;
+ PrivateFile->IsOpenedByRead = TRUE;
CopyMem (&PrivateFile->EfiFile, &gPosixFileProtocol, sizeof (EFI_FILE_PROTOCOL));
- PrivateFile->fd = -1;
- PrivateFile->Dir = NULL;
- PrivateFile->Dirent = NULL;
+ PrivateFile->fd = -1;
+ PrivateFile->Dir = NULL;
+ PrivateFile->Dirent = NULL;
*Root = &PrivateFile->EfiFile;
@@ -171,27 +168,27 @@ Done:
return Status;
}
-
EFI_STATUS
-ErrnoToEfiStatus ()
+ErrnoToEfiStatus (
+ )
{
switch (errno) {
- case EACCES:
- return EFI_ACCESS_DENIED;
+ case EACCES:
+ return EFI_ACCESS_DENIED;
- case EDQUOT:
- case ENOSPC:
- return EFI_VOLUME_FULL;
+ case EDQUOT:
+ case ENOSPC:
+ return EFI_VOLUME_FULL;
- default:
- return EFI_DEVICE_ERROR;
+ default:
+ return EFI_DEVICE_ERROR;
}
}
VOID
CutPrefix (
IN CHAR8 *Str,
- IN UINTN Count
+ IN UINTN Count
)
{
CHAR8 *Pointer;
@@ -207,53 +204,51 @@ CutPrefix (
*Pointer = *(Pointer + Count);
}
-
VOID
PosixSystemTimeToEfiTime (
- IN time_t SystemTime,
- OUT EFI_TIME *Time
+ IN time_t SystemTime,
+ OUT EFI_TIME *Time
)
{
- struct tm *tm;
-
- tm = gmtime (&SystemTime);
- Time->Year = tm->tm_year;
- Time->Month = tm->tm_mon + 1;
- Time->Day = tm->tm_mday;
- Time->Hour = tm->tm_hour;
- Time->Minute = tm->tm_min;
- Time->Second = tm->tm_sec;
+ struct tm *tm;
+
+ tm = gmtime (&SystemTime);
+ Time->Year = tm->tm_year;
+ Time->Month = tm->tm_mon + 1;
+ Time->Day = tm->tm_mday;
+ Time->Hour = tm->tm_hour;
+ Time->Minute = tm->tm_min;
+ Time->Second = tm->tm_sec;
Time->Nanosecond = 0;
Time->TimeZone = timezone / 60;
Time->Daylight = (daylight ? EFI_TIME_ADJUST_DAYLIGHT : 0) | (tm->tm_isdst > 0 ? EFI_TIME_IN_DAYLIGHT : 0);
}
-
EFI_STATUS
UnixSimpleFileSystemFileInfo (
- EMU_EFI_FILE_PRIVATE *PrivateFile,
- IN CHAR8 *FileName,
- IN OUT UINTN *BufferSize,
- OUT VOID *Buffer
+ EMU_EFI_FILE_PRIVATE *PrivateFile,
+ IN CHAR8 *FileName,
+ IN OUT UINTN *BufferSize,
+ OUT VOID *Buffer
)
{
- EFI_STATUS Status;
- UINTN Size;
- UINTN NameSize;
- UINTN ResultSize;
- EFI_FILE_INFO *Info;
- CHAR8 *RealFileName;
- CHAR8 *TempPointer;
- CHAR16 *BufferFileName;
- struct stat buf;
+ EFI_STATUS Status;
+ UINTN Size;
+ UINTN NameSize;
+ UINTN ResultSize;
+ EFI_FILE_INFO *Info;
+ CHAR8 *RealFileName;
+ CHAR8 *TempPointer;
+ CHAR16 *BufferFileName;
+ struct stat buf;
if (FileName != NULL) {
RealFileName = FileName;
} else if (PrivateFile->IsRootDirectory) {
RealFileName = "";
} else {
- RealFileName = PrivateFile->FileName;
+ RealFileName = PrivateFile->FileName;
}
TempPointer = RealFileName;
@@ -265,26 +260,27 @@ UnixSimpleFileSystemFileInfo (
TempPointer++;
}
- Size = SIZE_OF_EFI_FILE_INFO;
- NameSize = AsciiStrSize (RealFileName) * 2;
- ResultSize = Size + NameSize;
+ Size = SIZE_OF_EFI_FILE_INFO;
+ NameSize = AsciiStrSize (RealFileName) * 2;
+ ResultSize = Size + NameSize;
if (*BufferSize < ResultSize) {
*BufferSize = ResultSize;
return EFI_BUFFER_TOO_SMALL;
}
- if (stat (FileName == NULL ? PrivateFile->FileName : FileName, &buf) < 0) {
+
+ if (stat ((FileName == NULL) ? PrivateFile->FileName : FileName, &buf) < 0) {
return EFI_DEVICE_ERROR;
}
- Status = EFI_SUCCESS;
+ Status = EFI_SUCCESS;
- Info = Buffer;
+ Info = Buffer;
ZeroMem (Info, ResultSize);
- Info->Size = ResultSize;
- Info->FileSize = buf.st_size;
- Info->PhysicalSize = MultU64x32 (buf.st_blocks, buf.st_blksize);
+ Info->Size = ResultSize;
+ Info->FileSize = buf.st_size;
+ Info->PhysicalSize = MultU64x32 (buf.st_blocks, buf.st_blksize);
PosixSystemTimeToEfiTime (buf.st_ctime, &Info->CreateTime);
PosixSystemTimeToEfiTime (buf.st_atime, &Info->LastAccessTime);
@@ -294,15 +290,15 @@ UnixSimpleFileSystemFileInfo (
Info->Attribute |= EFI_FILE_READ_ONLY;
}
- if (S_ISDIR(buf.st_mode)) {
+ if (S_ISDIR (buf.st_mode)) {
Info->Attribute |= EFI_FILE_DIRECTORY;
}
-
- BufferFileName = (CHAR16 *)((CHAR8 *) Buffer + Size);
+ BufferFileName = (CHAR16 *)((CHAR8 *)Buffer + Size);
while (*RealFileName) {
*BufferFileName++ = *RealFileName++;
}
+
*BufferFileName = 0;
*BufferSize = ResultSize;
@@ -315,16 +311,16 @@ IsZero (
IN UINTN Length
)
{
- if (Buffer == NULL || Length == 0) {
+ if ((Buffer == NULL) || (Length == 0)) {
return FALSE;
}
- if (*(UINT8 *) Buffer != 0) {
+ if (*(UINT8 *)Buffer != 0) {
return FALSE;
}
if (Length > 1) {
- if (!CompareMem (Buffer, (UINT8 *) Buffer + 1, Length - 1)) {
+ if (!CompareMem (Buffer, (UINT8 *)Buffer + 1, Length - 1)) {
return FALSE;
}
}
@@ -332,8 +328,6 @@ IsZero (
return TRUE;
}
-
-
/**
Opens a new file relative to the source file's location.
@@ -356,37 +350,37 @@ IsZero (
**/
EFI_STATUS
PosixFileOpen (
- IN EFI_FILE_PROTOCOL *This,
- OUT EFI_FILE_PROTOCOL **NewHandle,
- IN CHAR16 *FileName,
- IN UINT64 OpenMode,
- IN UINT64 Attributes
+ IN EFI_FILE_PROTOCOL *This,
+ OUT EFI_FILE_PROTOCOL **NewHandle,
+ IN CHAR16 *FileName,
+ IN UINT64 OpenMode,
+ IN UINT64 Attributes
)
{
- EFI_FILE_PROTOCOL *Root;
- EMU_EFI_FILE_PRIVATE *PrivateFile;
- EMU_EFI_FILE_PRIVATE *NewPrivateFile;
- EMU_SIMPLE_FILE_SYSTEM_PRIVATE *PrivateRoot;
- EFI_STATUS Status;
- CHAR16 *Src;
- char *Dst;
- CHAR8 *RealFileName;
- char *ParseFileName;
- char *GuardPointer;
- CHAR8 TempChar;
- UINTN Count;
- BOOLEAN TrailingDash;
- BOOLEAN LoopFinish;
- UINTN InfoSize;
- EFI_FILE_INFO *Info;
- struct stat finfo;
- int res;
- UINTN Size;
-
- PrivateFile = EMU_EFI_FILE_PRIVATE_DATA_FROM_THIS (This);
- PrivateRoot = EMU_SIMPLE_FILE_SYSTEM_PRIVATE_DATA_FROM_THIS (PrivateFile->SimpleFileSystem);
- NewPrivateFile = NULL;
- Status = EFI_OUT_OF_RESOURCES;
+ EFI_FILE_PROTOCOL *Root;
+ EMU_EFI_FILE_PRIVATE *PrivateFile;
+ EMU_EFI_FILE_PRIVATE *NewPrivateFile;
+ EMU_SIMPLE_FILE_SYSTEM_PRIVATE *PrivateRoot;
+ EFI_STATUS Status;
+ CHAR16 *Src;
+ char *Dst;
+ CHAR8 *RealFileName;
+ char *ParseFileName;
+ char *GuardPointer;
+ CHAR8 TempChar;
+ UINTN Count;
+ BOOLEAN TrailingDash;
+ BOOLEAN LoopFinish;
+ UINTN InfoSize;
+ EFI_FILE_INFO *Info;
+ struct stat finfo;
+ int res;
+ UINTN Size;
+
+ PrivateFile = EMU_EFI_FILE_PRIVATE_DATA_FROM_THIS (This);
+ PrivateRoot = EMU_SIMPLE_FILE_SYSTEM_PRIVATE_DATA_FROM_THIS (PrivateFile->SimpleFileSystem);
+ NewPrivateFile = NULL;
+ Status = EFI_OUT_OF_RESOURCES;
//
// BUGBUG: assume an open of root
@@ -394,16 +388,17 @@ PosixFileOpen (
//
TrailingDash = FALSE;
if ((StrCmp (FileName, L"\\") == 0) ||
- (StrCmp (FileName, L".") == 0 && PrivateFile->IsRootDirectory)) {
+ ((StrCmp (FileName, L".") == 0) && PrivateFile->IsRootDirectory))
+ {
OpenRoot:
- Status = PosixOpenVolume (PrivateFile->SimpleFileSystem, &Root);
- NewPrivateFile = EMU_EFI_FILE_PRIVATE_DATA_FROM_THIS (Root);
+ Status = PosixOpenVolume (PrivateFile->SimpleFileSystem, &Root);
+ NewPrivateFile = EMU_EFI_FILE_PRIVATE_DATA_FROM_THIS (Root);
goto Done;
}
if (FileName[StrLen (FileName) - 1] == L'\\') {
- TrailingDash = TRUE;
- FileName[StrLen (FileName) - 1] = 0;
+ TrailingDash = TRUE;
+ FileName[StrLen (FileName) - 1] = 0;
}
//
@@ -416,7 +411,7 @@ OpenRoot:
CopyMem (NewPrivateFile, PrivateFile, sizeof (EMU_EFI_FILE_PRIVATE));
- Size = AsciiStrSize (PrivateFile->FileName) + 1 + StrLen (FileName) + 1;
+ Size = AsciiStrSize (PrivateFile->FileName) + 1 + StrLen (FileName) + 1;
NewPrivateFile->FileName = malloc (Size);
if (NewPrivateFile->FileName == NULL) {
goto Done;
@@ -430,9 +425,10 @@ OpenRoot:
AsciiStrCpyS (NewPrivateFile->FileName, Size, PrivateFile->FileName);
Src = FileName;
}
- Dst = NewPrivateFile->FileName + AsciiStrLen (NewPrivateFile->FileName);
+
+ Dst = NewPrivateFile->FileName + AsciiStrLen (NewPrivateFile->FileName);
GuardPointer = NewPrivateFile->FileName + AsciiStrLen (PrivateRoot->FilePath);
- *Dst++ = '/';
+ *Dst++ = '/';
// Convert unicode to ascii and '\' to '/'
while (*Src) {
if (*Src == '\\') {
@@ -440,10 +436,11 @@ OpenRoot:
} else {
*Dst++ = *Src;
}
+
Src++;
}
- *Dst = 0;
+ *Dst = 0;
//
// Get rid of . and .., except leading . or ..
@@ -453,16 +450,16 @@ OpenRoot:
// GuardPointer protect simplefilesystem root path not be destroyed
//
- LoopFinish = FALSE;
+ LoopFinish = FALSE;
while (!LoopFinish) {
LoopFinish = TRUE;
for (ParseFileName = GuardPointer; *ParseFileName; ParseFileName++) {
- if (*ParseFileName == '.' &&
- (*(ParseFileName + 1) == 0 || *(ParseFileName + 1) == '/') &&
- *(ParseFileName - 1) == '/'
- ) {
-
+ if ((*ParseFileName == '.') &&
+ ((*(ParseFileName + 1) == 0) || (*(ParseFileName + 1) == '/')) &&
+ (*(ParseFileName - 1) == '/')
+ )
+ {
//
// cut /.
//
@@ -471,12 +468,12 @@ OpenRoot:
break;
}
- if (*ParseFileName == '.' &&
- *(ParseFileName + 1) == '.' &&
- (*(ParseFileName + 2) == 0 || *(ParseFileName + 2) == '/') &&
- *(ParseFileName - 1) == '/'
- ) {
-
+ if ((*ParseFileName == '.') &&
+ (*(ParseFileName + 1) == '.') &&
+ ((*(ParseFileName + 2) == 0) || (*(ParseFileName + 2) == '/')) &&
+ (*(ParseFileName - 1) == '/')
+ )
+ {
ParseFileName--;
Count = 3;
@@ -505,7 +502,7 @@ OpenRoot:
goto OpenRoot;
}
- RealFileName = NewPrivateFile->FileName + AsciiStrLen(NewPrivateFile->FileName) - 1;
+ RealFileName = NewPrivateFile->FileName + AsciiStrLen (NewPrivateFile->FileName) - 1;
while (RealFileName > NewPrivateFile->FileName && *RealFileName != '/') {
RealFileName--;
}
@@ -514,13 +511,12 @@ OpenRoot:
*(RealFileName - 1) = 0;
*(RealFileName - 1) = TempChar;
-
//
// Test whether file or directory
//
NewPrivateFile->IsRootDirectory = FALSE;
- NewPrivateFile->fd = -1;
- NewPrivateFile->Dir = NULL;
+ NewPrivateFile->fd = -1;
+ NewPrivateFile->Dir = NULL;
if (OpenMode & EFI_FILE_MODE_CREATE) {
if (Attributes & EFI_FILE_DIRECTORY) {
NewPrivateFile->IsDirectoryPath = TRUE;
@@ -529,7 +525,7 @@ OpenRoot:
}
} else {
res = stat (NewPrivateFile->FileName, &finfo);
- if (res == 0 && S_ISDIR(finfo.st_mode)) {
+ if ((res == 0) && S_ISDIR (finfo.st_mode)) {
NewPrivateFile->IsDirectoryPath = TRUE;
} else {
NewPrivateFile->IsDirectoryPath = FALSE;
@@ -554,7 +550,7 @@ OpenRoot:
//
if (mkdir (NewPrivateFile->FileName, 0777) != 0) {
if (errno != EEXIST) {
- //free (TempFileName);
+ // free (TempFileName);
Status = EFI_ACCESS_DENIED;
goto Done;
}
@@ -571,16 +567,15 @@ OpenRoot:
goto Done;
}
-
} else {
//
// deal with file
//
NewPrivateFile->fd = open (
- NewPrivateFile->FileName,
- ((OpenMode & EFI_FILE_MODE_CREATE) ? O_CREAT : 0) | (NewPrivateFile->IsOpenedByRead ? O_RDONLY : O_RDWR),
- 0666
- );
+ NewPrivateFile->FileName,
+ ((OpenMode & EFI_FILE_MODE_CREATE) ? O_CREAT : 0) | (NewPrivateFile->IsOpenedByRead ? O_RDONLY : O_RDWR),
+ 0666
+ );
if (NewPrivateFile->fd < 0) {
if (errno == ENOENT) {
Status = EFI_NOT_FOUND;
@@ -590,13 +585,13 @@ OpenRoot:
}
}
- if ((OpenMode & EFI_FILE_MODE_CREATE) && Status == EFI_SUCCESS) {
+ if ((OpenMode & EFI_FILE_MODE_CREATE) && (Status == EFI_SUCCESS)) {
//
// Set the attribute
//
- InfoSize = 0;
- Info = NULL;
- Status = PosixFileGetInfo (&NewPrivateFile->EfiFile, &gEfiFileInfoGuid, &InfoSize, Info);
+ InfoSize = 0;
+ Info = NULL;
+ Status = PosixFileGetInfo (&NewPrivateFile->EfiFile, &gEfiFileInfoGuid, &InfoSize, Info);
if (Status != EFI_BUFFER_TOO_SMALL) {
Status = EFI_DEVICE_ERROR;
goto Done;
@@ -618,10 +613,10 @@ OpenRoot:
free (Info);
}
-Done: ;
+Done:;
if (TrailingDash) {
- FileName[StrLen (FileName) + 1] = 0;
- FileName[StrLen (FileName)] = L'\\';
+ FileName[StrLen (FileName) + 1] = 0;
+ FileName[StrLen (FileName)] = L'\\';
}
if (EFI_ERROR (Status)) {
@@ -639,8 +634,6 @@ Done: ;
return Status;
}
-
-
/**
Close the file handle
@@ -654,18 +647,19 @@ PosixFileCLose (
IN EFI_FILE_PROTOCOL *This
)
{
- EMU_EFI_FILE_PRIVATE *PrivateFile;
+ EMU_EFI_FILE_PRIVATE *PrivateFile;
PrivateFile = EMU_EFI_FILE_PRIVATE_DATA_FROM_THIS (This);
if (PrivateFile->fd >= 0) {
close (PrivateFile->fd);
}
+
if (PrivateFile->Dir != NULL) {
closedir (PrivateFile->Dir);
}
- PrivateFile->fd = -1;
+ PrivateFile->fd = -1;
PrivateFile->Dir = NULL;
if (PrivateFile->FileName) {
@@ -677,7 +671,6 @@ PosixFileCLose (
return EFI_SUCCESS;
}
-
/**
Close and delete the file handle.
@@ -692,8 +685,8 @@ PosixFileDelete (
IN EFI_FILE_PROTOCOL *This
)
{
- EFI_STATUS Status;
- EMU_EFI_FILE_PRIVATE *PrivateFile;
+ EFI_STATUS Status;
+ EMU_EFI_FILE_PRIVATE *PrivateFile;
PrivateFile = EMU_EFI_FILE_PRIVATE_DATA_FROM_THIS (This);
Status = EFI_WARN_DELETE_FAILURE;
@@ -724,7 +717,6 @@ PosixFileDelete (
return Status;
}
-
/**
Read data from the file.
@@ -741,19 +733,19 @@ PosixFileDelete (
**/
EFI_STATUS
PosixFileRead (
- IN EFI_FILE_PROTOCOL *This,
- IN OUT UINTN *BufferSize,
- OUT VOID *Buffer
+ IN EFI_FILE_PROTOCOL *This,
+ IN OUT UINTN *BufferSize,
+ OUT VOID *Buffer
)
{
- EMU_EFI_FILE_PRIVATE *PrivateFile;
- EFI_STATUS Status;
- int Res;
- UINTN Size;
- UINTN NameSize;
- UINTN ResultSize;
- CHAR8 *FullFileName;
- UINTN FullFileNameSize;
+ EMU_EFI_FILE_PRIVATE *PrivateFile;
+ EFI_STATUS Status;
+ int Res;
+ UINTN Size;
+ UINTN NameSize;
+ UINTN ResultSize;
+ CHAR8 *FullFileName;
+ UINTN FullFileNameSize;
PrivateFile = EMU_EFI_FILE_PRIVATE_DATA_FROM_THIS (This);
@@ -768,8 +760,9 @@ PosixFileRead (
Status = EFI_DEVICE_ERROR;
goto Done;
}
+
*BufferSize = Res;
- Status = EFI_SUCCESS;
+ Status = EFI_SUCCESS;
goto Done;
}
@@ -785,26 +778,27 @@ PosixFileRead (
PrivateFile->Dirent = readdir (PrivateFile->Dir);
if (PrivateFile->Dirent == NULL) {
*BufferSize = 0;
- Status = EFI_SUCCESS;
+ Status = EFI_SUCCESS;
goto Done;
}
}
- Size = SIZE_OF_EFI_FILE_INFO;
- NameSize = AsciiStrLen (PrivateFile->Dirent->d_name) + 1;
- ResultSize = Size + 2 * NameSize;
+ Size = SIZE_OF_EFI_FILE_INFO;
+ NameSize = AsciiStrLen (PrivateFile->Dirent->d_name) + 1;
+ ResultSize = Size + 2 * NameSize;
if (*BufferSize < ResultSize) {
*BufferSize = ResultSize;
- Status = EFI_BUFFER_TOO_SMALL;
+ Status = EFI_BUFFER_TOO_SMALL;
goto Done;
}
- Status = EFI_SUCCESS;
+
+ Status = EFI_SUCCESS;
*BufferSize = ResultSize;
- FullFileNameSize = AsciiStrLen(PrivateFile->FileName) + 1 + NameSize;
- FullFileName = malloc (FullFileNameSize);
+ FullFileNameSize = AsciiStrLen (PrivateFile->FileName) + 1 + NameSize;
+ FullFileName = malloc (FullFileNameSize);
if (FullFileName == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Done;
@@ -814,11 +808,11 @@ PosixFileRead (
AsciiStrCatS (FullFileName, FullFileNameSize, "/");
AsciiStrCatS (FullFileName, FullFileNameSize, PrivateFile->Dirent->d_name);
Status = UnixSimpleFileSystemFileInfo (
- PrivateFile,
- FullFileName,
- BufferSize,
- Buffer
- );
+ PrivateFile,
+ FullFileName,
+ BufferSize,
+ Buffer
+ );
free (FullFileName);
PrivateFile->Dirent = NULL;
@@ -827,8 +821,6 @@ Done:
return Status;
}
-
-
/**
Write data to a file.
@@ -849,15 +841,14 @@ Done:
**/
EFI_STATUS
PosixFileWrite (
- IN EFI_FILE_PROTOCOL *This,
- IN OUT UINTN *BufferSize,
- IN VOID *Buffer
+ IN EFI_FILE_PROTOCOL *This,
+ IN OUT UINTN *BufferSize,
+ IN VOID *Buffer
)
{
EMU_EFI_FILE_PRIVATE *PrivateFile;
int Res;
-
PrivateFile = EMU_EFI_FILE_PRIVATE_DATA_FROM_THIS (This);
if (PrivateFile->fd < 0) {
@@ -881,8 +872,6 @@ PosixFileWrite (
return EFI_SUCCESS;
}
-
-
/**
Set a files current position
@@ -895,12 +884,12 @@ PosixFileWrite (
**/
EFI_STATUS
PosixFileSetPossition (
- IN EFI_FILE_PROTOCOL *This,
- IN UINT64 Position
+ IN EFI_FILE_PROTOCOL *This,
+ IN UINT64 Position
)
{
- EMU_EFI_FILE_PRIVATE *PrivateFile;
- off_t Pos;
+ EMU_EFI_FILE_PRIVATE *PrivateFile;
+ off_t Pos;
PrivateFile = EMU_EFI_FILE_PRIVATE_DATA_FROM_THIS (This);
@@ -912,23 +901,24 @@ PosixFileSetPossition (
if (PrivateFile->Dir == NULL) {
return EFI_DEVICE_ERROR;
}
+
rewinddir (PrivateFile->Dir);
return EFI_SUCCESS;
} else {
- if (Position == (UINT64) -1) {
+ if (Position == (UINT64)-1) {
Pos = lseek (PrivateFile->fd, 0, SEEK_END);
} else {
Pos = lseek (PrivateFile->fd, Position, SEEK_SET);
}
+
if (Pos == (off_t)-1) {
return ErrnoToEfiStatus ();
}
+
return EFI_SUCCESS;
}
}
-
-
/**
Get a file's current position
@@ -941,26 +931,25 @@ PosixFileSetPossition (
**/
EFI_STATUS
PosixFileGetPossition (
- IN EFI_FILE_PROTOCOL *This,
- OUT UINT64 *Position
+ IN EFI_FILE_PROTOCOL *This,
+ OUT UINT64 *Position
)
{
EFI_STATUS Status;
EMU_EFI_FILE_PRIVATE *PrivateFile;
- PrivateFile = EMU_EFI_FILE_PRIVATE_DATA_FROM_THIS (This);
+ PrivateFile = EMU_EFI_FILE_PRIVATE_DATA_FROM_THIS (This);
if (PrivateFile->IsDirectoryPath) {
Status = EFI_UNSUPPORTED;
} else {
*Position = (UINT64)lseek (PrivateFile->fd, 0, SEEK_CUR);
- Status = (*Position == (UINT64) -1) ? ErrnoToEfiStatus () : EFI_SUCCESS;
+ Status = (*Position == (UINT64)-1) ? ErrnoToEfiStatus () : EFI_SUCCESS;
}
return Status;
}
-
/**
Get information about a file.
@@ -981,18 +970,18 @@ PosixFileGetPossition (
**/
EFI_STATUS
PosixFileGetInfo (
- IN EFI_FILE_PROTOCOL *This,
- IN EFI_GUID *InformationType,
- IN OUT UINTN *BufferSize,
- OUT VOID *Buffer
+ IN EFI_FILE_PROTOCOL *This,
+ IN EFI_GUID *InformationType,
+ IN OUT UINTN *BufferSize,
+ OUT VOID *Buffer
)
{
- EFI_STATUS Status;
- EMU_EFI_FILE_PRIVATE *PrivateFile;
- EFI_FILE_SYSTEM_INFO *FileSystemInfoBuffer;
- int UnixStatus;
- EMU_SIMPLE_FILE_SYSTEM_PRIVATE *PrivateRoot;
- struct statfs buf;
+ EFI_STATUS Status;
+ EMU_EFI_FILE_PRIVATE *PrivateFile;
+ EFI_FILE_SYSTEM_INFO *FileSystemInfoBuffer;
+ int UnixStatus;
+ EMU_SIMPLE_FILE_SYSTEM_PRIVATE *PrivateRoot;
+ struct statfs buf;
PrivateFile = EMU_EFI_FILE_PRIVATE_DATA_FROM_THIS (This);
PrivateRoot = EMU_SIMPLE_FILE_SYSTEM_PRIVATE_DATA_FROM_THIS (PrivateFile->SimpleFileSystem);
@@ -1011,25 +1000,23 @@ PosixFileGetInfo (
return EFI_DEVICE_ERROR;
}
- FileSystemInfoBuffer = (EFI_FILE_SYSTEM_INFO *) Buffer;
- FileSystemInfoBuffer->Size = SIZE_OF_EFI_FILE_SYSTEM_INFO + StrSize (PrivateRoot->VolumeLabel);
- FileSystemInfoBuffer->ReadOnly = FALSE;
+ FileSystemInfoBuffer = (EFI_FILE_SYSTEM_INFO *)Buffer;
+ FileSystemInfoBuffer->Size = SIZE_OF_EFI_FILE_SYSTEM_INFO + StrSize (PrivateRoot->VolumeLabel);
+ FileSystemInfoBuffer->ReadOnly = FALSE;
//
// Succeeded
//
- FileSystemInfoBuffer->VolumeSize = MultU64x32 (buf.f_blocks, buf.f_bsize);
- FileSystemInfoBuffer->FreeSpace = MultU64x32 (buf.f_bavail, buf.f_bsize);
- FileSystemInfoBuffer->BlockSize = buf.f_bsize;
-
+ FileSystemInfoBuffer->VolumeSize = MultU64x32 (buf.f_blocks, buf.f_bsize);
+ FileSystemInfoBuffer->FreeSpace = MultU64x32 (buf.f_bavail, buf.f_bsize);
+ FileSystemInfoBuffer->BlockSize = buf.f_bsize;
StrCpyS (
- (CHAR16 *) FileSystemInfoBuffer->VolumeLabel,
+ (CHAR16 *)FileSystemInfoBuffer->VolumeLabel,
(*BufferSize - SIZE_OF_EFI_FILE_SYSTEM_INFO) / sizeof (CHAR16),
PrivateRoot->VolumeLabel
);
*BufferSize = SIZE_OF_EFI_FILE_SYSTEM_INFO + StrSize (PrivateRoot->VolumeLabel);
-
} else if (CompareGuid (InformationType, &gEfiFileSystemVolumeLabelInfoIdGuid)) {
if (*BufferSize < StrSize (PrivateRoot->VolumeLabel)) {
*BufferSize = StrSize (PrivateRoot->VolumeLabel);
@@ -1037,18 +1024,16 @@ PosixFileGetInfo (
}
StrCpyS (
- (CHAR16 *) Buffer,
+ (CHAR16 *)Buffer,
*BufferSize / sizeof (CHAR16),
PrivateRoot->VolumeLabel
);
*BufferSize = StrSize (PrivateRoot->VolumeLabel);
-
}
return Status;
}
-
/**
Set information about a file
@@ -1068,42 +1053,42 @@ PosixFileGetInfo (
**/
EFI_STATUS
PosixFileSetInfo (
- IN EFI_FILE_PROTOCOL *This,
- IN EFI_GUID *InformationType,
- IN UINTN BufferSize,
- IN VOID *Buffer
+ IN EFI_FILE_PROTOCOL *This,
+ IN EFI_GUID *InformationType,
+ IN UINTN BufferSize,
+ IN VOID *Buffer
)
{
- EMU_SIMPLE_FILE_SYSTEM_PRIVATE *PrivateRoot;
- EMU_EFI_FILE_PRIVATE *PrivateFile;
- EFI_FILE_INFO *OldFileInfo;
- EFI_FILE_INFO *NewFileInfo;
- EFI_STATUS Status;
- UINTN OldInfoSize;
- mode_t NewAttr;
- struct stat OldAttr;
- CHAR8 *OldFileName;
- CHAR8 *NewFileName;
- CHAR8 *CharPointer;
- BOOLEAN AttrChangeFlag;
- BOOLEAN NameChangeFlag;
- BOOLEAN SizeChangeFlag;
- BOOLEAN TimeChangeFlag;
- struct tm NewLastAccessSystemTime;
- struct tm NewLastWriteSystemTime;
- EFI_FILE_SYSTEM_INFO *NewFileSystemInfo;
- CHAR8 *AsciiFilePtr;
- CHAR16 *UnicodeFilePtr;
- int UnixStatus;
- struct utimbuf Utime;
- UINTN Size;
-
- PrivateFile = EMU_EFI_FILE_PRIVATE_DATA_FROM_THIS (This);
- PrivateRoot = EMU_SIMPLE_FILE_SYSTEM_PRIVATE_DATA_FROM_THIS (PrivateFile->SimpleFileSystem);
- errno = 0;
- Status = EFI_UNSUPPORTED;
- OldFileInfo = NewFileInfo = NULL;
- OldFileName = NewFileName = NULL;
+ EMU_SIMPLE_FILE_SYSTEM_PRIVATE *PrivateRoot;
+ EMU_EFI_FILE_PRIVATE *PrivateFile;
+ EFI_FILE_INFO *OldFileInfo;
+ EFI_FILE_INFO *NewFileInfo;
+ EFI_STATUS Status;
+ UINTN OldInfoSize;
+ mode_t NewAttr;
+ struct stat OldAttr;
+ CHAR8 *OldFileName;
+ CHAR8 *NewFileName;
+ CHAR8 *CharPointer;
+ BOOLEAN AttrChangeFlag;
+ BOOLEAN NameChangeFlag;
+ BOOLEAN SizeChangeFlag;
+ BOOLEAN TimeChangeFlag;
+ struct tm NewLastAccessSystemTime;
+ struct tm NewLastWriteSystemTime;
+ EFI_FILE_SYSTEM_INFO *NewFileSystemInfo;
+ CHAR8 *AsciiFilePtr;
+ CHAR16 *UnicodeFilePtr;
+ int UnixStatus;
+ struct utimbuf Utime;
+ UINTN Size;
+
+ PrivateFile = EMU_EFI_FILE_PRIVATE_DATA_FROM_THIS (This);
+ PrivateRoot = EMU_SIMPLE_FILE_SYSTEM_PRIVATE_DATA_FROM_THIS (PrivateFile->SimpleFileSystem);
+ errno = 0;
+ Status = EFI_UNSUPPORTED;
+ OldFileInfo = NewFileInfo = NULL;
+ OldFileName = NewFileName = NULL;
AttrChangeFlag = NameChangeFlag = SizeChangeFlag = TimeChangeFlag = FALSE;
//
@@ -1115,7 +1100,7 @@ PosixFileSetInfo (
goto Done;
}
- NewFileSystemInfo = (EFI_FILE_SYSTEM_INFO *) Buffer;
+ NewFileSystemInfo = (EFI_FILE_SYSTEM_INFO *)Buffer;
free (PrivateRoot->VolumeLabel);
@@ -1146,7 +1131,7 @@ PosixFileSetInfo (
StrCpyS (
PrivateRoot->VolumeLabel,
StrSize (PrivateRoot->VolumeLabel) / sizeof (CHAR16),
- (CHAR16 *) Buffer
+ (CHAR16 *)Buffer
);
Status = EFI_SUCCESS;
@@ -1170,11 +1155,12 @@ PosixFileSetInfo (
//
// Check for invalid set file information parameters.
//
- NewFileInfo = (EFI_FILE_INFO *) Buffer;
- if (NewFileInfo->Size <= sizeof (EFI_FILE_INFO) ||
+ NewFileInfo = (EFI_FILE_INFO *)Buffer;
+ if ((NewFileInfo->Size <= sizeof (EFI_FILE_INFO)) ||
(NewFileInfo->Attribute &~(EFI_FILE_VALID_ATTR)) ||
- (sizeof (UINTN) == 4 && NewFileInfo->Size > 0xFFFFFFFF)
- ) {
+ ((sizeof (UINTN) == 4) && (NewFileInfo->Size > 0xFFFFFFFF))
+ )
+ {
Status = EFI_INVALID_PARAMETER;
goto Done;
}
@@ -1184,7 +1170,7 @@ PosixFileSetInfo (
// of change request this is.
//
OldInfoSize = 0;
- Status = UnixSimpleFileSystemFileInfo (PrivateFile, NULL, &OldInfoSize, NULL);
+ Status = UnixSimpleFileSystemFileInfo (PrivateFile, NULL, &OldInfoSize, NULL);
if (Status != EFI_BUFFER_TOO_SMALL) {
Status = EFI_DEVICE_ERROR;
goto Done;
@@ -1215,37 +1201,40 @@ PosixFileSetInfo (
// Make full pathname from new filename and rootpath.
//
if (NewFileInfo->FileName[0] == '\\') {
- Size = AsciiStrLen (PrivateRoot->FilePath) + 1 + StrLen (NewFileInfo->FileName) + 1;
+ Size = AsciiStrLen (PrivateRoot->FilePath) + 1 + StrLen (NewFileInfo->FileName) + 1;
NewFileName = malloc (Size);
if (NewFileName == NULL) {
goto Done;
}
AsciiStrCpyS (NewFileName, Size, PrivateRoot->FilePath);
- AsciiFilePtr = NewFileName + AsciiStrLen(NewFileName);
- UnicodeFilePtr = NewFileInfo->FileName + 1;
- *AsciiFilePtr++ ='/';
+ AsciiFilePtr = NewFileName + AsciiStrLen (NewFileName);
+ UnicodeFilePtr = NewFileInfo->FileName + 1;
+ *AsciiFilePtr++ = '/';
} else {
- Size = AsciiStrLen (PrivateFile->FileName) + 2 + StrLen (NewFileInfo->FileName) + 1;
+ Size = AsciiStrLen (PrivateFile->FileName) + 2 + StrLen (NewFileInfo->FileName) + 1;
NewFileName = malloc (Size);
if (NewFileName == NULL) {
goto Done;
}
AsciiStrCpyS (NewFileName, Size, PrivateRoot->FilePath);
- AsciiFilePtr = NewFileName + AsciiStrLen(NewFileName);
+ AsciiFilePtr = NewFileName + AsciiStrLen (NewFileName);
if ((AsciiFilePtr[-1] != '/') && (NewFileInfo->FileName[0] != '/')) {
// make sure there is a / between Root FilePath and NewFileInfo Filename
AsciiFilePtr[0] = '/';
AsciiFilePtr[1] = '\0';
AsciiFilePtr++;
}
+
UnicodeFilePtr = NewFileInfo->FileName;
}
+
// Convert to ascii.
while (*UnicodeFilePtr) {
*AsciiFilePtr++ = *UnicodeFilePtr++;
}
+
*AsciiFilePtr = 0;
//
@@ -1280,15 +1269,18 @@ PosixFileSetInfo (
//
if (!IsZero (&NewFileInfo->CreateTime, sizeof (EFI_TIME)) &&
CompareMem (&NewFileInfo->CreateTime, &OldFileInfo->CreateTime, sizeof (EFI_TIME))
- ) {
+ )
+ {
TimeChangeFlag = TRUE;
} else if (!IsZero (&NewFileInfo->LastAccessTime, sizeof (EFI_TIME)) &&
CompareMem (&NewFileInfo->LastAccessTime, &OldFileInfo->LastAccessTime, sizeof (EFI_TIME))
- ) {
+ )
+ {
TimeChangeFlag = TRUE;
} else if (!IsZero (&NewFileInfo->ModificationTime, sizeof (EFI_TIME)) &&
CompareMem (&NewFileInfo->ModificationTime, &OldFileInfo->ModificationTime, sizeof (EFI_TIME))
- ) {
+ )
+ {
TimeChangeFlag = TRUE;
}
@@ -1346,7 +1338,7 @@ PosixFileSetInfo (
NewFileName
);
} else {
- Status = EFI_DEVICE_ERROR;
+ Status = EFI_DEVICE_ERROR;
goto Done;
}
}
@@ -1369,34 +1361,33 @@ PosixFileSetInfo (
Status = ErrnoToEfiStatus ();
goto Done;
}
-
}
//
// Time change
//
if (TimeChangeFlag) {
- NewLastAccessSystemTime.tm_year = NewFileInfo->LastAccessTime.Year;
- NewLastAccessSystemTime.tm_mon = NewFileInfo->LastAccessTime.Month;
- NewLastAccessSystemTime.tm_mday = NewFileInfo->LastAccessTime.Day;
- NewLastAccessSystemTime.tm_hour = NewFileInfo->LastAccessTime.Hour;
- NewLastAccessSystemTime.tm_min = NewFileInfo->LastAccessTime.Minute;
- NewLastAccessSystemTime.tm_sec = NewFileInfo->LastAccessTime.Second;
- NewLastAccessSystemTime.tm_isdst = 0;
+ NewLastAccessSystemTime.tm_year = NewFileInfo->LastAccessTime.Year;
+ NewLastAccessSystemTime.tm_mon = NewFileInfo->LastAccessTime.Month;
+ NewLastAccessSystemTime.tm_mday = NewFileInfo->LastAccessTime.Day;
+ NewLastAccessSystemTime.tm_hour = NewFileInfo->LastAccessTime.Hour;
+ NewLastAccessSystemTime.tm_min = NewFileInfo->LastAccessTime.Minute;
+ NewLastAccessSystemTime.tm_sec = NewFileInfo->LastAccessTime.Second;
+ NewLastAccessSystemTime.tm_isdst = 0;
Utime.actime = mktime (&NewLastAccessSystemTime);
- NewLastWriteSystemTime.tm_year = NewFileInfo->ModificationTime.Year;
- NewLastWriteSystemTime.tm_mon = NewFileInfo->ModificationTime.Month;
- NewLastWriteSystemTime.tm_mday = NewFileInfo->ModificationTime.Day;
- NewLastWriteSystemTime.tm_hour = NewFileInfo->ModificationTime.Hour;
- NewLastWriteSystemTime.tm_min = NewFileInfo->ModificationTime.Minute;
- NewLastWriteSystemTime.tm_sec = NewFileInfo->ModificationTime.Second;
- NewLastWriteSystemTime.tm_isdst = 0;
+ NewLastWriteSystemTime.tm_year = NewFileInfo->ModificationTime.Year;
+ NewLastWriteSystemTime.tm_mon = NewFileInfo->ModificationTime.Month;
+ NewLastWriteSystemTime.tm_mday = NewFileInfo->ModificationTime.Day;
+ NewLastWriteSystemTime.tm_hour = NewFileInfo->ModificationTime.Hour;
+ NewLastWriteSystemTime.tm_min = NewFileInfo->ModificationTime.Minute;
+ NewLastWriteSystemTime.tm_sec = NewFileInfo->ModificationTime.Second;
+ NewLastWriteSystemTime.tm_isdst = 0;
Utime.modtime = mktime (&NewLastWriteSystemTime);
- if (Utime.actime == (time_t)-1 || Utime.modtime == (time_t)-1) {
+ if ((Utime.actime == (time_t)-1) || (Utime.modtime == (time_t)-1)) {
goto Done;
}
@@ -1438,7 +1429,6 @@ Done:
return Status;
}
-
/**
Flush data back for the file handle.
@@ -1459,8 +1449,7 @@ PosixFileFlush (
IN EFI_FILE_PROTOCOL *This
)
{
- EMU_EFI_FILE_PRIVATE *PrivateFile;
-
+ EMU_EFI_FILE_PRIVATE *PrivateFile;
PrivateFile = EMU_EFI_FILE_PRIVATE_DATA_FROM_THIS (This);
@@ -1483,11 +1472,9 @@ PosixFileFlush (
return EFI_SUCCESS;
}
-
-
EFI_STATUS
PosixFileSystmeThunkOpen (
- IN EMU_IO_THUNK_PROTOCOL *This
+ IN EMU_IO_THUNK_PROTOCOL *This
)
{
EMU_SIMPLE_FILE_SYSTEM_PRIVATE *Private;
@@ -1516,8 +1503,8 @@ PosixFileSystmeThunkOpen (
for (i = 0; This->ConfigString[i] != 0; i++) {
Private->FilePath[i] = This->ConfigString[i];
}
- Private->FilePath[i] = 0;
+ Private->FilePath[i] = 0;
Private->VolumeLabel = malloc (StrSize (L"EFI_EMULATED"));
if (Private->VolumeLabel == NULL) {
@@ -1525,6 +1512,7 @@ PosixFileSystmeThunkOpen (
free (Private);
return EFI_OUT_OF_RESOURCES;
}
+
StrCpyS (
Private->VolumeLabel,
StrSize (L"EFI_EMULATED") / sizeof (CHAR16),
@@ -1541,10 +1529,9 @@ PosixFileSystmeThunkOpen (
return EFI_SUCCESS;
}
-
EFI_STATUS
PosixFileSystmeThunkClose (
- IN EMU_IO_THUNK_PROTOCOL *This
+ IN EMU_IO_THUNK_PROTOCOL *This
)
{
EMU_SIMPLE_FILE_SYSTEM_PRIVATE *Private;
@@ -1566,6 +1553,7 @@ PosixFileSystmeThunkClose (
if (Private->VolumeLabel != NULL) {
free (Private->VolumeLabel);
}
+
free (This->Private);
This->Private = NULL;
}
@@ -1573,8 +1561,7 @@ PosixFileSystmeThunkClose (
return EFI_SUCCESS;
}
-
-EMU_IO_THUNK_PROTOCOL gPosixFileSystemThunkIo = {
+EMU_IO_THUNK_PROTOCOL gPosixFileSystemThunkIo = {
&gEfiSimpleFileSystemProtocolGuid,
NULL,
NULL,
@@ -1583,5 +1570,3 @@ EMU_IO_THUNK_PROTOCOL gPosixFileSystemThunkIo = {
GasketPosixFileSystmeThunkClose,
NULL
};
-
-
diff --git a/EmulatorPkg/Unix/Host/Pthreads.c b/EmulatorPkg/Unix/Host/Pthreads.c
index 025687c356..ec3a38e573 100644
--- a/EmulatorPkg/Unix/Host/Pthreads.c
+++ b/EmulatorPkg/Unix/Host/Pthreads.c
@@ -12,48 +12,43 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include "Host.h"
#include <pthread.h>
-
UINTN
EFIAPI
PthreadMutexLock (
- IN VOID *Mutex
+ IN VOID *Mutex
)
{
return (UINTN)pthread_mutex_lock ((pthread_mutex_t *)Mutex);
}
-
-
UINTN
EFIAPI
PthreadMutexUnLock (
- IN VOID *Mutex
+ IN VOID *Mutex
)
{
return (UINTN)pthread_mutex_unlock ((pthread_mutex_t *)Mutex);
}
-
UINTN
EFIAPI
PthreadMutexTryLock (
- IN VOID *Mutex
+ IN VOID *Mutex
)
{
return (UINTN)pthread_mutex_trylock ((pthread_mutex_t *)Mutex);
}
-
VOID *
PthreadMutexInit (
IN VOID
)
{
- pthread_mutex_t *Mutex;
- int err;
+ pthread_mutex_t *Mutex;
+ int err;
Mutex = malloc (sizeof (pthread_mutex_t));
- err = pthread_mutex_init (Mutex, NULL);
+ err = pthread_mutex_init (Mutex, NULL);
if (err == 0) {
return Mutex;
}
@@ -61,10 +56,9 @@ PthreadMutexInit (
return NULL;
}
-
UINTN
PthreadMutexDestroy (
- IN VOID *Mutex
+ IN VOID *Mutex
)
{
if (Mutex != NULL) {
@@ -76,11 +70,11 @@ PthreadMutexDestroy (
// Can't store this data on PthreadCreate stack so we need a global
typedef struct {
- pthread_mutex_t Mutex;
- THREAD_THUNK_THREAD_ENTRY Start;
+ pthread_mutex_t Mutex;
+ THREAD_THUNK_THREAD_ENTRY Start;
} THREAD_MANGLE;
-THREAD_MANGLE mThreadMangle = {
+THREAD_MANGLE mThreadMangle = {
PTHREAD_MUTEX_INITIALIZER,
NULL
};
@@ -90,11 +84,11 @@ SecFakePthreadStart (
VOID *Context
)
{
- THREAD_THUNK_THREAD_ENTRY Start;
- sigset_t SigMask;
+ THREAD_THUNK_THREAD_ENTRY Start;
+ sigset_t SigMask;
// Save global on the stack before we unlock
- Start = mThreadMangle.Start;
+ Start = mThreadMangle.Start;
pthread_mutex_unlock (&mThreadMangle.Mutex);
// Mask all signals to the APs
@@ -109,19 +103,19 @@ SecFakePthreadStart (
// This is a great example of how all problems in computer
// science can be solved by adding another level of indirection
//
- return (VOID *)ReverseGasketUint64 ((UINTN)Start, (UINTN)Context);
+ return (VOID *)ReverseGasketUint64 ((UINTN)Start, (UINTN)Context);
}
UINTN
PthreadCreate (
- IN VOID *Thread,
- IN VOID *Attribute,
- IN THREAD_THUNK_THREAD_ENTRY Start,
- IN VOID *Context
+ IN VOID *Thread,
+ IN VOID *Attribute,
+ IN THREAD_THUNK_THREAD_ENTRY Start,
+ IN VOID *Context
)
{
- int err;
- BOOLEAN EnabledOnEntry;
+ int err;
+ BOOLEAN EnabledOnEntry;
//
// Threads inherit interrupt state so disable interrupts before we start thread
@@ -135,7 +129,7 @@ PthreadCreate (
// Acquire lock for global, SecFakePthreadStart runs in a different thread.
pthread_mutex_lock (&mThreadMangle.Mutex);
- mThreadMangle.Start = Start;
+ mThreadMangle.Start = Start;
err = pthread_create (Thread, Attribute, SecFakePthreadStart, Context);
if (err != 0) {
@@ -151,17 +145,15 @@ PthreadCreate (
return err;
}
-
VOID
PthreadExit (
- IN VOID *ValuePtr
+ IN VOID *ValuePtr
)
{
pthread_exit (ValuePtr);
return;
}
-
UINTN
PthreadSelf (
VOID
@@ -173,8 +165,7 @@ PthreadSelf (
return (UINTN)pthread_self ();
}
-
-EMU_THREAD_THUNK_PROTOCOL gPthreadThunk = {
+EMU_THREAD_THUNK_PROTOCOL gPthreadThunk = {
GasketPthreadMutexLock,
GasketPthreadMutexUnLock,
GasketPthreadMutexTryLock,
@@ -185,10 +176,9 @@ EMU_THREAD_THUNK_PROTOCOL gPthreadThunk = {
GasketPthreadSelf
};
-
EFI_STATUS
PthreadOpen (
- IN EMU_IO_THUNK_PROTOCOL *This
+ IN EMU_IO_THUNK_PROTOCOL *This
)
{
if (This->Instance != 0) {
@@ -206,17 +196,15 @@ PthreadOpen (
return EFI_SUCCESS;
}
-
EFI_STATUS
PthreadClose (
- IN EMU_IO_THUNK_PROTOCOL *This
+ IN EMU_IO_THUNK_PROTOCOL *This
)
{
return EFI_SUCCESS;
}
-
-EMU_IO_THUNK_PROTOCOL gPthreadThunkIo = {
+EMU_IO_THUNK_PROTOCOL gPthreadThunkIo = {
&gEmuThreadThunkProtocolGuid,
NULL,
NULL,
@@ -225,5 +213,3 @@ EMU_IO_THUNK_PROTOCOL gPthreadThunkIo = {
GasketPthreadClose,
NULL
};
-
-
diff --git a/EmulatorPkg/Unix/Host/X11GraphicsWindow.c b/EmulatorPkg/Unix/Host/X11GraphicsWindow.c
index 5325a0e35b..a30cc19dbe 100644
--- a/EmulatorPkg/Unix/Host/X11GraphicsWindow.c
+++ b/EmulatorPkg/Unix/Host/X11GraphicsWindow.c
@@ -22,140 +22,147 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#define KEYSYM_LOWER 0
#define KEYSYM_UPPER 1
-
struct uga_drv_shift_mask {
- unsigned char shift;
- unsigned char size;
- unsigned char csize;
+ unsigned char shift;
+ unsigned char size;
+ unsigned char csize;
};
-#define NBR_KEYS 32
+#define NBR_KEYS 32
typedef struct {
- EMU_GRAPHICS_WINDOW_PROTOCOL GraphicsIo;
+ EMU_GRAPHICS_WINDOW_PROTOCOL GraphicsIo;
- Display *display;
- int screen; // values for window_size in main
- Window win;
- GC gc;
- Visual *visual;
+ Display *display;
+ int screen; // values for window_size in main
+ Window win;
+ GC gc;
+ Visual *visual;
- int depth;
- unsigned int width;
- unsigned int height;
- unsigned int line_bytes;
- unsigned int pixel_shift;
- unsigned char *image_data;
+ int depth;
+ unsigned int width;
+ unsigned int height;
+ unsigned int line_bytes;
+ unsigned int pixel_shift;
+ unsigned char *image_data;
- struct uga_drv_shift_mask r, g, b;
+ struct uga_drv_shift_mask r, g, b;
- int use_shm;
- XShmSegmentInfo xshm_info;
- XImage *image;
- char *Title;
+ int use_shm;
+ XShmSegmentInfo xshm_info;
+ XImage *image;
+ char *Title;
- unsigned int key_rd;
- unsigned int key_wr;
- unsigned int key_count;
- EFI_KEY_DATA keys[NBR_KEYS];
+ unsigned int key_rd;
+ unsigned int key_wr;
+ unsigned int key_count;
+ EFI_KEY_DATA keys[NBR_KEYS];
- EFI_KEY_STATE KeyState;
+ EFI_KEY_STATE KeyState;
EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK MakeRegisterdKeyCallback;
EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK BreakRegisterdKeyCallback;
VOID *RegisterdKeyCallbackContext;
- int previous_x;
- int previous_y;
- EFI_SIMPLE_POINTER_STATE pointer_state;
- int pointer_state_changed;
+ int previous_x;
+ int previous_y;
+ EFI_SIMPLE_POINTER_STATE pointer_state;
+ int pointer_state_changed;
} GRAPHICS_IO_PRIVATE;
void
-HandleEvents(
- IN GRAPHICS_IO_PRIVATE *Drv
+HandleEvents (
+ IN GRAPHICS_IO_PRIVATE *Drv
);
void
fill_shift_mask (
- IN struct uga_drv_shift_mask *sm,
- IN unsigned long mask
+ IN struct uga_drv_shift_mask *sm,
+ IN unsigned long mask
)
{
sm->shift = 0;
- sm->size = 0;
+ sm->size = 0;
while ((mask & 1) == 0) {
mask >>= 1;
sm->shift++;
}
+
while (mask & 1) {
sm->size++;
mask >>= 1;
}
+
sm->csize = 8 - sm->size;
}
int
TryCreateShmImage (
- IN GRAPHICS_IO_PRIVATE *Drv
+ IN GRAPHICS_IO_PRIVATE *Drv
)
{
Drv->image = XShmCreateImage (
- Drv->display, Drv->visual,
- Drv->depth, ZPixmap, NULL, &Drv->xshm_info,
- Drv->width, Drv->height
+ Drv->display,
+ Drv->visual,
+ Drv->depth,
+ ZPixmap,
+ NULL,
+ &Drv->xshm_info,
+ Drv->width,
+ Drv->height
);
if (Drv->image == NULL) {
return 0;
}
switch (Drv->image->bitmap_unit) {
- case 32:
- Drv->pixel_shift = 2;
- break;
- case 16:
- Drv->pixel_shift = 1;
- break;
- case 8:
- Drv->pixel_shift = 0;
- break;
+ case 32:
+ Drv->pixel_shift = 2;
+ break;
+ case 16:
+ Drv->pixel_shift = 1;
+ break;
+ case 8:
+ Drv->pixel_shift = 0;
+ break;
}
Drv->xshm_info.shmid = shmget (
- IPC_PRIVATE, Drv->image->bytes_per_line * Drv->image->height,
- IPC_CREAT | 0777
- );
+ IPC_PRIVATE,
+ Drv->image->bytes_per_line * Drv->image->height,
+ IPC_CREAT | 0777
+ );
if (Drv->xshm_info.shmid < 0) {
- XDestroyImage(Drv->image);
+ XDestroyImage (Drv->image);
return 0;
}
Drv->image_data = shmat (Drv->xshm_info.shmid, NULL, 0);
- if(!Drv->image_data) {
+ if (!Drv->image_data) {
shmctl (Drv->xshm_info.shmid, IPC_RMID, NULL);
- XDestroyImage(Drv->image);
+ XDestroyImage (Drv->image);
return 0;
}
-#ifndef __APPLE__
+ #ifndef __APPLE__
//
// This closes shared memory in real time on OS X. Only closes after folks quit using
// it on Linux.
//
shmctl (Drv->xshm_info.shmid, IPC_RMID, NULL);
-#endif
+ #endif
- Drv->xshm_info.shmaddr = (char*)Drv->image_data;
- Drv->image->data = (char*)Drv->image_data;
+ Drv->xshm_info.shmaddr = (char *)Drv->image_data;
+ Drv->image->data = (char *)Drv->image_data;
if (!XShmAttach (Drv->display, &Drv->xshm_info)) {
shmdt (Drv->image_data);
- XDestroyImage(Drv->image);
+ XDestroyImage (Drv->image);
return 0;
}
+
return 1;
}
-
EFI_STATUS
X11Size (
IN EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsIo,
@@ -163,8 +170,8 @@ X11Size (
IN UINT32 Height
)
{
- GRAPHICS_IO_PRIVATE *Drv;
- XSizeHints size_hints;
+ GRAPHICS_IO_PRIVATE *Drv;
+ XSizeHints size_hints;
// Destroy current buffer if created.
Drv = (GRAPHICS_IO_PRIVATE *)GraphicsIo;
@@ -177,15 +184,15 @@ X11Size (
}
Drv->image_data = NULL;
- Drv->image = NULL;
+ Drv->image = NULL;
}
- Drv->width = Width;
+ Drv->width = Width;
Drv->height = Height;
XResizeWindow (Drv->display, Drv->win, Width, Height);
// Allocate image.
- if (XShmQueryExtension(Drv->display) && TryCreateShmImage(Drv)) {
+ if (XShmQueryExtension (Drv->display) && TryCreateShmImage (Drv)) {
Drv->use_shm = 1;
} else {
Drv->use_shm = 0;
@@ -198,12 +205,18 @@ X11Size (
}
Drv->image_data = malloc ((Drv->width * Drv->height) << Drv->pixel_shift);
- Drv->image = XCreateImage (
- Drv->display, Drv->visual, Drv->depth,
- ZPixmap, 0, (char *)Drv->image_data,
- Drv->width, Drv->height,
- 8 << Drv->pixel_shift, 0
- );
+ Drv->image = XCreateImage (
+ Drv->display,
+ Drv->visual,
+ Drv->depth,
+ ZPixmap,
+ 0,
+ (char *)Drv->image_data,
+ Drv->width,
+ Drv->height,
+ 8 << Drv->pixel_shift,
+ 0
+ );
}
Drv->line_bytes = Drv->image->bytes_per_line;
@@ -213,8 +226,8 @@ X11Size (
fill_shift_mask (&Drv->b, Drv->image->blue_mask);
// Set WM hints.
- size_hints.flags = PSize | PMinSize | PMaxSize;
- size_hints.min_width = size_hints.max_width = size_hints.base_width = Width;
+ size_hints.flags = PSize | PMinSize | PMaxSize;
+ size_hints.min_width = size_hints.max_width = size_hints.base_width = Width;
size_hints.min_height = size_hints.max_height = size_hints.base_height = Height;
XSetWMNormalHints (Drv->display, Drv->win, &size_hints);
@@ -225,9 +238,9 @@ X11Size (
void
handleKeyEvent (
- IN GRAPHICS_IO_PRIVATE *Drv,
- IN XEvent *ev,
- IN BOOLEAN Make
+ IN GRAPHICS_IO_PRIVATE *Drv,
+ IN XEvent *ev,
+ IN BOOLEAN Make
)
{
KeySym *KeySym;
@@ -250,8 +263,8 @@ handleKeyEvent (
//
KeySym = XGetKeyboardMapping (Drv->display, ev->xkey.keycode, 1, &KeySymArraySize);
- KeyData.Key.ScanCode = 0;
- KeyData.Key.UnicodeChar = 0;
+ KeyData.Key.ScanCode = 0;
+ KeyData.Key.UnicodeChar = 0;
KeyData.KeyState.KeyShiftState = 0;
//
@@ -268,186 +281,250 @@ handleKeyEvent (
// Skipping EFI_MENU_KEY_PRESSED and EFI_SYS_REQ_PRESSED
switch (*KeySym) {
- case XK_Control_R:
- if (Make) {
- Drv->KeyState.KeyShiftState |= EFI_RIGHT_CONTROL_PRESSED;
- } else {
- Drv->KeyState.KeyShiftState &= ~EFI_RIGHT_CONTROL_PRESSED;
- }
- break;
- case XK_Control_L:
- if (Make) {
- Drv->KeyState.KeyShiftState |= EFI_LEFT_CONTROL_PRESSED;
- } else {
- Drv->KeyState.KeyShiftState &= ~EFI_LEFT_CONTROL_PRESSED;
- }
- break;
-
- case XK_Shift_R:
- if (Make) {
- Drv->KeyState.KeyShiftState |= EFI_RIGHT_SHIFT_PRESSED;
- } else {
- Drv->KeyState.KeyShiftState &= ~EFI_RIGHT_SHIFT_PRESSED;
- }
- break;
- case XK_Shift_L:
- if (Make) {
- Drv->KeyState.KeyShiftState |= EFI_LEFT_SHIFT_PRESSED;
- } else {
- Drv->KeyState.KeyShiftState &= ~EFI_LEFT_SHIFT_PRESSED;
- }
- break;
-
- case XK_Mode_switch:
- if (Make) {
- Drv->KeyState.KeyShiftState |= EFI_LEFT_ALT_PRESSED;
- } else {
- Drv->KeyState.KeyShiftState &= ~EFI_LEFT_ALT_PRESSED;
- }
- break;
-
- case XK_Meta_R:
- if (Make) {
- Drv->KeyState.KeyShiftState |= EFI_RIGHT_LOGO_PRESSED;
- } else {
- Drv->KeyState.KeyShiftState &= ~EFI_RIGHT_LOGO_PRESSED;
- }
- break;
- case XK_Meta_L:
- if (Make) {
- Drv->KeyState.KeyShiftState |= EFI_LEFT_LOGO_PRESSED;
- } else {
- Drv->KeyState.KeyShiftState &= ~EFI_LEFT_LOGO_PRESSED;
- }
- break;
-
- case XK_KP_Home:
- case XK_Home: KeyData.Key.ScanCode = SCAN_HOME; break;
-
- case XK_KP_End:
- case XK_End: KeyData.Key.ScanCode = SCAN_END; break;
-
- case XK_KP_Left:
- case XK_Left: KeyData.Key.ScanCode = SCAN_LEFT; break;
-
- case XK_KP_Right:
- case XK_Right: KeyData.Key.ScanCode = SCAN_RIGHT; break;
-
- case XK_KP_Up:
- case XK_Up: KeyData.Key.ScanCode = SCAN_UP; break;
-
- case XK_KP_Down:
- case XK_Down: KeyData.Key.ScanCode = SCAN_DOWN; break;
-
- case XK_KP_Delete:
- case XK_Delete: KeyData.Key.ScanCode = SCAN_DELETE; break;
-
- case XK_KP_Insert:
- case XK_Insert: KeyData.Key.ScanCode = SCAN_INSERT; break;
-
- case XK_KP_Page_Up:
- case XK_Page_Up: KeyData.Key.ScanCode = SCAN_PAGE_UP; break;
-
- case XK_KP_Page_Down:
- case XK_Page_Down: KeyData.Key.ScanCode = SCAN_PAGE_DOWN; break;
-
- case XK_Escape: KeyData.Key.ScanCode = SCAN_ESC; break;
-
- case XK_Pause: KeyData.Key.ScanCode = SCAN_PAUSE; break;
-
- case XK_KP_F1:
- case XK_F1: KeyData.Key.ScanCode = SCAN_F1; break;
-
- case XK_KP_F2:
- case XK_F2: KeyData.Key.ScanCode = SCAN_F2; break;
-
- case XK_KP_F3:
- case XK_F3: KeyData.Key.ScanCode = SCAN_F3; break;
-
- case XK_KP_F4:
- case XK_F4: KeyData.Key.ScanCode = SCAN_F4; break;
+ case XK_Control_R:
+ if (Make) {
+ Drv->KeyState.KeyShiftState |= EFI_RIGHT_CONTROL_PRESSED;
+ } else {
+ Drv->KeyState.KeyShiftState &= ~EFI_RIGHT_CONTROL_PRESSED;
+ }
- case XK_F5: KeyData.Key.ScanCode = SCAN_F5; break;
- case XK_F6: KeyData.Key.ScanCode = SCAN_F6; break;
- case XK_F7: KeyData.Key.ScanCode = SCAN_F7; break;
+ break;
+ case XK_Control_L:
+ if (Make) {
+ Drv->KeyState.KeyShiftState |= EFI_LEFT_CONTROL_PRESSED;
+ } else {
+ Drv->KeyState.KeyShiftState &= ~EFI_LEFT_CONTROL_PRESSED;
+ }
- // Don't map into X11 by default on a Mac
- // System Preferences->Keyboard->Keyboard Shortcuts can be configured
- // to not use higher function keys as shortcuts and the will show up
- // in X11.
- case XK_F8: KeyData.Key.ScanCode = SCAN_F8; break;
- case XK_F9: KeyData.Key.ScanCode = SCAN_F9; break;
- case XK_F10: KeyData.Key.ScanCode = SCAN_F10; break;
+ break;
- case XK_F11: KeyData.Key.ScanCode = SCAN_F11; break;
- case XK_F12: KeyData.Key.ScanCode = SCAN_F12; break;
+ case XK_Shift_R:
+ if (Make) {
+ Drv->KeyState.KeyShiftState |= EFI_RIGHT_SHIFT_PRESSED;
+ } else {
+ Drv->KeyState.KeyShiftState &= ~EFI_RIGHT_SHIFT_PRESSED;
+ }
- case XK_F13: KeyData.Key.ScanCode = SCAN_F13; break;
- case XK_F14: KeyData.Key.ScanCode = SCAN_F14; break;
- case XK_F15: KeyData.Key.ScanCode = SCAN_F15; break;
- case XK_F16: KeyData.Key.ScanCode = SCAN_F16; break;
- case XK_F17: KeyData.Key.ScanCode = SCAN_F17; break;
- case XK_F18: KeyData.Key.ScanCode = SCAN_F18; break;
- case XK_F19: KeyData.Key.ScanCode = SCAN_F19; break;
- case XK_F20: KeyData.Key.ScanCode = SCAN_F20; break;
- case XK_F21: KeyData.Key.ScanCode = SCAN_F21; break;
- case XK_F22: KeyData.Key.ScanCode = SCAN_F22; break;
- case XK_F23: KeyData.Key.ScanCode = SCAN_F23; break;
- case XK_F24: KeyData.Key.ScanCode = SCAN_F24; break;
+ break;
+ case XK_Shift_L:
+ if (Make) {
+ Drv->KeyState.KeyShiftState |= EFI_LEFT_SHIFT_PRESSED;
+ } else {
+ Drv->KeyState.KeyShiftState &= ~EFI_LEFT_SHIFT_PRESSED;
+ }
- // No mapping in X11
- //case XK_: KeyData.Key.ScanCode = SCAN_MUTE; break;
- //case XK_: KeyData.Key.ScanCode = SCAN_VOLUME_UP; break;
- //case XK_: KeyData.Key.ScanCode = SCAN_VOLUME_DOWN; break;
- //case XK_: KeyData.Key.ScanCode = SCAN_BRIGHTNESS_UP; break;
- //case XK_: KeyData.Key.ScanCode = SCAN_BRIGHTNESS_DOWN; break;
- //case XK_: KeyData.Key.ScanCode = SCAN_SUSPEND; break;
- //case XK_: KeyData.Key.ScanCode = SCAN_HIBERNATE; break;
- //case XK_: KeyData.Key.ScanCode = SCAN_TOGGLE_DISPLAY; break;
- //case XK_: KeyData.Key.ScanCode = SCAN_RECOVERY; break;
- //case XK_: KeyData.Key.ScanCode = SCAN_EJECT; break;
+ break;
- case XK_BackSpace: KeyData.Key.UnicodeChar = 0x0008; break;
+ case XK_Mode_switch:
+ if (Make) {
+ Drv->KeyState.KeyShiftState |= EFI_LEFT_ALT_PRESSED;
+ } else {
+ Drv->KeyState.KeyShiftState &= ~EFI_LEFT_ALT_PRESSED;
+ }
- case XK_KP_Tab:
- case XK_Tab: KeyData.Key.UnicodeChar = 0x0009; break;
+ break;
- case XK_Linefeed: KeyData.Key.UnicodeChar = 0x000a; break;
+ case XK_Meta_R:
+ if (Make) {
+ Drv->KeyState.KeyShiftState |= EFI_RIGHT_LOGO_PRESSED;
+ } else {
+ Drv->KeyState.KeyShiftState &= ~EFI_RIGHT_LOGO_PRESSED;
+ }
- case XK_KP_Enter:
- case XK_Return: KeyData.Key.UnicodeChar = 0x000d; break;
+ break;
+ case XK_Meta_L:
+ if (Make) {
+ Drv->KeyState.KeyShiftState |= EFI_LEFT_LOGO_PRESSED;
+ } else {
+ Drv->KeyState.KeyShiftState &= ~EFI_LEFT_LOGO_PRESSED;
+ }
- case XK_KP_Equal : KeyData.Key.UnicodeChar = L'='; break;
- case XK_KP_Multiply : KeyData.Key.UnicodeChar = L'*'; break;
- case XK_KP_Add : KeyData.Key.UnicodeChar = L'+'; break;
- case XK_KP_Separator : KeyData.Key.UnicodeChar = L'~'; break;
- case XK_KP_Subtract : KeyData.Key.UnicodeChar = L'-'; break;
- case XK_KP_Decimal : KeyData.Key.UnicodeChar = L'.'; break;
- case XK_KP_Divide : KeyData.Key.UnicodeChar = L'/'; break;
-
- case XK_KP_0 : KeyData.Key.UnicodeChar = L'0'; break;
- case XK_KP_1 : KeyData.Key.UnicodeChar = L'1'; break;
- case XK_KP_2 : KeyData.Key.UnicodeChar = L'2'; break;
- case XK_KP_3 : KeyData.Key.UnicodeChar = L'3'; break;
- case XK_KP_4 : KeyData.Key.UnicodeChar = L'4'; break;
- case XK_KP_5 : KeyData.Key.UnicodeChar = L'5'; break;
- case XK_KP_6 : KeyData.Key.UnicodeChar = L'6'; break;
- case XK_KP_7 : KeyData.Key.UnicodeChar = L'7'; break;
- case XK_KP_8 : KeyData.Key.UnicodeChar = L'8'; break;
- case XK_KP_9 : KeyData.Key.UnicodeChar = L'9'; break;
-
- default:
- ;
+ break;
+
+ case XK_KP_Home:
+ case XK_Home: KeyData.Key.ScanCode = SCAN_HOME;
+ break;
+
+ case XK_KP_End:
+ case XK_End: KeyData.Key.ScanCode = SCAN_END;
+ break;
+
+ case XK_KP_Left:
+ case XK_Left: KeyData.Key.ScanCode = SCAN_LEFT;
+ break;
+
+ case XK_KP_Right:
+ case XK_Right: KeyData.Key.ScanCode = SCAN_RIGHT;
+ break;
+
+ case XK_KP_Up:
+ case XK_Up: KeyData.Key.ScanCode = SCAN_UP;
+ break;
+
+ case XK_KP_Down:
+ case XK_Down: KeyData.Key.ScanCode = SCAN_DOWN;
+ break;
+
+ case XK_KP_Delete:
+ case XK_Delete: KeyData.Key.ScanCode = SCAN_DELETE;
+ break;
+
+ case XK_KP_Insert:
+ case XK_Insert: KeyData.Key.ScanCode = SCAN_INSERT;
+ break;
+
+ case XK_KP_Page_Up:
+ case XK_Page_Up: KeyData.Key.ScanCode = SCAN_PAGE_UP;
+ break;
+
+ case XK_KP_Page_Down:
+ case XK_Page_Down: KeyData.Key.ScanCode = SCAN_PAGE_DOWN;
+ break;
+
+ case XK_Escape: KeyData.Key.ScanCode = SCAN_ESC;
+ break;
+
+ case XK_Pause: KeyData.Key.ScanCode = SCAN_PAUSE;
+ break;
+
+ case XK_KP_F1:
+ case XK_F1: KeyData.Key.ScanCode = SCAN_F1;
+ break;
+
+ case XK_KP_F2:
+ case XK_F2: KeyData.Key.ScanCode = SCAN_F2;
+ break;
+
+ case XK_KP_F3:
+ case XK_F3: KeyData.Key.ScanCode = SCAN_F3;
+ break;
+
+ case XK_KP_F4:
+ case XK_F4: KeyData.Key.ScanCode = SCAN_F4;
+ break;
+
+ case XK_F5: KeyData.Key.ScanCode = SCAN_F5;
+ break;
+ case XK_F6: KeyData.Key.ScanCode = SCAN_F6;
+ break;
+ case XK_F7: KeyData.Key.ScanCode = SCAN_F7;
+ break;
+
+ // Don't map into X11 by default on a Mac
+ // System Preferences->Keyboard->Keyboard Shortcuts can be configured
+ // to not use higher function keys as shortcuts and the will show up
+ // in X11.
+ case XK_F8: KeyData.Key.ScanCode = SCAN_F8;
+ break;
+ case XK_F9: KeyData.Key.ScanCode = SCAN_F9;
+ break;
+ case XK_F10: KeyData.Key.ScanCode = SCAN_F10;
+ break;
+
+ case XK_F11: KeyData.Key.ScanCode = SCAN_F11;
+ break;
+ case XK_F12: KeyData.Key.ScanCode = SCAN_F12;
+ break;
+
+ case XK_F13: KeyData.Key.ScanCode = SCAN_F13;
+ break;
+ case XK_F14: KeyData.Key.ScanCode = SCAN_F14;
+ break;
+ case XK_F15: KeyData.Key.ScanCode = SCAN_F15;
+ break;
+ case XK_F16: KeyData.Key.ScanCode = SCAN_F16;
+ break;
+ case XK_F17: KeyData.Key.ScanCode = SCAN_F17;
+ break;
+ case XK_F18: KeyData.Key.ScanCode = SCAN_F18;
+ break;
+ case XK_F19: KeyData.Key.ScanCode = SCAN_F19;
+ break;
+ case XK_F20: KeyData.Key.ScanCode = SCAN_F20;
+ break;
+ case XK_F21: KeyData.Key.ScanCode = SCAN_F21;
+ break;
+ case XK_F22: KeyData.Key.ScanCode = SCAN_F22;
+ break;
+ case XK_F23: KeyData.Key.ScanCode = SCAN_F23;
+ break;
+ case XK_F24: KeyData.Key.ScanCode = SCAN_F24;
+ break;
+
+ // No mapping in X11
+ // case XK_: KeyData.Key.ScanCode = SCAN_MUTE; break;
+ // case XK_: KeyData.Key.ScanCode = SCAN_VOLUME_UP; break;
+ // case XK_: KeyData.Key.ScanCode = SCAN_VOLUME_DOWN; break;
+ // case XK_: KeyData.Key.ScanCode = SCAN_BRIGHTNESS_UP; break;
+ // case XK_: KeyData.Key.ScanCode = SCAN_BRIGHTNESS_DOWN; break;
+ // case XK_: KeyData.Key.ScanCode = SCAN_SUSPEND; break;
+ // case XK_: KeyData.Key.ScanCode = SCAN_HIBERNATE; break;
+ // case XK_: KeyData.Key.ScanCode = SCAN_TOGGLE_DISPLAY; break;
+ // case XK_: KeyData.Key.ScanCode = SCAN_RECOVERY; break;
+ // case XK_: KeyData.Key.ScanCode = SCAN_EJECT; break;
+
+ case XK_BackSpace: KeyData.Key.UnicodeChar = 0x0008;
+ break;
+
+ case XK_KP_Tab:
+ case XK_Tab: KeyData.Key.UnicodeChar = 0x0009;
+ break;
+
+ case XK_Linefeed: KeyData.Key.UnicodeChar = 0x000a;
+ break;
+
+ case XK_KP_Enter:
+ case XK_Return: KeyData.Key.UnicodeChar = 0x000d;
+ break;
+
+ case XK_KP_Equal: KeyData.Key.UnicodeChar = L'=';
+ break;
+ case XK_KP_Multiply: KeyData.Key.UnicodeChar = L'*';
+ break;
+ case XK_KP_Add: KeyData.Key.UnicodeChar = L'+';
+ break;
+ case XK_KP_Separator: KeyData.Key.UnicodeChar = L'~';
+ break;
+ case XK_KP_Subtract: KeyData.Key.UnicodeChar = L'-';
+ break;
+ case XK_KP_Decimal: KeyData.Key.UnicodeChar = L'.';
+ break;
+ case XK_KP_Divide: KeyData.Key.UnicodeChar = L'/';
+ break;
+
+ case XK_KP_0: KeyData.Key.UnicodeChar = L'0';
+ break;
+ case XK_KP_1: KeyData.Key.UnicodeChar = L'1';
+ break;
+ case XK_KP_2: KeyData.Key.UnicodeChar = L'2';
+ break;
+ case XK_KP_3: KeyData.Key.UnicodeChar = L'3';
+ break;
+ case XK_KP_4: KeyData.Key.UnicodeChar = L'4';
+ break;
+ case XK_KP_5: KeyData.Key.UnicodeChar = L'5';
+ break;
+ case XK_KP_6: KeyData.Key.UnicodeChar = L'6';
+ break;
+ case XK_KP_7: KeyData.Key.UnicodeChar = L'7';
+ break;
+ case XK_KP_8: KeyData.Key.UnicodeChar = L'8';
+ break;
+ case XK_KP_9: KeyData.Key.UnicodeChar = L'9';
+ break;
+
+ default:
+ ;
}
// The global state is our state
- KeyData.KeyState.KeyShiftState = Drv->KeyState.KeyShiftState;
+ KeyData.KeyState.KeyShiftState = Drv->KeyState.KeyShiftState;
KeyData.KeyState.KeyToggleState = Drv->KeyState.KeyToggleState;
if (*KeySym < XK_BackSpace) {
if (((Drv->KeyState.KeyShiftState & (EFI_LEFT_SHIFT_PRESSED | EFI_RIGHT_SHIFT_PRESSED)) != 0) ||
- ((Drv->KeyState.KeyToggleState & EFI_CAPS_LOCK_ACTIVE) != 0) ) {
-
+ ((Drv->KeyState.KeyToggleState & EFI_CAPS_LOCK_ACTIVE) != 0))
+ {
KeyData.Key.UnicodeChar = (CHAR16)KeySym[KEYSYM_UPPER];
// Per UEFI spec since we converted the Unicode clear the shift bits we pass up
@@ -457,7 +534,6 @@ handleKeyEvent (
}
} else {
// XK_BackSpace is the start of XK_MISCELLANY. These are the XK_? keys we process in this file
- ;
}
if (Make) {
@@ -465,32 +541,31 @@ handleKeyEvent (
Drv->key_wr = (Drv->key_wr + 1) % NBR_KEYS;
Drv->key_count++;
if (Drv->MakeRegisterdKeyCallback != NULL) {
- ReverseGasketUint64Uint64 (Drv->MakeRegisterdKeyCallback ,Drv->RegisterdKeyCallbackContext, &KeyData);
+ ReverseGasketUint64Uint64 (Drv->MakeRegisterdKeyCallback, Drv->RegisterdKeyCallbackContext, &KeyData);
}
} else {
if (Drv->BreakRegisterdKeyCallback != NULL) {
- ReverseGasketUint64Uint64 (Drv->BreakRegisterdKeyCallback ,Drv->RegisterdKeyCallbackContext, &KeyData);
+ ReverseGasketUint64Uint64 (Drv->BreakRegisterdKeyCallback, Drv->RegisterdKeyCallbackContext, &KeyData);
}
}
}
-
void
-handleMouseMoved(
- IN GRAPHICS_IO_PRIVATE *Drv,
- IN XEvent *ev
+handleMouseMoved (
+ IN GRAPHICS_IO_PRIVATE *Drv,
+ IN XEvent *ev
)
{
if (ev->xmotion.x != Drv->previous_x) {
- Drv->pointer_state.RelativeMovementX += ( ev->xmotion.x - Drv->previous_x );
- Drv->previous_x = ev->xmotion.x;
- Drv->pointer_state_changed = 1;
+ Drv->pointer_state.RelativeMovementX += (ev->xmotion.x - Drv->previous_x);
+ Drv->previous_x = ev->xmotion.x;
+ Drv->pointer_state_changed = 1;
}
if (ev->xmotion.y != Drv->previous_y) {
- Drv->pointer_state.RelativeMovementY += ( ev->xmotion.y - Drv->previous_y );
- Drv->previous_y = ev->xmotion.y;
- Drv->pointer_state_changed = 1;
+ Drv->pointer_state.RelativeMovementY += (ev->xmotion.y - Drv->previous_y);
+ Drv->previous_y = ev->xmotion.y;
+ Drv->pointer_state_changed = 1;
}
Drv->pointer_state.RelativeMovementZ = 0;
@@ -498,90 +573,124 @@ handleMouseMoved(
void
handleMouseDown (
- IN GRAPHICS_IO_PRIVATE *Drv,
- IN XEvent *ev,
- IN BOOLEAN Pressed
+ IN GRAPHICS_IO_PRIVATE *Drv,
+ IN XEvent *ev,
+ IN BOOLEAN Pressed
)
{
if (ev->xbutton.button == Button1) {
- Drv->pointer_state_changed = (Drv->pointer_state.LeftButton != Pressed);
+ Drv->pointer_state_changed = (Drv->pointer_state.LeftButton != Pressed);
Drv->pointer_state.LeftButton = Pressed;
}
+
if ( ev->xbutton.button == Button2 ) {
- Drv->pointer_state_changed = (Drv->pointer_state.RightButton != Pressed);
+ Drv->pointer_state_changed = (Drv->pointer_state.RightButton != Pressed);
Drv->pointer_state.RightButton = Pressed;
}
}
void
Redraw (
- IN GRAPHICS_IO_PRIVATE *Drv,
- IN UINTN X,
- IN UINTN Y,
- IN UINTN Width,
- IN UINTN Height
+ IN GRAPHICS_IO_PRIVATE *Drv,
+ IN UINTN X,
+ IN UINTN Y,
+ IN UINTN Width,
+ IN UINTN Height
)
{
if (Drv->use_shm) {
XShmPutImage (
- Drv->display, Drv->win, Drv->gc, Drv->image, X, Y, X, Y, Width, Height, False
+ Drv->display,
+ Drv->win,
+ Drv->gc,
+ Drv->image,
+ X,
+ Y,
+ X,
+ Y,
+ Width,
+ Height,
+ False
);
} else {
XPutImage (
- Drv->display, Drv->win, Drv->gc, Drv->image, X, Y, X, Y, Width, Height
+ Drv->display,
+ Drv->win,
+ Drv->gc,
+ Drv->image,
+ X,
+ Y,
+ X,
+ Y,
+ Width,
+ Height
);
}
- XFlush(Drv->display);
+
+ XFlush (Drv->display);
}
void
-HandleEvent(GRAPHICS_IO_PRIVATE *Drv, XEvent *ev)
+HandleEvent (
+ GRAPHICS_IO_PRIVATE *Drv,
+ XEvent *ev
+ )
{
switch (ev->type) {
- case Expose:
- Redraw (Drv, ev->xexpose.x, ev->xexpose.y,
- ev->xexpose.width, ev->xexpose.height);
- break;
- case GraphicsExpose:
- Redraw (Drv, ev->xgraphicsexpose.x, ev->xgraphicsexpose.y,
- ev->xgraphicsexpose.width, ev->xgraphicsexpose.height);
- break;
- case KeyPress:
- handleKeyEvent (Drv, ev, TRUE);
- break;
- case KeyRelease:
- handleKeyEvent (Drv, ev, FALSE);
- break;
- case MappingNotify:
- XRefreshKeyboardMapping (&ev->xmapping);
- break;
- case MotionNotify:
- handleMouseMoved (Drv, ev);
- break;
- case ButtonPress:
- handleMouseDown (Drv, ev, TRUE);
- break;
- case ButtonRelease:
- handleMouseDown (Drv, ev, FALSE);
- break;
-#if 0
- case DestroyNotify:
- XCloseDisplay (Drv->display);
- exit (1);
- break;
-#endif
- case NoExpose:
- default:
- break;
+ case Expose:
+ Redraw (
+ Drv,
+ ev->xexpose.x,
+ ev->xexpose.y,
+ ev->xexpose.width,
+ ev->xexpose.height
+ );
+ break;
+ case GraphicsExpose:
+ Redraw (
+ Drv,
+ ev->xgraphicsexpose.x,
+ ev->xgraphicsexpose.y,
+ ev->xgraphicsexpose.width,
+ ev->xgraphicsexpose.height
+ );
+ break;
+ case KeyPress:
+ handleKeyEvent (Drv, ev, TRUE);
+ break;
+ case KeyRelease:
+ handleKeyEvent (Drv, ev, FALSE);
+ break;
+ case MappingNotify:
+ XRefreshKeyboardMapping (&ev->xmapping);
+ break;
+ case MotionNotify:
+ handleMouseMoved (Drv, ev);
+ break;
+ case ButtonPress:
+ handleMouseDown (Drv, ev, TRUE);
+ break;
+ case ButtonRelease:
+ handleMouseDown (Drv, ev, FALSE);
+ break;
+ #if 0
+ case DestroyNotify:
+ XCloseDisplay (Drv->display);
+ exit (1);
+ break;
+ #endif
+ case NoExpose:
+ default:
+ break;
}
}
void
HandleEvents (
- IN GRAPHICS_IO_PRIVATE *Drv
+ IN GRAPHICS_IO_PRIVATE *Drv
)
{
- XEvent ev;
+ XEvent ev;
while (XPending (Drv->display) != 0) {
XNextEvent (Drv->display, &ev);
@@ -591,37 +700,36 @@ HandleEvents (
unsigned long
X11PixelToColor (
- IN GRAPHICS_IO_PRIVATE *Drv,
- IN EFI_UGA_PIXEL pixel
+ IN GRAPHICS_IO_PRIVATE *Drv,
+ IN EFI_UGA_PIXEL pixel
)
{
return ((pixel.Red >> Drv->r.csize) << Drv->r.shift)
- | ((pixel.Green >> Drv->g.csize) << Drv->g.shift)
- | ((pixel.Blue >> Drv->b.csize) << Drv->b.shift);
+ | ((pixel.Green >> Drv->g.csize) << Drv->g.shift)
+ | ((pixel.Blue >> Drv->b.csize) << Drv->b.shift);
}
EFI_UGA_PIXEL
X11ColorToPixel (
- IN GRAPHICS_IO_PRIVATE *Drv,
- IN unsigned long val
+ IN GRAPHICS_IO_PRIVATE *Drv,
+ IN unsigned long val
)
{
- EFI_UGA_PIXEL Pixel;
+ EFI_UGA_PIXEL Pixel;
memset (&Pixel, 0, sizeof (EFI_UGA_PIXEL));
// Truncation not an issue since X11 and EFI are both using 8 bits per color
- Pixel.Red = (val >> Drv->r.shift) << Drv->r.csize;
+ Pixel.Red = (val >> Drv->r.shift) << Drv->r.csize;
Pixel.Green = (val >> Drv->g.shift) << Drv->g.csize;
- Pixel.Blue = (val >> Drv->b.shift) << Drv->b.csize;
+ Pixel.Blue = (val >> Drv->b.shift) << Drv->b.csize;
return Pixel;
}
-
EFI_STATUS
X11CheckKey (
- IN EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsIo
+ IN EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsIo
)
{
GRAPHICS_IO_PRIVATE *Drv;
@@ -643,8 +751,8 @@ X11GetKey (
IN EFI_KEY_DATA *KeyData
)
{
- EFI_STATUS EfiStatus;
- GRAPHICS_IO_PRIVATE *Drv;
+ EFI_STATUS EfiStatus;
+ GRAPHICS_IO_PRIVATE *Drv;
Drv = (GRAPHICS_IO_PRIVATE *)GraphicsIo;
@@ -660,11 +768,10 @@ X11GetKey (
return EFI_SUCCESS;
}
-
EFI_STATUS
X11KeySetState (
- IN EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsIo,
- IN EFI_KEY_TOGGLE_STATE *KeyToggleState
+ IN EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsIo,
+ IN EFI_KEY_TOGGLE_STATE *KeyToggleState
)
{
GRAPHICS_IO_PRIVATE *Drv;
@@ -684,13 +791,12 @@ X11KeySetState (
return EFI_SUCCESS;
}
-
EFI_STATUS
X11RegisterKeyNotify (
- IN EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsIo,
- IN EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK MakeCallBack,
- IN EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK BreakCallBack,
- IN VOID *Context
+ IN EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsIo,
+ IN EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK MakeCallBack,
+ IN EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK BreakCallBack,
+ IN VOID *Context
)
{
GRAPHICS_IO_PRIVATE *Drv;
@@ -704,36 +810,35 @@ X11RegisterKeyNotify (
return EFI_SUCCESS;
}
-
EFI_STATUS
X11Blt (
- IN EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsIo,
- IN EFI_UGA_PIXEL *BltBuffer OPTIONAL,
- IN EFI_UGA_BLT_OPERATION BltOperation,
- IN EMU_GRAPHICS_WINDOWS__BLT_ARGS *Args
+ IN EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsIo,
+ IN EFI_UGA_PIXEL *BltBuffer OPTIONAL,
+ IN EFI_UGA_BLT_OPERATION BltOperation,
+ IN EMU_GRAPHICS_WINDOWS__BLT_ARGS *Args
)
{
- GRAPHICS_IO_PRIVATE *Private;
- UINTN DstY;
- UINTN SrcY;
- UINTN DstX;
- UINTN SrcX;
- UINTN Index;
- EFI_UGA_PIXEL *Blt;
- UINT8 *Dst;
- UINT8 *Src;
- UINTN Nbr;
- unsigned long Color;
- XEvent ev;
+ GRAPHICS_IO_PRIVATE *Private;
+ UINTN DstY;
+ UINTN SrcY;
+ UINTN DstX;
+ UINTN SrcX;
+ UINTN Index;
+ EFI_UGA_PIXEL *Blt;
+ UINT8 *Dst;
+ UINT8 *Src;
+ UINTN Nbr;
+ unsigned long Color;
+ XEvent ev;
Private = (GRAPHICS_IO_PRIVATE *)GraphicsIo;
-
//
// Check bounds
//
- if (BltOperation == EfiUgaVideoToBltBuffer
- || BltOperation == EfiUgaVideoToVideo) {
+ if ( (BltOperation == EfiUgaVideoToBltBuffer)
+ || (BltOperation == EfiUgaVideoToVideo))
+ {
//
// Source is Video.
//
@@ -746,9 +851,10 @@ X11Blt (
}
}
- if (BltOperation == EfiUgaBltBufferToVideo
- || BltOperation == EfiUgaVideoToVideo
- || BltOperation == EfiUgaVideoFill) {
+ if ( (BltOperation == EfiUgaBltBufferToVideo)
+ || (BltOperation == EfiUgaVideoToVideo)
+ || (BltOperation == EfiUgaVideoFill))
+ {
//
// Destination is Video
//
@@ -762,106 +868,125 @@ X11Blt (
}
switch (BltOperation) {
- case EfiUgaVideoToBltBuffer:
- Blt = (EFI_UGA_PIXEL *)((UINT8 *)BltBuffer + (Args->DestinationY * Args->Delta) + Args->DestinationX * sizeof (EFI_UGA_PIXEL));
- Args->Delta -= Args->Width * sizeof (EFI_UGA_PIXEL);
- for (SrcY = Args->SourceY; SrcY < (Args->Height + Args->SourceY); SrcY++) {
- for (SrcX = Args->SourceX; SrcX < (Args->Width + Args->SourceX); SrcX++) {
- *Blt++ = X11ColorToPixel (Private, XGetPixel (Private->image, SrcX, SrcY));
+ case EfiUgaVideoToBltBuffer:
+ Blt = (EFI_UGA_PIXEL *)((UINT8 *)BltBuffer + (Args->DestinationY * Args->Delta) + Args->DestinationX * sizeof (EFI_UGA_PIXEL));
+ Args->Delta -= Args->Width * sizeof (EFI_UGA_PIXEL);
+ for (SrcY = Args->SourceY; SrcY < (Args->Height + Args->SourceY); SrcY++) {
+ for (SrcX = Args->SourceX; SrcX < (Args->Width + Args->SourceX); SrcX++) {
+ *Blt++ = X11ColorToPixel (Private, XGetPixel (Private->image, SrcX, SrcY));
+ }
+
+ Blt = (EFI_UGA_PIXEL *)((UINT8 *)Blt + Args->Delta);
}
- Blt = (EFI_UGA_PIXEL *) ((UINT8 *) Blt + Args->Delta);
- }
- break;
- case EfiUgaBltBufferToVideo:
- Blt = (EFI_UGA_PIXEL *)((UINT8 *)BltBuffer + (Args->SourceY * Args->Delta) + Args->SourceX * sizeof (EFI_UGA_PIXEL));
- Args->Delta -= Args->Width * sizeof (EFI_UGA_PIXEL);
- for (DstY = Args->DestinationY; DstY < (Args->Height + Args->DestinationY); DstY++) {
- for (DstX = Args->DestinationX; DstX < (Args->Width + Args->DestinationX); DstX++) {
- XPutPixel(Private->image, DstX, DstY, X11PixelToColor(Private, *Blt));
- Blt++;
- }
- Blt = (EFI_UGA_PIXEL *) ((UINT8 *) Blt + Args->Delta);
- }
- break;
- case EfiUgaVideoToVideo:
- Dst = Private->image_data + (Args->DestinationX << Private->pixel_shift)
- + Args->DestinationY * Private->line_bytes;
- Src = Private->image_data + (Args->SourceX << Private->pixel_shift)
- + Args->SourceY * Private->line_bytes;
- Nbr = Args->Width << Private->pixel_shift;
- if (Args->DestinationY < Args->SourceY) {
- for (Index = 0; Index < Args->Height; Index++) {
- memcpy (Dst, Src, Nbr);
- Dst += Private->line_bytes;
- Src += Private->line_bytes;
+
+ break;
+ case EfiUgaBltBufferToVideo:
+ Blt = (EFI_UGA_PIXEL *)((UINT8 *)BltBuffer + (Args->SourceY * Args->Delta) + Args->SourceX * sizeof (EFI_UGA_PIXEL));
+ Args->Delta -= Args->Width * sizeof (EFI_UGA_PIXEL);
+ for (DstY = Args->DestinationY; DstY < (Args->Height + Args->DestinationY); DstY++) {
+ for (DstX = Args->DestinationX; DstX < (Args->Width + Args->DestinationX); DstX++) {
+ XPutPixel (Private->image, DstX, DstY, X11PixelToColor (Private, *Blt));
+ Blt++;
+ }
+
+ Blt = (EFI_UGA_PIXEL *)((UINT8 *)Blt + Args->Delta);
}
- } else {
- Dst += (Args->Height - 1) * Private->line_bytes;
- Src += (Args->Height - 1) * Private->line_bytes;
- for (Index = 0; Index < Args->Height; Index++) {
- //
- // Source and Destination Y may be equal, therefore Dst and Src may
- // overlap.
- //
- memmove (Dst, Src, Nbr);
- Dst -= Private->line_bytes;
- Src -= Private->line_bytes;
+
+ break;
+ case EfiUgaVideoToVideo:
+ Dst = Private->image_data + (Args->DestinationX << Private->pixel_shift)
+ + Args->DestinationY * Private->line_bytes;
+ Src = Private->image_data + (Args->SourceX << Private->pixel_shift)
+ + Args->SourceY * Private->line_bytes;
+ Nbr = Args->Width << Private->pixel_shift;
+ if (Args->DestinationY < Args->SourceY) {
+ for (Index = 0; Index < Args->Height; Index++) {
+ memcpy (Dst, Src, Nbr);
+ Dst += Private->line_bytes;
+ Src += Private->line_bytes;
+ }
+ } else {
+ Dst += (Args->Height - 1) * Private->line_bytes;
+ Src += (Args->Height - 1) * Private->line_bytes;
+ for (Index = 0; Index < Args->Height; Index++) {
+ //
+ // Source and Destination Y may be equal, therefore Dst and Src may
+ // overlap.
+ //
+ memmove (Dst, Src, Nbr);
+ Dst -= Private->line_bytes;
+ Src -= Private->line_bytes;
+ }
}
- }
- break;
- case EfiUgaVideoFill:
- Color = X11PixelToColor(Private, *BltBuffer);
- for (DstY = Args->DestinationY; DstY < (Args->Height + Args->DestinationY); DstY++) {
- for (DstX = Args->DestinationX; DstX < (Args->Width + Args->DestinationX); DstX++) {
- XPutPixel(Private->image, DstX, DstY, Color);
+
+ break;
+ case EfiUgaVideoFill:
+ Color = X11PixelToColor (Private, *BltBuffer);
+ for (DstY = Args->DestinationY; DstY < (Args->Height + Args->DestinationY); DstY++) {
+ for (DstX = Args->DestinationX; DstX < (Args->Width + Args->DestinationX); DstX++) {
+ XPutPixel (Private->image, DstX, DstY, Color);
+ }
}
- }
- break;
- default:
- return EFI_INVALID_PARAMETER;
+
+ break;
+ default:
+ return EFI_INVALID_PARAMETER;
}
//
// Refresh screen.
//
switch (BltOperation) {
- case EfiUgaVideoToVideo:
- XCopyArea(
- Private->display, Private->win, Private->win, Private->gc,
- Args->SourceX, Args->SourceY, Args->Width, Args->Height,
- Args->DestinationX, Args->DestinationY
- );
-
- while (1) {
- XNextEvent (Private->display, &ev);
- HandleEvent (Private, &ev);
- if (ev.type == NoExpose || ev.type == GraphicsExpose) {
- break;
+ case EfiUgaVideoToVideo:
+ XCopyArea (
+ Private->display,
+ Private->win,
+ Private->win,
+ Private->gc,
+ Args->SourceX,
+ Args->SourceY,
+ Args->Width,
+ Args->Height,
+ Args->DestinationX,
+ Args->DestinationY
+ );
+
+ while (1) {
+ XNextEvent (Private->display, &ev);
+ HandleEvent (Private, &ev);
+ if ((ev.type == NoExpose) || (ev.type == GraphicsExpose)) {
+ break;
+ }
}
- }
- break;
- case EfiUgaVideoFill:
- Color = X11PixelToColor (Private, *BltBuffer);
- XSetForeground (Private->display, Private->gc, Color);
- XFillRectangle (
- Private->display, Private->win, Private->gc,
- Args->DestinationX, Args->DestinationY, Args->Width, Args->Height
- );
- XFlush (Private->display);
- break;
- case EfiUgaBltBufferToVideo:
- Redraw (Private, Args->DestinationX, Args->DestinationY, Args->Width, Args->Height);
- break;
- default:
- break;
+
+ break;
+ case EfiUgaVideoFill:
+ Color = X11PixelToColor (Private, *BltBuffer);
+ XSetForeground (Private->display, Private->gc, Color);
+ XFillRectangle (
+ Private->display,
+ Private->win,
+ Private->gc,
+ Args->DestinationX,
+ Args->DestinationY,
+ Args->Width,
+ Args->Height
+ );
+ XFlush (Private->display);
+ break;
+ case EfiUgaBltBufferToVideo:
+ Redraw (Private, Args->DestinationX, Args->DestinationY, Args->Width, Args->Height);
+ break;
+ default:
+ break;
}
+
return EFI_SUCCESS;
}
-
EFI_STATUS
X11CheckPointer (
- IN EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsIo
+ IN EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsIo
)
{
GRAPHICS_IO_PRIVATE *Drv;
@@ -876,15 +1001,14 @@ X11CheckPointer (
return EFI_NOT_READY;
}
-
EFI_STATUS
X11GetPointerState (
IN EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsIo,
IN EFI_SIMPLE_POINTER_STATE *State
)
{
- EFI_STATUS EfiStatus;
- GRAPHICS_IO_PRIVATE *Drv;
+ EFI_STATUS EfiStatus;
+ GRAPHICS_IO_PRIVATE *Drv;
Drv = (GRAPHICS_IO_PRIVATE *)GraphicsIo;
@@ -898,60 +1022,62 @@ X11GetPointerState (
Drv->pointer_state.RelativeMovementX = 0;
Drv->pointer_state.RelativeMovementY = 0;
Drv->pointer_state.RelativeMovementZ = 0;
- Drv->pointer_state_changed = 0;
+ Drv->pointer_state_changed = 0;
return EFI_SUCCESS;
}
-
-
EFI_STATUS
X11GraphicsWindowOpen (
- IN EMU_IO_THUNK_PROTOCOL *This
+ IN EMU_IO_THUNK_PROTOCOL *This
)
{
- GRAPHICS_IO_PRIVATE *Drv;
- unsigned int border_width = 0;
- char *display_name = NULL;
+ GRAPHICS_IO_PRIVATE *Drv;
+ unsigned int border_width = 0;
+ char *display_name = NULL;
Drv = (GRAPHICS_IO_PRIVATE *)calloc (1, sizeof (GRAPHICS_IO_PRIVATE));
if (Drv == NULL) {
return EFI_OUT_OF_RESOURCES;
}
- Drv->GraphicsIo.Size = GasketX11Size;
- Drv->GraphicsIo.CheckKey = GasketX11CheckKey;
- Drv->GraphicsIo.GetKey = GasketX11GetKey;
- Drv->GraphicsIo.KeySetState = GasketX11KeySetState;
- Drv->GraphicsIo.RegisterKeyNotify = GasketX11RegisterKeyNotify;
- Drv->GraphicsIo.Blt = GasketX11Blt;
- Drv->GraphicsIo.CheckPointer = GasketX11CheckPointer;
- Drv->GraphicsIo.GetPointerState = GasketX11GetPointerState;
-
-
- Drv->key_count = 0;
- Drv->key_rd = 0;
- Drv->key_wr = 0;
+ Drv->GraphicsIo.Size = GasketX11Size;
+ Drv->GraphicsIo.CheckKey = GasketX11CheckKey;
+ Drv->GraphicsIo.GetKey = GasketX11GetKey;
+ Drv->GraphicsIo.KeySetState = GasketX11KeySetState;
+ Drv->GraphicsIo.RegisterKeyNotify = GasketX11RegisterKeyNotify;
+ Drv->GraphicsIo.Blt = GasketX11Blt;
+ Drv->GraphicsIo.CheckPointer = GasketX11CheckPointer;
+ Drv->GraphicsIo.GetPointerState = GasketX11GetPointerState;
+
+ Drv->key_count = 0;
+ Drv->key_rd = 0;
+ Drv->key_wr = 0;
Drv->KeyState.KeyShiftState = EFI_SHIFT_STATE_VALID;
Drv->KeyState.KeyToggleState = EFI_TOGGLE_STATE_VALID;
Drv->MakeRegisterdKeyCallback = NULL;
Drv->BreakRegisterdKeyCallback = NULL;
Drv->RegisterdKeyCallbackContext = NULL;
-
Drv->display = XOpenDisplay (display_name);
if (Drv->display == NULL) {
fprintf (stderr, "uga: cannot connect to X server %s\n", XDisplayName (display_name));
free (Drv);
return EFI_DEVICE_ERROR;
}
+
Drv->screen = DefaultScreen (Drv->display);
Drv->visual = DefaultVisual (Drv->display, Drv->screen);
- Drv->win = XCreateSimpleWindow (
- Drv->display, RootWindow (Drv->display, Drv->screen),
- 0, 0, 4, 4, border_width,
- WhitePixel (Drv->display, Drv->screen),
- BlackPixel (Drv->display, Drv->screen)
- );
+ Drv->win = XCreateSimpleWindow (
+ Drv->display,
+ RootWindow (Drv->display, Drv->screen),
+ 0,
+ 0,
+ 4,
+ 4,
+ border_width,
+ WhitePixel (Drv->display, Drv->screen),
+ BlackPixel (Drv->display, Drv->screen)
+ );
Drv->depth = DefaultDepth (Drv->display, Drv->screen);
XDefineCursor (Drv->display, Drv->win, XCreateFontCursor (Drv->display, XC_pirate));
@@ -960,9 +1086,10 @@ X11GraphicsWindowOpen (
UnicodeStrToAsciiStrS (This->ConfigString, Drv->Title, StrSize (This->ConfigString));
XStoreName (Drv->display, Drv->win, Drv->Title);
-// XAutoRepeatOff (Drv->display);
+ // XAutoRepeatOff (Drv->display);
XSelectInput (
- Drv->display, Drv->win,
+ Drv->display,
+ Drv->win,
ExposureMask | KeyPressMask | KeyReleaseMask | PointerMotionMask | ButtonPressMask | ButtonReleaseMask
);
Drv->gc = DefaultGC (Drv->display, Drv->screen);
@@ -972,13 +1099,12 @@ X11GraphicsWindowOpen (
return EFI_SUCCESS;
}
-
EFI_STATUS
X11GraphicsWindowClose (
- IN EMU_IO_THUNK_PROTOCOL *This
+ IN EMU_IO_THUNK_PROTOCOL *This
)
{
- GRAPHICS_IO_PRIVATE *Drv;
+ GRAPHICS_IO_PRIVATE *Drv;
Drv = (GRAPHICS_IO_PRIVATE *)This->Private;
@@ -987,29 +1113,29 @@ X11GraphicsWindowClose (
}
if (Drv->image != NULL) {
- XDestroyImage(Drv->image);
+ XDestroyImage (Drv->image);
if (Drv->use_shm) {
shmdt (Drv->image_data);
}
Drv->image_data = NULL;
- Drv->image = NULL;
+ Drv->image = NULL;
}
+
XDestroyWindow (Drv->display, Drv->win);
XCloseDisplay (Drv->display);
-#ifdef __APPLE__
+ #ifdef __APPLE__
// Free up the shared memory
shmctl (Drv->xshm_info.shmid, IPC_RMID, NULL);
-#endif
+ #endif
free (Drv);
return EFI_SUCCESS;
}
-
-EMU_IO_THUNK_PROTOCOL gX11ThunkIo = {
+EMU_IO_THUNK_PROTOCOL gX11ThunkIo = {
&gEmuGraphicsWindowProtocolGuid,
NULL,
NULL,
@@ -1018,5 +1144,3 @@ EMU_IO_THUNK_PROTOCOL gX11ThunkIo = {
GasketX11GraphicsWindowClose,
NULL
};
-
-