summaryrefslogtreecommitdiffstats
path: root/UnixPkg
diff options
context:
space:
mode:
Diffstat (limited to 'UnixPkg')
-rw-r--r--UnixPkg/Include/Common/UnixInclude.h78
-rw-r--r--UnixPkg/Include/Protocol/UnixThunk.h12
-rw-r--r--UnixPkg/Include/Protocol/UnixUgaIo.h22
-rw-r--r--UnixPkg/Library/DxeUnixOemHookStatusCodeLib/UnixOemHookStatusCodeLib.c2
-rw-r--r--UnixPkg/Library/DxeUnixPeCoffExtraActionLib/DxeUnixPeCoffExtraActionLib.c2
-rw-r--r--UnixPkg/Library/EdkUnixPeiPeCoffGetEntryPointLib/PeCoffGetEntryPoint.c2
-rw-r--r--UnixPkg/Library/PeiUnixOemHookStatusCodeLib/UnixOemHookStatusCodeLib.c2
-rw-r--r--UnixPkg/Library/PeiUnixPeCoffExtraActionLib/PeiUnixPeCoffExtraActionLib.c2
-rw-r--r--UnixPkg/Sec/Gasket.c2
-rw-r--r--UnixPkg/Sec/Ia32/Gasket.S42
-rw-r--r--UnixPkg/Sec/SecMain.c22
-rw-r--r--UnixPkg/Sec/UgaX11.c16
-rw-r--r--UnixPkg/Sec/X64/MangleGasket.S490
-rw-r--r--UnixPkg/Sec/X64/SwitchStack.S12
-rw-r--r--UnixPkg/TimerDxe/Timer.c2
-rw-r--r--UnixPkg/UnixBlockIoDxe/DriverDiagnostics.c2
-rw-r--r--UnixPkg/UnixBlockIoDxe/UnixBlockIo.c2
-rw-r--r--UnixPkg/UnixBusDriverDxe/UnixBusDriver.c2
-rw-r--r--UnixPkg/UnixSerialIoDxe/UnixSerialIo.h4
-rw-r--r--UnixPkg/UnixSimpleFileSystemDxe/UnixSimpleFileSystem.c34
-rw-r--r--UnixPkg/UnixSnpDxe/UnixSnp.c2012
-rw-r--r--UnixPkg/UnixSnpDxe/UnixSnp.h38
22 files changed, 1401 insertions, 1401 deletions
diff --git a/UnixPkg/Include/Common/UnixInclude.h b/UnixPkg/Include/Common/UnixInclude.h
index 8cfa2a3deb..e37fc4265a 100644
--- a/UnixPkg/Include/Common/UnixInclude.h
+++ b/UnixPkg/Include/Common/UnixInclude.h
@@ -94,20 +94,20 @@ Abstract:
typedef struct {
- UINTN tv_sec; /* seconds */
- UINTN tv_nsec; /* and nanoseconds */
+ UINTN tv_sec; /* seconds */
+ UINTN tv_nsec; /* and nanoseconds */
} EFI_timespec;
typedef struct stat_fix { \
- dev_t st_dev; /* [XSI] ID of device containing file */
- mode_t st_mode; /* [XSI] Mode of file (see below) */
- nlink_t st_nlink; /* [XSI] Number of hard links */
- __darwin_ino64_t st_ino; /* [XSI] File serial number */
- uid_t st_uid; /* [XSI] User ID of the file */
- gid_t st_gid; /* [XSI] Group ID of the file */
- dev_t st_rdev; /* [XSI] Device ID */
+ dev_t st_dev; /* [XSI] ID of device containing file */
+ mode_t st_mode; /* [XSI] Mode of file (see below) */
+ nlink_t st_nlink; /* [XSI] Number of hard links */
+ __darwin_ino64_t st_ino; /* [XSI] File serial number */
+ uid_t st_uid; /* [XSI] User ID of the file */
+ gid_t st_gid; /* [XSI] Group ID of the file */
+ dev_t st_rdev; /* [XSI] Device ID */
// clang for X64 ABI follows Windows and a long is 32-bits
// this breaks system inlcude files so that is why we need
@@ -117,44 +117,44 @@ typedef struct stat_fix { \
EFI_timespec st_ctimespec;
EFI_timespec st_birthtimespec;
- off_t st_size; /* [XSI] file size, in bytes */
- blkcnt_t st_blocks; /* [XSI] blocks allocated for file */
- blksize_t st_blksize; /* [XSI] optimal blocksize for I/O */
- __uint32_t st_flags; /* user defined flags for file */
- __uint32_t st_gen; /* file generation number */
- __int32_t st_lspare; /* RESERVED: DO NOT USE! */
- __int64_t st_qspare[2]; /* RESERVED: DO NOT USE! */
+ off_t st_size; /* [XSI] file size, in bytes */
+ blkcnt_t st_blocks; /* [XSI] blocks allocated for file */
+ blksize_t st_blksize; /* [XSI] optimal blocksize for I/O */
+ __uint32_t st_flags; /* user defined flags for file */
+ __uint32_t st_gen; /* file generation number */
+ __int32_t st_lspare; /* RESERVED: DO NOT USE! */
+ __int64_t st_qspare[2]; /* RESERVED: DO NOT USE! */
} STAT_FIX;
#else /* !__DARWIN_64_BIT_INO_T */
typedef struct stat_fix {
- dev_t st_dev; /* [XSI] ID of device containing file */
- ino_t st_ino; /* [XSI] File serial number */
- mode_t st_mode; /* [XSI] Mode of file (see below) */
- nlink_t st_nlink; /* [XSI] Number of hard links */
- uid_t st_uid; /* [XSI] User ID of the file */
- gid_t st_gid; /* [XSI] Group ID of the file */
- dev_t st_rdev; /* [XSI] Device ID */
+ dev_t st_dev; /* [XSI] ID of device containing file */
+ ino_t st_ino; /* [XSI] File serial number */
+ mode_t st_mode; /* [XSI] Mode of file (see below) */
+ nlink_t st_nlink; /* [XSI] Number of hard links */
+ uid_t st_uid; /* [XSI] User ID of the file */
+ gid_t st_gid; /* [XSI] Group ID of the file */
+ dev_t st_rdev; /* [XSI] Device ID */
#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
- struct timespec st_atimespec; /* time of last access */
- struct timespec st_mtimespec; /* time of last data modification */
- struct timespec st_ctimespec; /* time of last status change */
+ struct timespec st_atimespec; /* time of last access */
+ struct timespec st_mtimespec; /* time of last data modification */
+ struct timespec st_ctimespec; /* time of last status change */
#else
- time_t st_atime; /* [XSI] Time of last access */
- long st_atimensec; /* nsec of last access */
- time_t st_mtime; /* [XSI] Last data modification time */
- long st_mtimensec; /* last data modification nsec */
- time_t st_ctime; /* [XSI] Time of last status change */
- long st_ctimensec; /* nsec of last status change */
+ time_t st_atime; /* [XSI] Time of last access */
+ long st_atimensec; /* nsec of last access */
+ time_t st_mtime; /* [XSI] Last data modification time */
+ long st_mtimensec; /* last data modification nsec */
+ time_t st_ctime; /* [XSI] Time of last status change */
+ long st_ctimensec; /* nsec of last status change */
#endif
- off_t st_size; /* [XSI] file size, in bytes */
- blkcnt_t st_blocks; /* [XSI] blocks allocated for file */
- blksize_t st_blksize; /* [XSI] optimal blocksize for I/O */
- __uint32_t st_flags; /* user defined flags for file */
- __uint32_t st_gen; /* file generation number */
- __int32_t st_lspare; /* RESERVED: DO NOT USE! */
- __int64_t st_qspare[2]; /* RESERVED: DO NOT USE! */
+ off_t st_size; /* [XSI] file size, in bytes */
+ blkcnt_t st_blocks; /* [XSI] blocks allocated for file */
+ blksize_t st_blksize; /* [XSI] optimal blocksize for I/O */
+ __uint32_t st_flags; /* user defined flags for file */
+ __uint32_t st_gen; /* file generation number */
+ __int32_t st_lspare; /* RESERVED: DO NOT USE! */
+ __int64_t st_qspare[2]; /* RESERVED: DO NOT USE! */
} STAT_FIX;
#endif
diff --git a/UnixPkg/Include/Protocol/UnixThunk.h b/UnixPkg/Include/Protocol/UnixThunk.h
index 85ac5f9086..476dcc659f 100644
--- a/UnixPkg/Include/Protocol/UnixThunk.h
+++ b/UnixPkg/Include/Protocol/UnixThunk.h
@@ -192,7 +192,7 @@ struct _EFI_UNIX_UGA_IO_PROTOCOL;
typedef
EFI_STATUS
(EFIAPI *UnixUgaCreate)(struct _EFI_UNIX_UGA_IO_PROTOCOL **UgaIo,
- CONST CHAR16 *Title);
+ CONST CHAR16 *Title);
typedef
int
@@ -229,7 +229,7 @@ int
typedef
int
(EFIAPI *UnixTcsetattr) (int __fd, int __optional_actions,
- __const struct termios *__termios_p);
+ __const struct termios *__termios_p);
//
@@ -292,13 +292,13 @@ typedef struct _EFI_UNIX_THUNK_PROTOCOL {
UINT64 Signature;
UnixSleep Sleep;
- UnixExit Exit;
+ UnixExit Exit;
UnixSetTimer SetTimer;
- UnixGetLocalTime GetLocalTime;
+ UnixGetLocalTime GetLocalTime;
UnixGmTime GmTime;
UnixGetTimeZone GetTimeZone;
UnixGetDayLight GetDayLight;
- UnixPoll Poll;
+ UnixPoll Poll;
UnixRead Read;
UnixWrite Write;
UnixGetenv Getenv;
@@ -322,7 +322,7 @@ typedef struct _EFI_UNIX_THUNK_PROTOCOL {
UnixChmod Chmod;
UnixUTime UTime;
UnixTcflush Tcflush;
- UnixUgaCreate UgaCreate;
+ UnixUgaCreate UgaCreate;
UnixPerror Perror;
UnixIoCtl IoCtl;
UnixFcntl Fcntl;
diff --git a/UnixPkg/Include/Protocol/UnixUgaIo.h b/UnixPkg/Include/Protocol/UnixUgaIo.h
index 5200e4c4e0..1327e6a096 100644
--- a/UnixPkg/Include/Protocol/UnixUgaIo.h
+++ b/UnixPkg/Include/Protocol/UnixUgaIo.h
@@ -81,23 +81,23 @@ EFI_STATUS
typedef struct {
- UINTN SourceX;
- UINTN SourceY;
- UINTN DestinationX;
- UINTN DestinationY;
- UINTN Width;
- UINTN Height;
- UINTN Delta;
+ UINTN SourceX;
+ UINTN SourceY;
+ UINTN DestinationX;
+ UINTN DestinationY;
+ UINTN Width;
+ UINTN Height;
+ UINTN Delta;
} UGA_BLT_ARGS;
typedef
EFI_STATUS
(EFIAPI *UGABlt)(
IN EFI_UNIX_UGA_IO_PROTOCOL *Uga,
- IN EFI_UGA_PIXEL *BltBuffer OPTIONAL,
- IN EFI_UGA_BLT_OPERATION BltOperation,
- IN UGA_BLT_ARGS *Args
- );
+ IN EFI_UGA_PIXEL *BltBuffer OPTIONAL,
+ IN EFI_UGA_BLT_OPERATION BltOperation,
+ IN UGA_BLT_ARGS *Args
+ );
typedef
BOOLEAN
diff --git a/UnixPkg/Library/DxeUnixOemHookStatusCodeLib/UnixOemHookStatusCodeLib.c b/UnixPkg/Library/DxeUnixOemHookStatusCodeLib/UnixOemHookStatusCodeLib.c
index 00bedfc65b..d9a7b3e981 100644
--- a/UnixPkg/Library/DxeUnixOemHookStatusCodeLib/UnixOemHookStatusCodeLib.c
+++ b/UnixPkg/Library/DxeUnixOemHookStatusCodeLib/UnixOemHookStatusCodeLib.c
@@ -134,7 +134,7 @@ OemHookStatusCodeReport (
mStdOut,
Buffer,
CharCount
- );
+ );
return EFI_SUCCESS;
diff --git a/UnixPkg/Library/DxeUnixPeCoffExtraActionLib/DxeUnixPeCoffExtraActionLib.c b/UnixPkg/Library/DxeUnixPeCoffExtraActionLib/DxeUnixPeCoffExtraActionLib.c
index 68bd7f84e2..f98b30bed8 100644
--- a/UnixPkg/Library/DxeUnixPeCoffExtraActionLib/DxeUnixPeCoffExtraActionLib.c
+++ b/UnixPkg/Library/DxeUnixPeCoffExtraActionLib/DxeUnixPeCoffExtraActionLib.c
@@ -56,7 +56,7 @@ DxeUnixPeCoffLibExtraActionConstructor (
IN EFI_SYSTEM_TABLE *SystemTable
)
{
- EFI_HOB_GUID_TYPE *GuidHob;
+ EFI_HOB_GUID_TYPE *GuidHob;
//
// Retrieve UnixThunkProtocol from GUID'ed HOB
diff --git a/UnixPkg/Library/EdkUnixPeiPeCoffGetEntryPointLib/PeCoffGetEntryPoint.c b/UnixPkg/Library/EdkUnixPeiPeCoffGetEntryPointLib/PeCoffGetEntryPoint.c
index 40715ec8f0..3a8f304020 100644
--- a/UnixPkg/Library/EdkUnixPeiPeCoffGetEntryPointLib/PeCoffGetEntryPoint.c
+++ b/UnixPkg/Library/EdkUnixPeiPeCoffGetEntryPointLib/PeCoffGetEntryPoint.c
@@ -55,7 +55,7 @@ Returns:
--*/
{
- PEI_UNIX_THUNK_PPI *UnixThunkPpi;
+ PEI_UNIX_THUNK_PPI *UnixThunkPpi;
EFI_STATUS Status;
EFI_UNIX_THUNK_PROTOCOL *Unix;
diff --git a/UnixPkg/Library/PeiUnixOemHookStatusCodeLib/UnixOemHookStatusCodeLib.c b/UnixPkg/Library/PeiUnixOemHookStatusCodeLib/UnixOemHookStatusCodeLib.c
index 2945b08b59..b42101c24f 100644
--- a/UnixPkg/Library/PeiUnixOemHookStatusCodeLib/UnixOemHookStatusCodeLib.c
+++ b/UnixPkg/Library/PeiUnixOemHookStatusCodeLib/UnixOemHookStatusCodeLib.c
@@ -142,7 +142,7 @@ OemHookStatusCodeReport (
mStdOut,
Buffer,
CharCount
- );
+ );
return EFI_SUCCESS;
diff --git a/UnixPkg/Library/PeiUnixPeCoffExtraActionLib/PeiUnixPeCoffExtraActionLib.c b/UnixPkg/Library/PeiUnixPeCoffExtraActionLib/PeiUnixPeCoffExtraActionLib.c
index e3a3c7ca3e..98b5b9e116 100644
--- a/UnixPkg/Library/PeiUnixPeCoffExtraActionLib/PeiUnixPeCoffExtraActionLib.c
+++ b/UnixPkg/Library/PeiUnixPeCoffExtraActionLib/PeiUnixPeCoffExtraActionLib.c
@@ -48,7 +48,7 @@ EFIAPI
UnixPeCoffGetUnixThunkStucture (
)
{
- PEI_UNIX_THUNK_PPI *UnixThunkPpi;
+ PEI_UNIX_THUNK_PPI *UnixThunkPpi;
EFI_STATUS Status;
diff --git a/UnixPkg/Sec/Gasket.c b/UnixPkg/Sec/Gasket.c
index 3c7ef80097..04c65f1a8d 100644
--- a/UnixPkg/Sec/Gasket.c
+++ b/UnixPkg/Sec/Gasket.c
@@ -398,7 +398,7 @@ GasketUgaBlt (
EFI_UNIX_UGA_IO_PROTOCOL *UgaIo,
IN EFI_UGA_PIXEL *BltBuffer OPTIONAL,
IN EFI_UGA_BLT_OPERATION BltOperation,
- IN UGA_BLT_ARGS *Args
+ IN UGA_BLT_ARGS *Args
)
{
return GasketUintnUintnUintnUintn (UgaBlt, (UINTN)UgaIo, (UINTN)BltBuffer, (UINTN)BltOperation, (UINTN)Args);
diff --git a/UnixPkg/Sec/Ia32/Gasket.S b/UnixPkg/Sec/Ia32/Gasket.S
index 440e73d6df..5f762a3782 100644
--- a/UnixPkg/Sec/Ia32/Gasket.S
+++ b/UnixPkg/Sec/Ia32/Gasket.S
@@ -264,21 +264,21 @@ _GasketUintnUint16:
.globl _ReverseGasketUint64
_ReverseGasketUint64:
- pushl %ebp
- movl %esp, %ebp
- subl $40, %esp
- movl 12(%ebp), %eax
- movl %eax, -16(%ebp)
- movl 16(%ebp), %eax
- movl %eax, -12(%ebp)
- movl -16(%ebp), %eax
- movl -12(%ebp), %edx
- movl %eax, (%esp)
- movl %edx, 4(%esp)
- movl 8(%ebp), %eax
- call *%eax
- leave
- ret
+ pushl %ebp
+ movl %esp, %ebp
+ subl $40, %esp
+ movl 12(%ebp), %eax
+ movl %eax, -16(%ebp)
+ movl 16(%ebp), %eax
+ movl %eax, -12(%ebp)
+ movl -16(%ebp), %eax
+ movl -12(%ebp), %edx
+ movl %eax, (%esp)
+ movl %edx, 4(%esp)
+ movl 8(%ebp), %eax
+ call *%eax
+ leave
+ ret
.globl _ReverseGasketUint64Uint64
@@ -314,31 +314,31 @@ _ReverseGasketUint64Uint64:
.globl _GasketSecUnixPeiLoadFile
_GasketSecUnixPeiLoadFile:
- jmp _SecUnixPeiLoadFile
+ jmp _SecUnixPeiLoadFile
.globl _GasketSecUnixPeiAutoScan
_GasketSecUnixPeiAutoScan:
- jmp _SecUnixPeiAutoScan
+ jmp _SecUnixPeiAutoScan
.globl _GasketSecUnixUnixThunkAddress
_GasketSecUnixUnixThunkAddress:
- jmp _SecUnixUnixThunkAddress
+ jmp _SecUnixUnixThunkAddress
.globl _GasketSecPeiReportStatusCode
_GasketSecPeiReportStatusCode:
- jmp _SecPeiReportStatusCode
+ jmp _SecPeiReportStatusCode
.globl _GasketSecUnixFdAddress
_GasketSecUnixFdAddress:
- jmp _SecUnixFdAddress
+ jmp _SecUnixFdAddress
.globl _GasketSecTemporaryRamSupport
_GasketSecTemporaryRamSupport:
- jmp _SecTemporaryRamSupport
+ jmp _SecTemporaryRamSupport
#endif
diff --git a/UnixPkg/Sec/SecMain.c b/UnixPkg/Sec/SecMain.c
index dc4b14c00f..a82ec1cce1 100644
--- a/UnixPkg/Sec/SecMain.c
+++ b/UnixPkg/Sec/SecMain.c
@@ -279,17 +279,17 @@ Returns:
// Open the FD and remmeber where it got mapped into our processes address space
//
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);
+ FileName, (unsigned long)gFdInfo[Index].Address);
if (PeiCoreFile == NULL) {
//
@@ -419,10 +419,10 @@ Returns:
/* Read entry address. */
lseek (fd, FileSize - 0x20, SEEK_SET);
if (read (fd, &EntryAddress, 4) != 4)
- {
- close (fd);
- return EFI_DEVICE_ERROR;
- }
+ {
+ close (fd);
+ return EFI_DEVICE_ERROR;
+ }
}
#endif
@@ -664,8 +664,8 @@ Returns:
*MemoryBase = 0;
res = MapMemory(0, gSystemMemory[Index].Size,
- PROT_READ | PROT_WRITE | PROT_EXEC,
- MAP_PRIVATE | MAP_ANONYMOUS);
+ PROT_READ | PROT_WRITE | PROT_EXEC,
+ MAP_PRIVATE | MAP_ANONYMOUS);
if (res == MAP_FAILED)
return EFI_DEVICE_ERROR;
*MemorySize = gSystemMemory[Index].Size;
diff --git a/UnixPkg/Sec/UgaX11.c b/UnixPkg/Sec/UgaX11.c
index 0a9b0a314c..5250fb3c61 100644
--- a/UnixPkg/Sec/UgaX11.c
+++ b/UnixPkg/Sec/UgaX11.c
@@ -59,7 +59,7 @@ typedef struct {
EFI_UNIX_UGA_IO_PROTOCOL UgaIo;
Display *display;
- int screen; /* values for window_size in main */
+ int screen; /* values for window_size in main */
Window win;
GC gc;
Visual *visual;
@@ -393,15 +393,15 @@ handleMouseMoved(UGA_IO_PRIVATE *drv, 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->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_changed = 1;
}
drv->pointer_state.RelativeMovementZ = 0;
@@ -413,12 +413,12 @@ handleMouseDown(UGA_IO_PRIVATE *drv, XEvent *ev, BOOLEAN Pressed)
if ( ev->xbutton.button == Button1 )
{
drv->pointer_state_changed = ( drv->pointer_state.LeftButton != Pressed );
- 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.RightButton = Pressed;
+ drv->pointer_state.RightButton = Pressed;
}
}
@@ -460,10 +460,10 @@ HandleEvent(UGA_IO_PRIVATE *drv, XEvent *ev)
break;
case ButtonPress:
handleMouseDown(drv, ev, TRUE);
- break;
+ break;
case ButtonRelease:
handleMouseDown(drv, ev, FALSE);
- break;
+ break;
#if 0
case DestroyNotify:
XCloseDisplay (drv->display);
diff --git a/UnixPkg/Sec/X64/MangleGasket.S b/UnixPkg/Sec/X64/MangleGasket.S
index 532585b608..d457f6be12 100644
--- a/UnixPkg/Sec/X64/MangleGasket.S
+++ b/UnixPkg/Sec/X64/MangleGasket.S
@@ -9,7 +9,7 @@
# to get the correct binding (does not work from assembly). So we have 4 functions
# that do an indirect call, while the others call POSIX APIs directly
#
-# movq _gUnixRmDir@GOTPCREL(%rip), %rax
+# movq _gUnixRmDir@GOTPCREL(%rip), %rax
#
#
# UNIX Arg passing: RCX, RDX, R8, R9
@@ -34,7 +34,7 @@
// EFI ABI code will sub 40 (0x28) from %rsp before calling a function
// This is the 32 (0x20) byte to spill registers and 8 bytes to align stack on 16 byte boundry.
//
- .text
+ .text
// 32 byte shadow to spill rcx-r9, 8 bytes to align stack on 16 byte boundry
// Any call with 0 - 4 arguments allocates 40 bytes on the stack.
@@ -47,154 +47,154 @@
- .text
+ .text
ASM_GLOBAL ASM_PFX(Gasketrmdir)
ASM_PFX(Gasketrmdir):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
- pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
- pushq %rdi
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
- movq ASM_PFX(gUnixRmDir)@GOTPCREL(%rip), %rax // Get function name mangled by C
- movq (%rax), %rax
- call *%rax
+ movq ASM_PFX(gUnixRmDir)@GOTPCREL(%rip), %rax // Get function name mangled by C
+ movq (%rax), %rax
+ call *%rax
- popq %rdi // restore state
- popq %rsi
- popq %rbp
- ret
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
+ ret
ASM_GLOBAL ASM_PFX(Gasketopendir)
ASM_PFX(Gasketopendir):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
- pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
- pushq %rdi
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
- movq ASM_PFX(gUnixOpenDir)@GOTPCREL(%rip), %rax // Get function name mangled by C
- movq (%rax), %rax
- call *%rax
-
- popq %rdi // restore state
- popq %rsi
- popq %rbp
+ movq ASM_PFX(gUnixOpenDir)@GOTPCREL(%rip), %rax // Get function name mangled by C
+ movq (%rax), %rax
+ call *%rax
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(Gasketstat)
ASM_PFX(Gasketstat):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
- pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
- pushq %rdi
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
- movq ASM_PFX(gUnixStat)@GOTPCREL(%rip), %rax // Get function name mangled by C
- movq (%rax), %rax
- call *%rax
-
+ movq ASM_PFX(gUnixStat)@GOTPCREL(%rip), %rax // Get function name mangled by C
+ movq (%rax), %rax
+ call *%rax
+
- popq %rdi // restore state
- popq %rsi
- popq %rbp
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-
-
+
+
ASM_GLOBAL ASM_PFX(Gasketstatfs)
ASM_PFX(Gasketstatfs):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
- pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
- pushq %rdi
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
- movq ASM_PFX(gUnixStatFs)@GOTPCREL(%rip), %rax // Get function name mangled by C
- movq (%rax), %rax
- call *%rax
-
- popq %rdi // restore state
- popq %rsi
- popq %rbp
+ movq ASM_PFX(gUnixStatFs)@GOTPCREL(%rip), %rax // Get function name mangled by C
+ movq (%rax), %rax
+ call *%rax
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-
+
ASM_GLOBAL ASM_PFX(Gasketrewinddir)
ASM_PFX(Gasketrewinddir):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
- pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
- pushq %rdi
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
- movq ASM_PFX(gUnixRewinddir)@GOTPCREL(%rip), %rax // Get function name mangled by C
- movq (%rax), %rax
- call *%rax
-
- popq %rdi // restore state
- popq %rsi
- popq %rbp
+ movq ASM_PFX(gUnixRewinddir)@GOTPCREL(%rip), %rax // Get function name mangled by C
+ movq (%rax), %rax
+ call *%rax
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-
+
ASM_GLOBAL ASM_PFX(Gasketreaddir)
ASM_PFX(Gasketreaddir):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
- pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
- pushq %rdi
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
- movq ASM_PFX(gUnixReaddir)@GOTPCREL(%rip), %rax // Get function name mangled by C
- movq (%rax), %rax
- call *%rax
-
- popq %rdi // restore state
- popq %rsi
- popq %rbp
+ movq ASM_PFX(gUnixReaddir)@GOTPCREL(%rip), %rax // Get function name mangled by C
+ movq (%rax), %rax
+ call *%rax
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-
+
ASM_GLOBAL ASM_PFX(GasketmsSleep)
ASM_PFX(GasketmsSleep):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
- pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
- pushq %rdi
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
- call ASM_PFX(msSleep)
-
- popq %rdi // restore state
- popq %rsi
- popq %rbp
+ call ASM_PFX(msSleep)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-
-
+
+
ASM_GLOBAL ASM_PFX(Gasketexit)
ASM_PFX(Gasketexit):
movq %rcx, %rdi // Swizzle args
- call ASM_PFX(exit) // Less to do as we will never return to EFI ABI world
+ call ASM_PFX(exit) // Less to do as we will never return to EFI ABI world
LDEAD_LOOP:
jmp LDEAD_LOOP // _exit should never return
@@ -202,26 +202,26 @@ LDEAD_LOOP:
ASM_GLOBAL ASM_PFX(GasketSetTimer)
ASM_PFX(GasketSetTimer):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
- pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
- pushq %rdi
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
- call ASM_PFX(SetTimer)
-
- popq %rdi // restore state
- popq %rsi
- popq %rbp
+ call ASM_PFX(SetTimer)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-
+
ASM_GLOBAL ASM_PFX(GasketGetLocalTime)
ASM_PFX(GasketGetLocalTime):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -229,18 +229,18 @@ ASM_PFX(GasketGetLocalTime):
movq %rcx, %rdi // Swizzle args
- call ASM_PFX(GetLocalTime)
+ call ASM_PFX(GetLocalTime)
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(Gasketgmtime)
ASM_PFX(Gasketgmtime):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -248,50 +248,50 @@ ASM_PFX(Gasketgmtime):
movq %rcx, %rdi // Swizzle args
- call ASM_PFX(localtime)
+ call ASM_PFX(localtime)
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(GasketGetTimeZone)
ASM_PFX(GasketGetTimeZone):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
pushq %rdi
- call ASM_PFX(GetTimeZone)
+ call ASM_PFX(GetTimeZone)
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(GasketGetDayLight)
ASM_PFX(GasketGetDayLight):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
pushq %rdi
- call ASM_PFX(GetDayLight)
+ call ASM_PFX(GetDayLight)
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(Gasketpoll)
ASM_PFX(Gasketpoll):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -301,18 +301,18 @@ ASM_PFX(Gasketpoll):
movq %rdx, %rsi
movq %r8, %rdx
- call ASM_PFX(poll)
+ call ASM_PFX(poll)
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(Gasketread)
ASM_PFX(Gasketread):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -322,17 +322,17 @@ ASM_PFX(Gasketread):
movq %rdx, %rsi
movq %r8, %rdx
- call ASM_PFX(read)
+ call ASM_PFX(read)
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(Gasketwrite)
ASM_PFX(Gasketwrite):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -342,17 +342,17 @@ ASM_PFX(Gasketwrite):
movq %rdx, %rsi
movq %r8, %rdx
- call ASM_PFX(write)
+ call ASM_PFX(write)
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(Gasketgetenv)
ASM_PFX(Gasketgetenv):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -360,17 +360,17 @@ ASM_PFX(Gasketgetenv):
movq %rcx, %rdi // Swizzle args
- call ASM_PFX(getenv)
+ call ASM_PFX(getenv)
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(Gasketopen)
ASM_PFX(Gasketopen):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -380,17 +380,17 @@ ASM_PFX(Gasketopen):
movq %rdx, %rsi
movq %r8, %rdx
- call ASM_PFX(open)
+ call ASM_PFX(open)
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(Gasketlseek)
ASM_PFX(Gasketlseek):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -400,17 +400,17 @@ ASM_PFX(Gasketlseek):
movq %rdx, %rsi
movq %r8, %rdx
- call ASM_PFX(lseek)
+ call ASM_PFX(lseek)
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(Gasketftruncate)
ASM_PFX(Gasketftruncate):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -420,17 +420,17 @@ ASM_PFX(Gasketftruncate):
movq %rdx, %rsi
movq %r8, %rdx
- call ASM_PFX(ftruncate)
+ call ASM_PFX(ftruncate)
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(Gasketclose)
ASM_PFX(Gasketclose):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -438,18 +438,18 @@ ASM_PFX(Gasketclose):
movq %rcx, %rdi // Swizzle args
- call ASM_PFX(close)
+ call ASM_PFX(close)
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(Gasketmkdir)
ASM_PFX(Gasketmkdir):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -458,17 +458,17 @@ ASM_PFX(Gasketmkdir):
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
- call ASM_PFX(mkdir)
+ call ASM_PFX(mkdir)
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(Gasketunlink)
ASM_PFX(Gasketunlink):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -476,32 +476,32 @@ ASM_PFX(Gasketunlink):
movq %rcx, %rdi // Swizzle args
- call ASM_PFX(unlink)
+ call ASM_PFX(unlink)
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(GasketGetErrno)
ASM_PFX(GasketGetErrno):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
pushq %rdi
- call ASM_PFX(GetErrno)
+ call ASM_PFX(GetErrno)
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(Gasketclosedir)
ASM_PFX(Gasketclosedir):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -509,17 +509,17 @@ ASM_PFX(Gasketclosedir):
movq %rcx, %rdi // Swizzle args
- call ASM_PFX(closedir)
+ call ASM_PFX(closedir)
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(Gasketrename)
ASM_PFX(Gasketrename):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -528,17 +528,17 @@ ASM_PFX(Gasketrename):
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
- call ASM_PFX(rename)
+ call ASM_PFX(rename)
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(Gasketmktime)
ASM_PFX(Gasketmktime):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -547,17 +547,17 @@ ASM_PFX(Gasketmktime):
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
- call ASM_PFX(mktime)
+ call ASM_PFX(mktime)
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(Gasketfsync)
ASM_PFX(Gasketfsync):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -566,17 +566,17 @@ ASM_PFX(Gasketfsync):
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
- call ASM_PFX(fsync)
+ call ASM_PFX(fsync)
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(Gasketchmod)
ASM_PFX(Gasketchmod):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -585,17 +585,17 @@ ASM_PFX(Gasketchmod):
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
- call ASM_PFX(chmod)
+ call ASM_PFX(chmod)
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(Gasketutime)
ASM_PFX(Gasketutime):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -604,17 +604,17 @@ ASM_PFX(Gasketutime):
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
- call ASM_PFX(utime)
+ call ASM_PFX(utime)
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(Gaskettcflush)
ASM_PFX(Gaskettcflush):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -623,17 +623,17 @@ ASM_PFX(Gaskettcflush):
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
- call ASM_PFX(tcflush)
+ call ASM_PFX(tcflush)
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(GasketUgaCreate)
ASM_PFX(GasketUgaCreate):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -642,17 +642,17 @@ ASM_PFX(GasketUgaCreate):
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
- call ASM_PFX(UgaCreate)
+ call ASM_PFX(UgaCreate)
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(Gasketperror)
ASM_PFX(Gasketperror):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -661,17 +661,17 @@ ASM_PFX(Gasketperror):
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
- call ASM_PFX(perror)
+ call ASM_PFX(perror)
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(Gasketioctl)
ASM_PFX(Gasketioctl):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -681,17 +681,17 @@ ASM_PFX(Gasketioctl):
movq %rdx, %rsi
movq %r8, %rdx
- call ASM_PFX(UnixIoCtl1)
+ call ASM_PFX(UnixIoCtl1)
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(Gasketfcntl)
ASM_PFX(Gasketfcntl):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -701,18 +701,18 @@ ASM_PFX(Gasketfcntl):
movq %rdx, %rsi
movq %r8, %rdx
- call ASM_PFX(UnixFcntl1)
+ call ASM_PFX(UnixFcntl1)
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(Gasketcfsetispeed)
ASM_PFX(Gasketcfsetispeed):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -721,18 +721,18 @@ ASM_PFX(Gasketcfsetispeed):
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
- call ASM_PFX(cfsetispeed)
+ call ASM_PFX(cfsetispeed)
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(Gasketcfsetospeed)
ASM_PFX(Gasketcfsetospeed):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -741,17 +741,17 @@ ASM_PFX(Gasketcfsetospeed):
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
- call ASM_PFX(cfsetospeed)
+ call ASM_PFX(cfsetospeed)
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(Gaskettcgetattr)
ASM_PFX(Gaskettcgetattr):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -761,17 +761,17 @@ ASM_PFX(Gaskettcgetattr):
movq %rdx, %rsi
movq %r8, %rdx
- call ASM_PFX(tcgetattr)
+ call ASM_PFX(tcgetattr)
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(Gaskettcsetattr)
ASM_PFX(Gaskettcsetattr):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -781,17 +781,17 @@ ASM_PFX(Gaskettcsetattr):
movq %rdx, %rsi
movq %r8, %rdx
- call ASM_PFX(tcsetattr)
+ call ASM_PFX(tcsetattr)
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(GasketUnixPeCoffGetEntryPoint)
ASM_PFX(GasketUnixPeCoffGetEntryPoint):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -800,18 +800,18 @@ ASM_PFX(GasketUnixPeCoffGetEntryPoint):
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
- call ASM_PFX(SecPeCoffGetEntryPoint)
+ call ASM_PFX(SecPeCoffGetEntryPoint)
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(GasketUnixPeCoffRelocateImageExtraAction)
ASM_PFX(GasketUnixPeCoffRelocateImageExtraAction):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -819,17 +819,17 @@ ASM_PFX(GasketUnixPeCoffRelocateImageExtraAction):
movq %rcx, %rdi // Swizzle args
- call ASM_PFX(SecPeCoffRelocateImageExtraAction)
+ call ASM_PFX(SecPeCoffRelocateImageExtraAction)
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(GasketUnixPeCoffUnloadImageExtraAction)
ASM_PFX(GasketUnixPeCoffUnloadImageExtraAction):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -837,11 +837,11 @@ ASM_PFX(GasketUnixPeCoffUnloadImageExtraAction):
movq %rcx, %rdi // Swizzle args
- call ASM_PFX(SecPeCoffLoaderUnloadImageExtraAction)
+ call ASM_PFX(SecPeCoffLoaderUnloadImageExtraAction)
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
@@ -850,7 +850,7 @@ ASM_PFX(GasketUnixPeCoffUnloadImageExtraAction):
ASM_GLOBAL ASM_PFX(Gasketsocket)
ASM_PFX(Gasketsocket):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -865,14 +865,14 @@ ASM_PFX(Gasketsocket):
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(Gasketgetifaddrs)
ASM_PFX(Gasketgetifaddrs):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -883,16 +883,16 @@ ASM_PFX(Gasketgetifaddrs):
call ASM_PFX(getifaddrs)
- popq %rbp
- popq %rsi
- popq %rbp
+ popq %rbp
+ popq %rsi
+ popq %rbp
ret
ASM_GLOBAL _Gasketfreeifaddrs
_Gasketfreeifaddrs:
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -905,7 +905,7 @@ _Gasketfreeifaddrs:
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
@@ -914,7 +914,7 @@ _Gasketfreeifaddrs:
ASM_GLOBAL ASM_PFX(GasketUgaClose)
ASM_PFX(GasketUgaClose):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -922,11 +922,11 @@ ASM_PFX(GasketUgaClose):
movq %rcx, %rdi // Swizzle args
- call ASM_PFX(UgaClose)
+ call ASM_PFX(UgaClose)
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
@@ -934,7 +934,7 @@ ASM_PFX(GasketUgaClose):
ASM_GLOBAL ASM_PFX(GasketUgaSize)
ASM_PFX(GasketUgaSize):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -944,17 +944,17 @@ ASM_PFX(GasketUgaSize):
movq %rdx, %rsi
movq %r8, %rdx
- call ASM_PFX(UgaSize)
+ call ASM_PFX(UgaSize)
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(GasketUgaCheckKey)
ASM_PFX(GasketUgaCheckKey):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -962,17 +962,17 @@ ASM_PFX(GasketUgaCheckKey):
movq %rcx, %rdi // Swizzle args
- call ASM_PFX(UgaCheckKey)
+ call ASM_PFX(UgaCheckKey)
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(GasketUgaGetKey)
ASM_PFX(GasketUgaGetKey):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -981,16 +981,16 @@ ASM_PFX(GasketUgaGetKey):
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
- call ASM_PFX(UgaGetKey)
+ call ASM_PFX(UgaGetKey)
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(GasketUgaKeySetState)
ASM_PFX(GasketUgaKeySetState):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -1003,13 +1003,13 @@ ASM_PFX(GasketUgaKeySetState):
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(GasketUgaRegisterKeyNotify)
ASM_PFX(GasketUgaRegisterKeyNotify):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -1023,7 +1023,7 @@ ASM_PFX(GasketUgaRegisterKeyNotify):
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
@@ -1032,7 +1032,7 @@ ASM_PFX(GasketUgaRegisterKeyNotify):
ASM_GLOBAL ASM_PFX(GasketUgaBlt)
ASM_PFX(GasketUgaBlt):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -1043,17 +1043,17 @@ ASM_PFX(GasketUgaBlt):
movq %r8, %rdx
movq %r9, %rcx
- call ASM_PFX(UgaBlt)
+ call ASM_PFX(UgaBlt)
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(GasketUgaCheckPointer)
ASM_PFX(GasketUgaCheckPointer):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -1065,13 +1065,13 @@ ASM_PFX(GasketUgaCheckPointer):
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(GasketUgaGetPointerState)
ASM_PFX(GasketUgaGetPointerState):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -1084,13 +1084,13 @@ ASM_PFX(GasketUgaGetPointerState):
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(GasketUnixEnableInterrupt)
ASM_PFX(GasketUnixEnableInterrupt):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -1100,12 +1100,12 @@ ASM_PFX(GasketUnixEnableInterrupt):
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(GasketUnixDisableInterrupt)
ASM_PFX(GasketUnixDisableInterrupt):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -1115,7 +1115,7 @@ ASM_PFX(GasketUnixDisableInterrupt):
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
//
@@ -1128,7 +1128,7 @@ ASM_PFX(GasketUnixDisableInterrupt):
// );
ASM_GLOBAL ASM_PFX(ReverseGasketUint64)
ASM_PFX(ReverseGasketUint64):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
movq %rdi, %rax // Swizzle args
@@ -1138,7 +1138,7 @@ ASM_PFX(ReverseGasketUint64):
call *%rax
addq $32, %rsp
- popq %rbp
+ popq %rbp
ret
//
@@ -1152,7 +1152,7 @@ ASM_PFX(ReverseGasketUint64):
// );
ASM_GLOBAL ASM_PFX(ReverseGasketUint64Uint64)
ASM_PFX(ReverseGasketUint64Uint64):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
movq %rdi, %rax // Swizzle args
@@ -1162,7 +1162,7 @@ ASM_PFX(ReverseGasketUint64Uint64):
call *%rax
addq $32, %rsp
- popq %rbp
+ popq %rbp
ret
@@ -1170,7 +1170,7 @@ ASM_PFX(ReverseGasketUint64Uint64):
ASM_GLOBAL ASM_PFX(GasketSecUnixPeiLoadFile)
ASM_PFX(GasketSecUnixPeiLoadFile):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -1181,7 +1181,7 @@ ASM_PFX(GasketSecUnixPeiLoadFile):
movq %r8, %rdx
movq %r9, %rcx
- call ASM_PFX(SecUnixPeiLoadFile)
+ call ASM_PFX(SecUnixPeiLoadFile)
popq %rdi // restore state
popq %rsi
@@ -1192,7 +1192,7 @@ ASM_PFX(GasketSecUnixPeiLoadFile):
ASM_GLOBAL ASM_PFX(GasketSecUnixPeiAutoScan)
ASM_PFX(GasketSecUnixPeiAutoScan):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -1202,33 +1202,33 @@ ASM_PFX(GasketSecUnixPeiAutoScan):
movq %rdx, %rsi
movq %r8, %rdx
- call ASM_PFX(SecUnixPeiAutoScan)
+ call ASM_PFX(SecUnixPeiAutoScan)
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(GasketSecUnixUnixThunkAddress)
ASM_PFX(GasketSecUnixUnixThunkAddress):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
pushq %rdi
- call ASM_PFX(SecUnixUnixThunkAddress)
+ call ASM_PFX(SecUnixUnixThunkAddress)
- popq %rdi
- popq %rsi
- popq %rbp
+ popq %rdi
+ popq %rsi
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(GasketSecPeiReportStatusCode)
ASM_PFX(GasketSecPeiReportStatusCode):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -1241,17 +1241,17 @@ ASM_PFX(GasketSecPeiReportStatusCode):
movq $0, %r8 // BugBug: This should come from the stack
movq $0, %r9 // But we can cheat since they are optional for bringup....
- call ASM_PFX(SecPeiReportStatusCode)
+ call ASM_PFX(SecPeiReportStatusCode)
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
ASM_GLOBAL ASM_PFX(GasketSecUnixFdAddress)
ASM_PFX(GasketSecUnixFdAddress):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -1262,11 +1262,11 @@ ASM_PFX(GasketSecUnixFdAddress):
movq %r8, %rdx
movq %r9, %rcx
- call ASM_PFX(SecUnixFdAddress)
+ call ASM_PFX(SecUnixFdAddress)
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
@@ -1274,7 +1274,7 @@ ASM_PFX(GasketSecUnixFdAddress):
ASM_GLOBAL ASM_PFX(GasketSecTemporaryRamSupport)
ASM_PFX(GasketSecTemporaryRamSupport):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
@@ -1285,11 +1285,11 @@ ASM_PFX(GasketSecTemporaryRamSupport):
movq %r8, %rdx
movq %r9, %rcx
- call ASM_PFX(SecTemporaryRamSupport)
+ call ASM_PFX(SecTemporaryRamSupport)
popq %rdi // restore state
popq %rsi
- popq %rbp
+ popq %rbp
ret
diff --git a/UnixPkg/Sec/X64/SwitchStack.S b/UnixPkg/Sec/X64/SwitchStack.S
index e964e4d178..e9adefce39 100644
--- a/UnixPkg/Sec/X64/SwitchStack.S
+++ b/UnixPkg/Sec/X64/SwitchStack.S
@@ -39,8 +39,8 @@
#------------------------------------------------------------------------------
ASM_GLOBAL ASM_PFX(PeiSwitchStacks)
ASM_PFX(PeiSwitchStacks):
- pushq %rbp // stack frame is for the debugger
- movq %rsp, %rbp
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
movq %r8, %rsp
@@ -52,7 +52,7 @@ ASM_PFX(PeiSwitchStacks):
# Reserve space for register parameters (rcx, rdx, r8 & r9) on the stack,
# in case the callee wishes to spill them.
#
- subq $32, %rsp // 32-byte shadow space plus alignment pad
+ subq $32, %rsp // 32-byte shadow space plus alignment pad
call *%rax
@@ -76,8 +76,8 @@ ASM_PFX(PeiSwitchStacks):
#------------------------------------------------------------------------------
ASM_GLOBAL ASM_PFX(UnixPeiSwitchStacks)
ASM_PFX(UnixPeiSwitchStacks):
- pushq %rbp // stack frame is for the debugger
- movq %rsp, %rbp
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
mov %rdi, %rax
mov %rsi, %rdi
@@ -105,7 +105,7 @@ ASM_PFX(UnixPeiSwitchStacks):
#------------------------------------------------------------------------------
ASM_GLOBAL ASM_PFX(SecSwitchStack)
ASM_PFX(SecSwitchStack):
- pushq %rbp // stack frame is for the debugger
+ pushq %rbp // stack frame is for the debugger
movq %rsp, %rbp
mov %rsp, %rax
diff --git a/UnixPkg/TimerDxe/Timer.c b/UnixPkg/TimerDxe/Timer.c
index 385db630db..5314d11ccd 100644
--- a/UnixPkg/TimerDxe/Timer.c
+++ b/UnixPkg/TimerDxe/Timer.c
@@ -227,7 +227,7 @@ Returns:
//
if (TimerPeriod == 0
|| ((TimerPeriod > TIMER_MINIMUM_VALUE)
- && (TimerPeriod < TIMER_MAXIMUM_VALUE))) {
+ && (TimerPeriod < TIMER_MAXIMUM_VALUE))) {
mTimerPeriodMs = DivU64x32 (TimerPeriod + 5000, 10000);
gUnix->SetTimer (mTimerPeriodMs, TimerCallback);
diff --git a/UnixPkg/UnixBlockIoDxe/DriverDiagnostics.c b/UnixPkg/UnixBlockIoDxe/DriverDiagnostics.c
index 0df0e3d967..69ba61dfb5 100644
--- a/UnixPkg/UnixBlockIoDxe/DriverDiagnostics.c
+++ b/UnixPkg/UnixBlockIoDxe/DriverDiagnostics.c
@@ -149,7 +149,7 @@ UnixBlockIoDriverDiagnosticsRunDiagnostics (
*ErrorType = &gEfiBlockIoProtocolGuid;
*BufferSize = 0x60;
gBS->AllocatePool (EfiBootServicesData, (UINTN) (*BufferSize),
- (void *)Buffer);
+ (void *)Buffer);
CopyMem (*Buffer, L"Unix Block I/O Driver Diagnostics Failed\n", *BufferSize);
return EFI_DEVICE_ERROR;
}
diff --git a/UnixPkg/UnixBlockIoDxe/UnixBlockIo.c b/UnixPkg/UnixBlockIoDxe/UnixBlockIo.c
index f61db9481b..2de6cc6282 100644
--- a/UnixPkg/UnixBlockIoDxe/UnixBlockIo.c
+++ b/UnixPkg/UnixBlockIoDxe/UnixBlockIo.c
@@ -410,7 +410,7 @@ Returns:
BOOLEAN WriteProtected;
UINTN NumberOfBlocks;
UINTN BlockSize;
- INTN i;
+ INTN i;
//
// Grab the protocols we need
diff --git a/UnixPkg/UnixBusDriverDxe/UnixBusDriver.c b/UnixPkg/UnixBusDriverDxe/UnixBusDriver.c
index 52618d73a0..e1ec083822 100644
--- a/UnixPkg/UnixBusDriverDxe/UnixBusDriver.c
+++ b/UnixPkg/UnixBusDriverDxe/UnixBusDriver.c
@@ -468,7 +468,7 @@ Returns:
UnixDevice->ControllerNameTable = NULL;
- // FIXME: check size
+ // FIXME: check size
StrCpy(ComponentName, UnixDevice->UnixIo.EnvString);
UnixDevice->DevicePath = UnixBusCreateDevicePath (
diff --git a/UnixPkg/UnixSerialIoDxe/UnixSerialIo.h b/UnixPkg/UnixSerialIoDxe/UnixSerialIo.h
index 484a07c482..704b54e234 100644
--- a/UnixPkg/UnixSerialIoDxe/UnixSerialIo.h
+++ b/UnixPkg/UnixSerialIoDxe/UnixSerialIo.h
@@ -191,10 +191,10 @@ extern EFI_COMPONENT_NAME_PROTOCOL gUnixSerialIoComponentName;
#define __MAX_BAUD B4000000
#endif
#ifndef CMSPAR
-#define CMSPAR 010000000000 /* mark or space (stick) parity */
+#define CMSPAR 010000000000 /* mark or space (stick) parity */
#endif
#ifndef FIONREAD
-#define FIONREAD 0x541B
+#define FIONREAD 0x541B
#endif
//
// Function Prototypes
diff --git a/UnixPkg/UnixSimpleFileSystemDxe/UnixSimpleFileSystem.c b/UnixPkg/UnixSimpleFileSystemDxe/UnixSimpleFileSystem.c
index 81065e7355..e697b99a38 100644
--- a/UnixPkg/UnixSimpleFileSystemDxe/UnixSimpleFileSystem.c
+++ b/UnixPkg/UnixSimpleFileSystemDxe/UnixSimpleFileSystem.c
@@ -350,9 +350,9 @@ Done:
if (Private != NULL) {
if (Private->VolumeLabel != NULL)
- gBS->FreePool (Private->VolumeLabel);
+ gBS->FreePool (Private->VolumeLabel);
if (Private->FilePath != NULL)
- gBS->FreePool (Private->FilePath);
+ gBS->FreePool (Private->FilePath);
FreeUnicodeStringTable (Private->ControllerNameTable);
gBS->FreePool (Private);
@@ -862,7 +862,7 @@ OpenRoot:
// Create a directory
//
if (NewPrivateFile->UnixThunk->MkDir (NewPrivateFile->FileName, 0777) != 0) {
- INTN LastError;
+ INTN LastError;
LastError = PrivateFile->UnixThunk->GetErrno ();
if (LastError != EEXIST) {
@@ -897,9 +897,9 @@ OpenRoot:
0666);
if (NewPrivateFile->fd < 0) {
if (PrivateFile->UnixThunk->GetErrno () == ENOENT) {
- Status = EFI_NOT_FOUND;
+ Status = EFI_NOT_FOUND;
} else {
- Status = EFI_ACCESS_DENIED;
+ Status = EFI_ACCESS_DENIED;
}
}
}
@@ -1184,7 +1184,7 @@ Returns:
}
if (PrivateFile->UnixThunk->Stat (
FileName == NULL ? PrivateFile->FileName : FileName,
- &buf) < 0)
+ &buf) < 0)
return EFI_DEVICE_ERROR;
Status = EFI_SUCCESS;
@@ -1285,9 +1285,9 @@ Returns:
}
Res = PrivateFile->UnixThunk->Read (
- PrivateFile->fd,
- Buffer,
- *BufferSize);
+ PrivateFile->fd,
+ Buffer,
+ *BufferSize);
if (Res < 0) {
Status = EFI_DEVICE_ERROR;
goto Done;
@@ -1336,14 +1336,14 @@ Returns:
if (EFI_ERROR (Status)) {
goto Done;
}
-
+
AsciiStrCpy(FullFileName, PrivateFile->FileName);
AsciiStrCat(FullFileName, "/");
AsciiStrCat(FullFileName, PrivateFile->Dirent->d_name);
Status = UnixSimpleFileSystemFileInfo (PrivateFile,
- FullFileName,
- BufferSize,
- Buffer);
+ FullFileName,
+ BufferSize,
+ Buffer);
gBS->FreePool (FullFileName);
PrivateFile->Dirent = NULL;
@@ -1423,9 +1423,9 @@ Returns:
}
Res = PrivateFile->UnixThunk->Write (
- PrivateFile->fd,
- Buffer,
- *BufferSize);
+ PrivateFile->fd,
+ Buffer,
+ *BufferSize);
if (Res == (UINTN)-1) {
Status = EFI_DEVICE_ERROR;
goto Done;
@@ -1850,7 +1850,7 @@ Returns:
}
Status = gBS->AllocatePool (EfiBootServicesData, OldInfoSize,
- (VOID **)&OldFileInfo);
+ (VOID **)&OldFileInfo);
if (EFI_ERROR (Status)) {
goto Done;
diff --git a/UnixPkg/UnixSnpDxe/UnixSnp.c b/UnixPkg/UnixSnpDxe/UnixSnp.c
index 8dcadd7508..b910041911 100644
--- a/UnixPkg/UnixSnpDxe/UnixSnp.c
+++ b/UnixPkg/UnixSnpDxe/UnixSnp.c
@@ -24,12 +24,12 @@ Abstract:
EFI_DRIVER_BINDING_PROTOCOL gUnixSnpDriverBinding =
{
- UnixSnpDriverBindingSupported,
- UnixSnpDriverBindingStart,
- UnixSnpDriverBindingStop,
- 0xA,
- NULL,
- NULL
+ UnixSnpDriverBindingSupported,
+ UnixSnpDriverBindingStart,
+ UnixSnpDriverBindingStop,
+ 0xA,
+ NULL,
+ NULL
};
/**
@@ -43,8 +43,8 @@ EFI_DRIVER_BINDING_PROTOCOL gUnixSnpDriverBinding =
EFI_STATUS
EFIAPI
UnixSnpStart(
- IN EFI_SIMPLE_NETWORK_PROTOCOL* This
- );
+ IN EFI_SIMPLE_NETWORK_PROTOCOL* This
+ );
/**
Changes the state of a network interface from "started" to "stopped".
@@ -57,8 +57,8 @@ UnixSnpStart(
EFI_STATUS
EFIAPI
UnixSnpStop(
- IN EFI_SIMPLE_NETWORK_PROTOCOL* This
- );
+ IN EFI_SIMPLE_NETWORK_PROTOCOL* This
+ );
/**
Resets a network adapter and allocates the transmit and receive buffers
@@ -83,10 +83,10 @@ UnixSnpStop(
EFI_STATUS
EFIAPI
UnixSnpInitialize(
- IN EFI_SIMPLE_NETWORK_PROTOCOL* This,
- IN UINTN ExtraRxBufferSize OPTIONAL,
- IN UINTN ExtraTxBufferSize OPTIONAL
- );
+ IN EFI_SIMPLE_NETWORK_PROTOCOL* This,
+ IN UINTN ExtraRxBufferSize OPTIONAL,
+ IN UINTN ExtraTxBufferSize OPTIONAL
+ );
/**
Resets a network adapter and re-initializes it with the parameters that were
@@ -103,9 +103,9 @@ UnixSnpInitialize(
EFI_STATUS
EFIAPI
UnixSnpReset(
- IN EFI_SIMPLE_NETWORK_PROTOCOL* This,
- IN BOOLEAN ExtendedVerification
- );
+ IN EFI_SIMPLE_NETWORK_PROTOCOL* This,
+ IN BOOLEAN ExtendedVerification
+ );
/**
Resets a network adapter and leaves it in a state that is safe for
@@ -119,8 +119,8 @@ UnixSnpReset(
EFI_STATUS
EFIAPI
UnixSnpShutdown(
- IN EFI_SIMPLE_NETWORK_PROTOCOL* This
- );
+ IN EFI_SIMPLE_NETWORK_PROTOCOL* This
+ );
/**
Manages the multicast receive filters of a network interface.
@@ -146,13 +146,13 @@ UnixSnpShutdown(
EFI_STATUS
EFIAPI
UnixSnpReceiveFilters(
- IN EFI_SIMPLE_NETWORK_PROTOCOL* This,
- IN UINT32 EnableBits,
- IN UINT32 DisableBits,
- IN BOOLEAN ResetMcastFilter,
- IN UINTN McastFilterCount OPTIONAL,
- IN EFI_MAC_ADDRESS* McastFilter OPTIONAL
- );
+ IN EFI_SIMPLE_NETWORK_PROTOCOL* This,
+ IN UINT32 EnableBits,
+ IN UINT32 DisableBits,
+ IN BOOLEAN ResetMcastFilter,
+ IN UINTN McastFilterCount OPTIONAL,
+ IN EFI_MAC_ADDRESS* McastFilter OPTIONAL
+ );
/**
Modifies or resets the current station address, if supported.
@@ -168,10 +168,10 @@ UnixSnpReceiveFilters(
EFI_STATUS
EFIAPI
UnixSnpStationAddress(
- IN EFI_SIMPLE_NETWORK_PROTOCOL* This,
- IN BOOLEAN Reset,
- IN EFI_MAC_ADDRESS* NewMacAddr OPTIONAL
- );
+ IN EFI_SIMPLE_NETWORK_PROTOCOL* This,
+ IN BOOLEAN Reset,
+ IN EFI_MAC_ADDRESS* NewMacAddr OPTIONAL
+ );
/**
Resets or collects the statistics on a network interface.
@@ -195,11 +195,11 @@ UnixSnpStationAddress(
EFI_STATUS
EFIAPI
UnixSnpStatistics(
- IN EFI_SIMPLE_NETWORK_PROTOCOL* This,
- IN BOOLEAN Reset,
- IN OUT UINTN* StatisticsSize OPTIONAL,
- OUT EFI_NETWORK_STATISTICS* StatisticsTable OPTIONAL
- );
+ IN EFI_SIMPLE_NETWORK_PROTOCOL* This,
+ IN BOOLEAN Reset,
+ IN OUT UINTN* StatisticsSize OPTIONAL,
+ OUT EFI_NETWORK_STATISTICS* StatisticsTable OPTIONAL
+ );
/**
Converts a multicast IP address to a multicast HW MAC address.
@@ -223,11 +223,11 @@ UnixSnpStatistics(
EFI_STATUS
EFIAPI
UnixSnpMcastIptoMac(
- IN EFI_SIMPLE_NETWORK_PROTOCOL* This,
- IN BOOLEAN Ipv6,
- IN EFI_IP_ADDRESS* Ip,
- OUT EFI_MAC_ADDRESS* Mac
- );
+ IN EFI_SIMPLE_NETWORK_PROTOCOL* This,
+ IN BOOLEAN Ipv6,
+ IN EFI_IP_ADDRESS* Ip,
+ OUT EFI_MAC_ADDRESS* Mac
+ );
/**
Performs read and write operations on the NVRAM device attached to a
@@ -248,12 +248,12 @@ UnixSnpMcastIptoMac(
EFI_STATUS
EFIAPI
UnixSnpNvdata(
- IN EFI_SIMPLE_NETWORK_PROTOCOL* This,
- IN BOOLEAN ReadOrWrite,
- IN UINTN Offset,
- IN UINTN BufferSize,
- IN OUT VOID* Buffer
- );
+ IN EFI_SIMPLE_NETWORK_PROTOCOL* This,
+ IN BOOLEAN ReadOrWrite,
+ IN UINTN Offset,
+ IN UINTN BufferSize,
+ IN OUT VOID* Buffer
+ );
/**
Reads the current interrupt status and recycled transmit buffer status from
@@ -279,10 +279,10 @@ UnixSnpNvdata(
EFI_STATUS
EFIAPI
UnixSnpGetStatus(
- IN EFI_SIMPLE_NETWORK_PROTOCOL* This,
- OUT UINT32* InterruptStatus,
- OUT VOID** TxBuffer
- );
+ IN EFI_SIMPLE_NETWORK_PROTOCOL* This,
+ OUT UINT32* InterruptStatus,
+ OUT VOID** TxBuffer
+ );
/**
Places a packet in the transmit queue of a network interface.
@@ -316,14 +316,14 @@ UnixSnpGetStatus(
EFI_STATUS
EFIAPI
UnixSnpTransmit(
- IN EFI_SIMPLE_NETWORK_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 EFI_SIMPLE_NETWORK_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
+ );
/**
Receives a packet from a network interface.
@@ -358,21 +358,21 @@ UnixSnpTransmit(
EFI_STATUS
EFIAPI
UnixSnpReceive(
- IN EFI_SIMPLE_NETWORK_PROTOCOL* This,
- OUT UINTN* HeaderSize OPTIONAL,
- IN OUT UINTN* BuffSize,
- OUT VOID* Buffer,
- OUT EFI_MAC_ADDRESS* SourceAddr OPTIONAL,
- OUT EFI_MAC_ADDRESS* DestinationAddr OPTIONAL,
- OUT UINT16* Protocol OPTIONAL
- );
+ IN EFI_SIMPLE_NETWORK_PROTOCOL* This,
+ OUT UINTN* HeaderSize OPTIONAL,
+ IN OUT UINTN* BuffSize,
+ OUT VOID* Buffer,
+ OUT EFI_MAC_ADDRESS* SourceAddr OPTIONAL,
+ OUT EFI_MAC_ADDRESS* DestinationAddr OPTIONAL,
+ OUT UINT16* Protocol OPTIONAL
+ );
VOID
EFIAPI
UnixSnpWaitForPacketNotify(
- IN EFI_EVENT Event,
- IN VOID* Private
- );
+ IN EFI_EVENT Event,
+ IN VOID* Private
+ );
//
// Strange, but there doesn't appear to be any structure for the Ethernet header in edk2...
@@ -380,171 +380,171 @@ UnixSnpWaitForPacketNotify(
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;
} EthernetHeader;
UNIX_SNP_PRIVATE_DATA gUnixSnpPrivateTemplate =
{
- UNIX_SNP_PRIVATE_DATA_SIGNATURE, // Signature
- NULL, // UnixThunk
- NULL, // DeviceHandle
- NULL, // DevicePath
- { 0 }, // MacAddress
- NULL, // InterfaceName
- 0, // ReadBufferSize
- NULL, // ReadBuffer
- NULL, // CurrentReadPointer
- NULL, // EndReadPointer
- 0, // BpfFd
- { // Snp
- EFI_SIMPLE_NETWORK_PROTOCOL_REVISION, // Revision
- UnixSnpStart, // Start
- UnixSnpStop, // Stop
- UnixSnpInitialize, // Initialize
- UnixSnpReset, // Reset
- UnixSnpShutdown, // Shutdown
- UnixSnpReceiveFilters, // ReceiveFilters
- UnixSnpStationAddress, // StationAddress
- UnixSnpStatistics, // Statistics
- UnixSnpMcastIptoMac, // MCastIpToMac
- UnixSnpNvdata, // NvData
- UnixSnpGetStatus, // GetStatus
- UnixSnpTransmit, // Transmit
- UnixSnpReceive, // Receive
- NULL, // WaitForPacket
- NULL // Mode
- },
- { // Mode
- EfiSimpleNetworkStopped, // State
- NET_ETHER_ADDR_LEN, // HwAddressSize
- NET_ETHER_HEADER_SIZE, // MediaHeaderSize
- 1500, // MaxPacketSize
- 0, // NvRamSize
- 0, // NvRamAccessSize
- 0, // ReceiveFilterMask
- 0, // ReceiveFilterSetting
- MAX_MCAST_FILTER_CNT, // MaxMCastFilterCount
- 0, // MCastFilterCount
- {
- 0
- }, // MCastFilter
- {
- 0
- }, // CurrentAddress
- {
- 0
- }, // BroadcastAddress
- {
- 0
- }, // PermanentAddress
- NET_IFTYPE_ETHERNET, // IfType
- FALSE, // MacAddressChangeable
- FALSE, // MultipleTxSupported
- FALSE, // MediaPresentSupported
- TRUE // MediaPresent
- }
+ UNIX_SNP_PRIVATE_DATA_SIGNATURE, // Signature
+ NULL, // UnixThunk
+ NULL, // DeviceHandle
+ NULL, // DevicePath
+ { 0 }, // MacAddress
+ NULL, // InterfaceName
+ 0, // ReadBufferSize
+ NULL, // ReadBuffer
+ NULL, // CurrentReadPointer
+ NULL, // EndReadPointer
+ 0, // BpfFd
+ { // Snp
+ EFI_SIMPLE_NETWORK_PROTOCOL_REVISION, // Revision
+ UnixSnpStart, // Start
+ UnixSnpStop, // Stop
+ UnixSnpInitialize, // Initialize
+ UnixSnpReset, // Reset
+ UnixSnpShutdown, // Shutdown
+ UnixSnpReceiveFilters, // ReceiveFilters
+ UnixSnpStationAddress, // StationAddress
+ UnixSnpStatistics, // Statistics
+ UnixSnpMcastIptoMac, // MCastIpToMac
+ UnixSnpNvdata, // NvData
+ UnixSnpGetStatus, // GetStatus
+ UnixSnpTransmit, // Transmit
+ UnixSnpReceive, // Receive
+ NULL, // WaitForPacket
+ NULL // Mode
+ },
+ { // Mode
+ EfiSimpleNetworkStopped, // State
+ NET_ETHER_ADDR_LEN, // HwAddressSize
+ NET_ETHER_HEADER_SIZE, // MediaHeaderSize
+ 1500, // MaxPacketSize
+ 0, // NvRamSize
+ 0, // NvRamAccessSize
+ 0, // ReceiveFilterMask
+ 0, // ReceiveFilterSetting
+ MAX_MCAST_FILTER_CNT, // MaxMCastFilterCount
+ 0, // MCastFilterCount
+ {
+ 0
+ }, // MCastFilter
+ {
+ 0
+ }, // CurrentAddress
+ {
+ 0
+ }, // BroadcastAddress
+ {
+ 0
+ }, // PermanentAddress
+ NET_IFTYPE_ETHERNET, // IfType
+ FALSE, // MacAddressChangeable
+ FALSE, // MultipleTxSupported
+ FALSE, // MediaPresentSupported
+ TRUE // MediaPresent
+ }
};
STATIC EFI_STATUS
GetInterfaceMacAddr(
- IN UNIX_SNP_PRIVATE_DATA* Private,
- IN EFI_UNIX_IO_PROTOCOL* UnixIo
- )
+ IN UNIX_SNP_PRIVATE_DATA* Private,
+ IN EFI_UNIX_IO_PROTOCOL* UnixIo
+ )
{
- struct ifaddrs* IfAddrs;
- struct ifaddrs* If;
- struct sockaddr_dl* IfSdl;
- EFI_STATUS Status;
- INTN Result;
-
- Result = UnixIo->UnixThunk->GetIfAddrs( &IfAddrs );
- if ( Result != 0 )
- {
- return( EFI_UNSUPPORTED );
- }
-
- //
- // Convert the interface name to ASCII so we can find it.
- //
- Private->InterfaceName = AllocateZeroPool( StrLen( UnixIo->EnvString ) );
-
- if ( !Private->InterfaceName )
- {
- Status = EFI_OUT_OF_RESOURCES;
- goto Exit;
- }
-
- UnicodeStrToAsciiStr( UnixIo->EnvString, Private->InterfaceName );
-
- 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 ) )
- {
- CopyMem( &Private->MacAddress, LLADDR( IfSdl ), NET_ETHER_ADDR_LEN );
-
- Status = EFI_SUCCESS;
- break;
- }
- }
-
- If = If->ifa_next;
- }
+ struct ifaddrs* IfAddrs;
+ struct ifaddrs* If;
+ struct sockaddr_dl* IfSdl;
+ EFI_STATUS Status;
+ INTN Result;
+
+ Result = UnixIo->UnixThunk->GetIfAddrs( &IfAddrs );
+ if ( Result != 0 )
+ {
+ return( EFI_UNSUPPORTED );
+ }
+
+ //
+ // Convert the interface name to ASCII so we can find it.
+ //
+ Private->InterfaceName = AllocateZeroPool( StrLen( UnixIo->EnvString ) );
+
+ if ( !Private->InterfaceName )
+ {
+ Status = EFI_OUT_OF_RESOURCES;
+ goto Exit;
+ }
+
+ UnicodeStrToAsciiStr( UnixIo->EnvString, Private->InterfaceName );
+
+ 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 ) )
+ {
+ CopyMem( &Private->MacAddress, LLADDR( IfSdl ), NET_ETHER_ADDR_LEN );
+
+ Status = EFI_SUCCESS;
+ break;
+ }
+ }
+
+ If = If->ifa_next;
+ }
Exit:
- ( VOID ) UnixIo->UnixThunk->FreeIfAddrs( IfAddrs );
+ ( VOID ) UnixIo->UnixThunk->FreeIfAddrs( IfAddrs );
- return( Status );
+ return( Status );
}
STATIC EFI_STATUS
OpenBpfFileDescriptor(
- IN UNIX_SNP_PRIVATE_DATA* Private,
- OUT INTN* Fd
- )
+ IN UNIX_SNP_PRIVATE_DATA* Private,
+ OUT INTN* Fd
+ )
{
- CHAR8 BfpDeviceName[ 256 ];
- INTN Index;
- EFI_STATUS Status = EFI_OUT_OF_RESOURCES;
- INTN Result;
-
- //
- // Open a Berkeley Packet Filter device. This must be done as root, so this is probably
- // the place which is most likely to fail...
- //
- for ( Index = 0; TRUE; Index++ )
- {
- AsciiSPrint( BfpDeviceName, sizeof( BfpDeviceName ), "/dev/bpf%d", Index );
-
- *Fd = Private->UnixThunk->Open( BfpDeviceName, O_RDWR, 0 );
-
- if ( *Fd >= 0 )
- {
- Status = EFI_SUCCESS;
- break;
- }
-
- Result = Private->UnixThunk->GetErrno();
+ CHAR8 BfpDeviceName[ 256 ];
+ INTN Index;
+ EFI_STATUS Status = EFI_OUT_OF_RESOURCES;
+ INTN Result;
+
+ //
+ // Open a Berkeley Packet Filter device. This must be done as root, so this is probably
+ // the place which is most likely to fail...
+ //
+ for ( Index = 0; TRUE; Index++ )
+ {
+ AsciiSPrint( BfpDeviceName, sizeof( BfpDeviceName ), "/dev/bpf%d", Index );
+
+ *Fd = Private->UnixThunk->Open( BfpDeviceName, O_RDWR, 0 );
+
+ if ( *Fd >= 0 )
+ {
+ Status = EFI_SUCCESS;
+ break;
+ }
+
+ Result = Private->UnixThunk->GetErrno();
if ( Result == EACCES )
{
DEBUG( ( EFI_D_ERROR, "Permissions on '%a' are incorrect. Fix with 'sudo chmod 666 %a'.\n",
BfpDeviceName, BfpDeviceName ) );
}
- if ( Result != EBUSY )
- {
- break;
- }
- }
+ if ( Result != EBUSY )
+ {
+ break;
+ }
+ }
- return( Status );
+ return( Status );
}
@@ -568,51 +568,51 @@ OpenBpfFileDescriptor(
EFI_STATUS
EFIAPI
UnixSnpDriverBindingSupported(
- IN EFI_DRIVER_BINDING_PROTOCOL* This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_DEVICE_PATH_PROTOCOL* RemainingDevicePath OPTIONAL
- )
+ IN EFI_DRIVER_BINDING_PROTOCOL* This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_DEVICE_PATH_PROTOCOL* RemainingDevicePath OPTIONAL
+ )
{
- EFI_STATUS Status;
- EFI_UNIX_IO_PROTOCOL* UnixIo;
-
- //
- // Open the I/O abstraction needed to perform the supported test.
- //
- Status = gBS->OpenProtocol(
- ControllerHandle,
- &gEfiUnixIoProtocolGuid,
- ( VOID ** ) &UnixIo,
- This->DriverBindingHandle,
- ControllerHandle,
- EFI_OPEN_PROTOCOL_BY_DRIVER
- );
-
- if ( EFI_ERROR( Status ) )
- {
- return( Status );
- }
-
- //
- // Validate GUID
- //
- Status = EFI_UNSUPPORTED;
- if ( CompareGuid( UnixIo->TypeGuid, &gEfiUnixNetworkGuid ) )
- {
- Status = EFI_SUCCESS;
- }
-
- //
- // Close the I/O abstraction used to perform the supported test.
- //
- gBS->CloseProtocol(
- ControllerHandle,
- &gEfiUnixIoProtocolGuid,
- This->DriverBindingHandle,
- ControllerHandle
- );
-
- return( Status );
+ EFI_STATUS Status;
+ EFI_UNIX_IO_PROTOCOL* UnixIo;
+
+ //
+ // Open the I/O abstraction needed to perform the supported test.
+ //
+ Status = gBS->OpenProtocol(
+ ControllerHandle,
+ &gEfiUnixIoProtocolGuid,
+ ( VOID ** ) &UnixIo,
+ This->DriverBindingHandle,
+ ControllerHandle,
+ EFI_OPEN_PROTOCOL_BY_DRIVER
+ );
+
+ if ( EFI_ERROR( Status ) )
+ {
+ return( Status );
+ }
+
+ //
+ // Validate GUID
+ //
+ Status = EFI_UNSUPPORTED;
+ if ( CompareGuid( UnixIo->TypeGuid, &gEfiUnixNetworkGuid ) )
+ {
+ Status = EFI_SUCCESS;
+ }
+
+ //
+ // Close the I/O abstraction used to perform the supported test.
+ //
+ gBS->CloseProtocol(
+ ControllerHandle,
+ &gEfiUnixIoProtocolGuid,
+ This->DriverBindingHandle,
+ ControllerHandle
+ );
+
+ return( Status );
}
@@ -635,175 +635,175 @@ UnixSnpDriverBindingSupported(
EFI_STATUS
EFIAPI
UnixSnpDriverBindingStart(
- IN EFI_DRIVER_BINDING_PROTOCOL* This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_DEVICE_PATH_PROTOCOL* RemainingDevicePath OPTIONAL
- )
+ IN EFI_DRIVER_BINDING_PROTOCOL* This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_DEVICE_PATH_PROTOCOL* RemainingDevicePath OPTIONAL
+ )
{
- MAC_ADDR_DEVICE_PATH Node;
- EFI_DEVICE_PATH_PROTOCOL* ParentDevicePath = NULL;
- EFI_UNIX_IO_PROTOCOL* UnixIo;
- UNIX_SNP_PRIVATE_DATA* Private = NULL;
- EFI_STATUS Status;
- BOOLEAN CreateDevice;
-
- //
- // Grab the protocols we need.
- //
- Status = gBS->OpenProtocol(
- ControllerHandle,
- &gEfiDevicePathProtocolGuid,
- ( VOID ** ) &ParentDevicePath,
- This->DriverBindingHandle,
- ControllerHandle,
- EFI_OPEN_PROTOCOL_BY_DRIVER
- );
- if ( EFI_ERROR( Status ) )
- {
- goto ErrorExit;
- }
-
- //
- // Open the I/O abstraction needed to perform the supported test.
- //
- Status = gBS->OpenProtocol(
- ControllerHandle,
- &gEfiUnixIoProtocolGuid,
- ( VOID ** ) &UnixIo,
- This->DriverBindingHandle,
- ControllerHandle,
- EFI_OPEN_PROTOCOL_BY_DRIVER
- );
- if ( EFI_ERROR( Status ) )
- {
- goto ErrorExit;
- }
-
- //
- // Validate GUID
- //
- if ( !CompareGuid( UnixIo->TypeGuid, &gEfiUnixNetworkGuid ) )
- {
- Status = EFI_UNSUPPORTED;
- goto ErrorExit;
- }
-
- CreateDevice = TRUE;
- if ( ( RemainingDevicePath != NULL ) && IsDevicePathEnd( RemainingDevicePath ) )
- {
- CreateDevice = FALSE;
- }
-
- if ( CreateDevice )
- {
- //
- // Allocate the private data.
- //
- Private = AllocateCopyPool( sizeof( UNIX_SNP_PRIVATE_DATA ), &gUnixSnpPrivateTemplate );
- if ( Private == NULL )
- {
- Status = EFI_OUT_OF_RESOURCES;
- goto ErrorExit;
- }
-
- Status = GetInterfaceMacAddr( Private, UnixIo );
- if ( EFI_ERROR( Status ) )
- {
- goto ErrorExit;
- }
-
- Private->UnixThunk = UnixIo->UnixThunk;
-
- Private->Snp.Mode = &Private->Mode;
-
- //
- // Set the broadcast address.
- //
- SetMem( &Private->Mode.BroadcastAddress, sizeof( EFI_MAC_ADDRESS ), 0xFF );
-
- CopyMem( &Private->Mode.CurrentAddress, &Private->MacAddress, sizeof( EFI_MAC_ADDRESS ) );
- CopyMem( &Private->Mode.PermanentAddress, &Private->MacAddress, sizeof( EFI_MAC_ADDRESS ) );
-
- //
- // Since the fake SNP is based on a real NIC, to avoid conflict with the host NIC
- // network stack, we use a different MAC address.
- // So just change the last byte of the MAC address for the real NIC.
- //
- Private->Mode.CurrentAddress.Addr[ NET_ETHER_ADDR_LEN - 1 ]++;
-
- //
- // Build the device path by appending the MAC node to the ParentDevicePath
- // from the UnixIo handle.
- //
- ZeroMem( &Node, sizeof( MAC_ADDR_DEVICE_PATH ) );
-
- Node.Header.Type = MESSAGING_DEVICE_PATH;
- Node.Header.SubType = MSG_MAC_ADDR_DP;
- Node.IfType = Private->Mode.IfType;
-
- SetDevicePathNodeLength( ( EFI_DEVICE_PATH_PROTOCOL * ) &Node, sizeof( MAC_ADDR_DEVICE_PATH ) );
-
- CopyMem( &Node.MacAddress, &Private->Mode.CurrentAddress, sizeof( EFI_MAC_ADDRESS ) );
-
- //
- // Build the device path by appending the MAC node to the ParentDevicePath from the UnixIo handle.
- //
- Private->DevicePath = AppendDevicePathNode( ParentDevicePath, ( EFI_DEVICE_PATH_PROTOCOL * ) &Node );
- if ( Private->DevicePath == NULL )
- {
- Status = EFI_OUT_OF_RESOURCES;
- goto ErrorExit;
- }
-
- Status = gBS->InstallMultipleProtocolInterfaces(
- &Private->DeviceHandle,
- &gEfiSimpleNetworkProtocolGuid,
- &Private->Snp,
- &gEfiDevicePathProtocolGuid,
- Private->DevicePath,
- NULL
- );
- if ( EFI_ERROR( Status ) )
- {
- goto ErrorExit;
- }
-
- Status = gBS->OpenProtocol(
- ControllerHandle,
- &gEfiUnixIoProtocolGuid,
- ( VOID ** ) &UnixIo,
- This->DriverBindingHandle,
- Private->DeviceHandle,
- EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER
- );
- if ( EFI_ERROR( Status ) )
- {
- goto ErrorExit;
- }
- }
- return( Status );
+ MAC_ADDR_DEVICE_PATH Node;
+ EFI_DEVICE_PATH_PROTOCOL* ParentDevicePath = NULL;
+ EFI_UNIX_IO_PROTOCOL* UnixIo;
+ UNIX_SNP_PRIVATE_DATA* Private = NULL;
+ EFI_STATUS Status;
+ BOOLEAN CreateDevice;
+
+ //
+ // Grab the protocols we need.
+ //
+ Status = gBS->OpenProtocol(
+ ControllerHandle,
+ &gEfiDevicePathProtocolGuid,
+ ( VOID ** ) &ParentDevicePath,
+ This->DriverBindingHandle,
+ ControllerHandle,
+ EFI_OPEN_PROTOCOL_BY_DRIVER
+ );
+ if ( EFI_ERROR( Status ) )
+ {
+ goto ErrorExit;
+ }
+
+ //
+ // Open the I/O abstraction needed to perform the supported test.
+ //
+ Status = gBS->OpenProtocol(
+ ControllerHandle,
+ &gEfiUnixIoProtocolGuid,
+ ( VOID ** ) &UnixIo,
+ This->DriverBindingHandle,
+ ControllerHandle,
+ EFI_OPEN_PROTOCOL_BY_DRIVER
+ );
+ if ( EFI_ERROR( Status ) )
+ {
+ goto ErrorExit;
+ }
+
+ //
+ // Validate GUID
+ //
+ if ( !CompareGuid( UnixIo->TypeGuid, &gEfiUnixNetworkGuid ) )
+ {
+ Status = EFI_UNSUPPORTED;
+ goto ErrorExit;
+ }
+
+ CreateDevice = TRUE;
+ if ( ( RemainingDevicePath != NULL ) && IsDevicePathEnd( RemainingDevicePath ) )
+ {
+ CreateDevice = FALSE;
+ }
+
+ if ( CreateDevice )
+ {
+ //
+ // Allocate the private data.
+ //
+ Private = AllocateCopyPool( sizeof( UNIX_SNP_PRIVATE_DATA ), &gUnixSnpPrivateTemplate );
+ if ( Private == NULL )
+ {
+ Status = EFI_OUT_OF_RESOURCES;
+ goto ErrorExit;
+ }
+
+ Status = GetInterfaceMacAddr( Private, UnixIo );
+ if ( EFI_ERROR( Status ) )
+ {
+ goto ErrorExit;
+ }
+
+ Private->UnixThunk = UnixIo->UnixThunk;
+
+ Private->Snp.Mode = &Private->Mode;
+
+ //
+ // Set the broadcast address.
+ //
+ SetMem( &Private->Mode.BroadcastAddress, sizeof( EFI_MAC_ADDRESS ), 0xFF );
+
+ CopyMem( &Private->Mode.CurrentAddress, &Private->MacAddress, sizeof( EFI_MAC_ADDRESS ) );
+ CopyMem( &Private->Mode.PermanentAddress, &Private->MacAddress, sizeof( EFI_MAC_ADDRESS ) );
+
+ //
+ // Since the fake SNP is based on a real NIC, to avoid conflict with the host NIC
+ // network stack, we use a different MAC address.
+ // So just change the last byte of the MAC address for the real NIC.
+ //
+ Private->Mode.CurrentAddress.Addr[ NET_ETHER_ADDR_LEN - 1 ]++;
+
+ //
+ // Build the device path by appending the MAC node to the ParentDevicePath
+ // from the UnixIo handle.
+ //
+ ZeroMem( &Node, sizeof( MAC_ADDR_DEVICE_PATH ) );
+
+ Node.Header.Type = MESSAGING_DEVICE_PATH;
+ Node.Header.SubType = MSG_MAC_ADDR_DP;
+ Node.IfType = Private->Mode.IfType;
+
+ SetDevicePathNodeLength( ( EFI_DEVICE_PATH_PROTOCOL * ) &Node, sizeof( MAC_ADDR_DEVICE_PATH ) );
+
+ CopyMem( &Node.MacAddress, &Private->Mode.CurrentAddress, sizeof( EFI_MAC_ADDRESS ) );
+
+ //
+ // Build the device path by appending the MAC node to the ParentDevicePath from the UnixIo handle.
+ //
+ Private->DevicePath = AppendDevicePathNode( ParentDevicePath, ( EFI_DEVICE_PATH_PROTOCOL * ) &Node );
+ if ( Private->DevicePath == NULL )
+ {
+ Status = EFI_OUT_OF_RESOURCES;
+ goto ErrorExit;
+ }
+
+ Status = gBS->InstallMultipleProtocolInterfaces(
+ &Private->DeviceHandle,
+ &gEfiSimpleNetworkProtocolGuid,
+ &Private->Snp,
+ &gEfiDevicePathProtocolGuid,
+ Private->DevicePath,
+ NULL
+ );
+ if ( EFI_ERROR( Status ) )
+ {
+ goto ErrorExit;
+ }
+
+ Status = gBS->OpenProtocol(
+ ControllerHandle,
+ &gEfiUnixIoProtocolGuid,
+ ( VOID ** ) &UnixIo,
+ This->DriverBindingHandle,
+ Private->DeviceHandle,
+ EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER
+ );
+ if ( EFI_ERROR( Status ) )
+ {
+ goto ErrorExit;
+ }
+ }
+ return( Status );
ErrorExit:
- if ( Private->InterfaceName != NULL )
- {
- FreePool( Private->InterfaceName );
- Private->InterfaceName = NULL;
- }
- if ( Private != NULL )
- {
- FreePool( Private );
- }
- if ( ParentDevicePath != NULL )
- {
- gBS->CloseProtocol(
- ControllerHandle,
- &gEfiDevicePathProtocolGuid,
- This->DriverBindingHandle,
- ControllerHandle
- );
- }
-
- return( Status );
+ if ( Private->InterfaceName != NULL )
+ {
+ FreePool( Private->InterfaceName );
+ Private->InterfaceName = NULL;
+ }
+ if ( Private != NULL )
+ {
+ FreePool( Private );
+ }
+ if ( ParentDevicePath != NULL )
+ {
+ gBS->CloseProtocol(
+ ControllerHandle,
+ &gEfiDevicePathProtocolGuid,
+ This->DriverBindingHandle,
+ ControllerHandle
+ );
+ }
+
+ return( Status );
}
/**
@@ -826,55 +826,55 @@ ErrorExit:
EFI_STATUS
EFIAPI
UnixSnpDriverBindingStop(
- IN EFI_DRIVER_BINDING_PROTOCOL* This,
- IN EFI_HANDLE ControllerHandle,
- IN UINTN NumberOfChildren,
- IN EFI_HANDLE* ChildHandleBuffer
- )
+ IN EFI_DRIVER_BINDING_PROTOCOL* This,
+ IN EFI_HANDLE ControllerHandle,
+ IN UINTN NumberOfChildren,
+ IN EFI_HANDLE* ChildHandleBuffer
+ )
{
- UNIX_SNP_PRIVATE_DATA* Private = NULL;
- EFI_SIMPLE_NETWORK_PROTOCOL* Snp;
- EFI_STATUS Status;
-
- //
- // Get our context back.
- //
- Status = gBS->OpenProtocol(
- ControllerHandle,
- &gEfiSimpleNetworkProtocolGuid,
- ( VOID ** ) &Snp,
- This->DriverBindingHandle,
- ControllerHandle,
- EFI_OPEN_PROTOCOL_GET_PROTOCOL
- );
- if ( EFI_ERROR( Status ) )
- {
- return( EFI_UNSUPPORTED );
- }
-
- Private = UNIX_SNP_PRIVATE_DATA_FROM_SNP_THIS( Snp );
-
- Status = gBS->CloseProtocol(
- ControllerHandle,
- &gEfiUnixIoProtocolGuid,
- This->DriverBindingHandle,
- Private->DeviceHandle
- );
-
- Status = gBS->UninstallMultipleProtocolInterfaces(
- Private->DeviceHandle,
- &gEfiSimpleNetworkProtocolGuid,
- &Private->Snp,
- &gEfiDevicePathProtocolGuid,
- Private->DevicePath,
- NULL
- );
-
- FreePool( Private->InterfaceName );
- FreePool( Private->DevicePath );
- FreePool( Private );
-
- return( EFI_SUCCESS );
+ UNIX_SNP_PRIVATE_DATA* Private = NULL;
+ EFI_SIMPLE_NETWORK_PROTOCOL* Snp;
+ EFI_STATUS Status;
+
+ //
+ // Get our context back.
+ //
+ Status = gBS->OpenProtocol(
+ ControllerHandle,
+ &gEfiSimpleNetworkProtocolGuid,
+ ( VOID ** ) &Snp,
+ This->DriverBindingHandle,
+ ControllerHandle,
+ EFI_OPEN_PROTOCOL_GET_PROTOCOL
+ );
+ if ( EFI_ERROR( Status ) )
+ {
+ return( EFI_UNSUPPORTED );
+ }
+
+ Private = UNIX_SNP_PRIVATE_DATA_FROM_SNP_THIS( Snp );
+
+ Status = gBS->CloseProtocol(
+ ControllerHandle,
+ &gEfiUnixIoProtocolGuid,
+ This->DriverBindingHandle,
+ Private->DeviceHandle
+ );
+
+ Status = gBS->UninstallMultipleProtocolInterfaces(
+ Private->DeviceHandle,
+ &gEfiSimpleNetworkProtocolGuid,
+ &Private->Snp,
+ &gEfiDevicePathProtocolGuid,
+ Private->DevicePath,
+ NULL
+ );
+
+ FreePool( Private->InterfaceName );
+ FreePool( Private->DevicePath );
+ FreePool( Private );
+
+ return( EFI_SUCCESS );
}
@@ -889,210 +889,210 @@ UnixSnpDriverBindingStop(
EFI_STATUS
EFIAPI
UnixSnpStart(
- IN EFI_SIMPLE_NETWORK_PROTOCOL* This
- )
+ IN EFI_SIMPLE_NETWORK_PROTOCOL* This
+ )
{
- STATIC struct bpf_insn FilterInstructionTemplate[] =
- {
- // Load 4 bytes from the destination MAC address.
- BPF_STMT( BPF_LD + BPF_W + BPF_ABS, OFFSET_OF( EthernetHeader, DstAddr[ 0 ] ) ),
-
- // Compare to first 4 bytes of fake MAC address.
- 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( EthernetHeader, DstAddr[ 4 ] ) ),
-
- // Compare to remaining 2 bytes of fake MAC address.
- 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( EthernetHeader, DstAddr[ 0 ] ) ),
-
- // Compare to first 4 bytes of broadcast MAC address.
- 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( EthernetHeader, DstAddr[ 4 ] ) ),
-
- // Compare to remaining 2 bytes of broadcast MAC address.
- BPF_JUMP( BPF_JMP + BPF_JEQ + BPF_K, 0xFFFF, 1, 0 ),
-
- // Reject packet.
- BPF_STMT( BPF_RET + BPF_K, 0 ),
-
- // Receive entire packet.
- BPF_STMT( BPF_RET + BPF_K, -1 )
- };
- struct ifreq BoundIf;
- struct bpf_program BpfProgram;
- struct bpf_insn* FilterProgram;
- UNIX_SNP_PRIVATE_DATA* Private;
- EFI_STATUS Status;
- UINT32 Temp32;
- INTN Fd;
- INTN Result;
- INTN Value;
- UINT16 Temp16;
-
- Private = UNIX_SNP_PRIVATE_DATA_FROM_SNP_THIS( This );
-
- switch ( Private->Snp.Mode->State )
- {
- case EfiSimpleNetworkStopped:
- break;
-
- case EfiSimpleNetworkStarted:
- case EfiSimpleNetworkInitialized:
- return( EFI_ALREADY_STARTED );
- break;
-
- default:
- return( EFI_DEVICE_ERROR );
- break;
- }
-
- if ( Private->BpfFd == 0 )
- {
- Status = OpenBpfFileDescriptor( Private, &Fd );
-
- if ( EFI_ERROR( Status ) )
- {
- goto ErrorExit;
- }
-
- Private->BpfFd = Fd;
-
- //
- // Associate our interface with this BPF file descriptor.
- //
- AsciiStrCpy( BoundIf.ifr_name, Private->InterfaceName );
- Result = Private->UnixThunk->IoCtl( Private->BpfFd, BIOCSETIF, &BoundIf );
-
- if ( Result < 0 )
- {
- goto DeviceErrorExit;
- }
-
- //
- // Enable immediate mode and find out the buffer size.
- //
- Value = 1;
- Result = Private->UnixThunk->IoCtl( Private->BpfFd, BIOCIMMEDIATE, &Value );
-
- if ( Result < 0 )
- {
- goto DeviceErrorExit;
- }
-
- //
- // Enable non-blocking I/O.
- //
-
- Value = Private->UnixThunk->Fcntl( Private->BpfFd, F_GETFL, 0 );
-
- if ( Value == -1 )
- {
- goto DeviceErrorExit;
- }
-
- Value |= O_NONBLOCK;
-
- Result = Private->UnixThunk->Fcntl( Private->BpfFd, F_SETFL, (void *) Value );
-
- if ( Result == -1 )
- {
- goto DeviceErrorExit;
- }
-
- //
- // Disable "header complete" flag. This means the supplied source MAC address is
- // what goes on the wire.
- //
- Value = 1;
- Result = Private->UnixThunk->IoCtl( Private->BpfFd, BIOCSHDRCMPLT, &Value );
-
- if ( Result < 0 )
- {
- goto DeviceErrorExit;
- }
-
- Result = Private->UnixThunk->IoCtl( Private->BpfFd, BIOCGBLEN, &Value );
-
- if ( Result < 0 )
- {
- goto DeviceErrorExit;
- }
-
- //
- // Allocate read buffer.
- //
- Private->ReadBufferSize = Value;
- Private->ReadBuffer = AllocateZeroPool( Private->ReadBufferSize );
- if ( Private->ReadBuffer == NULL )
- {
- Status = EFI_OUT_OF_RESOURCES;
- goto ErrorExit;
- }
-
- Private->CurrentReadPointer = Private->EndReadPointer = Private->ReadBuffer;
-
- //
- // Install our packet filter: successful reads should only produce broadcast or unitcast
- // packets directed to our fake MAC address.
- //
- FilterProgram = AllocateCopyPool( sizeof( FilterInstructionTemplate ), &FilterInstructionTemplate );
- if ( FilterProgram == NULL )
- {
- goto ErrorExit;
- }
-
- //
- // Insert out fake MAC address into the filter. The data has to be host endian.
- //
- CopyMem( &Temp32, &Private->Mode.CurrentAddress.Addr[ 0 ], sizeof( UINT32 ) );
- FilterProgram[ 1 ].k = NTOHL( Temp32 );
- CopyMem( &Temp16, &Private->Mode.CurrentAddress.Addr[ 4 ], sizeof( UINT16 ) );
- FilterProgram[ 3 ].k = NTOHS( Temp16 );
-
- BpfProgram.bf_len = sizeof( FilterInstructionTemplate ) / sizeof( struct bpf_insn );
- BpfProgram.bf_insns = FilterProgram;
-
- Result = Private->UnixThunk->IoCtl( Private->BpfFd, BIOCSETF, &BpfProgram );
-
- if ( Result < 0 )
- {
- goto DeviceErrorExit;
- }
-
- FreePool( FilterProgram );
-
- //
- // Enable promiscuous mode.
- //
-
- Result = Private->UnixThunk->IoCtl( Private->BpfFd, BIOCPROMISC, 0 );
-
- if ( Result < 0 )
- {
- goto DeviceErrorExit;
- }
+ STATIC struct bpf_insn FilterInstructionTemplate[] =
+ {
+ // Load 4 bytes from the destination MAC address.
+ BPF_STMT( BPF_LD + BPF_W + BPF_ABS, OFFSET_OF( EthernetHeader, DstAddr[ 0 ] ) ),
+
+ // Compare to first 4 bytes of fake MAC address.
+ 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( EthernetHeader, DstAddr[ 4 ] ) ),
+
+ // Compare to remaining 2 bytes of fake MAC address.
+ 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( EthernetHeader, DstAddr[ 0 ] ) ),
+
+ // Compare to first 4 bytes of broadcast MAC address.
+ 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( EthernetHeader, DstAddr[ 4 ] ) ),
+
+ // Compare to remaining 2 bytes of broadcast MAC address.
+ BPF_JUMP( BPF_JMP + BPF_JEQ + BPF_K, 0xFFFF, 1, 0 ),
+
+ // Reject packet.
+ BPF_STMT( BPF_RET + BPF_K, 0 ),
+
+ // Receive entire packet.
+ BPF_STMT( BPF_RET + BPF_K, -1 )
+ };
+ struct ifreq BoundIf;
+ struct bpf_program BpfProgram;
+ struct bpf_insn* FilterProgram;
+ UNIX_SNP_PRIVATE_DATA* Private;
+ EFI_STATUS Status;
+ UINT32 Temp32;
+ INTN Fd;
+ INTN Result;
+ INTN Value;
+ UINT16 Temp16;
+
+ Private = UNIX_SNP_PRIVATE_DATA_FROM_SNP_THIS( This );
+
+ switch ( Private->Snp.Mode->State )
+ {
+ case EfiSimpleNetworkStopped:
+ break;
+
+ case EfiSimpleNetworkStarted:
+ case EfiSimpleNetworkInitialized:
+ return( EFI_ALREADY_STARTED );
+ break;
+
+ default:
+ return( EFI_DEVICE_ERROR );
+ break;
+ }
+
+ if ( Private->BpfFd == 0 )
+ {
+ Status = OpenBpfFileDescriptor( Private, &Fd );
+
+ if ( EFI_ERROR( Status ) )
+ {
+ goto ErrorExit;
+ }
+
+ Private->BpfFd = Fd;
+
+ //
+ // Associate our interface with this BPF file descriptor.
+ //
+ AsciiStrCpy( BoundIf.ifr_name, Private->InterfaceName );
+ Result = Private->UnixThunk->IoCtl( Private->BpfFd, BIOCSETIF, &BoundIf );
+
+ if ( Result < 0 )
+ {
+ goto DeviceErrorExit;
+ }
+
+ //
+ // Enable immediate mode and find out the buffer size.
+ //
+ Value = 1;
+ Result = Private->UnixThunk->IoCtl( Private->BpfFd, BIOCIMMEDIATE, &Value );
+
+ if ( Result < 0 )
+ {
+ goto DeviceErrorExit;
+ }
+
+ //
+ // Enable non-blocking I/O.
+ //
+
+ Value = Private->UnixThunk->Fcntl( Private->BpfFd, F_GETFL, 0 );
+
+ if ( Value == -1 )
+ {
+ goto DeviceErrorExit;
+ }
+
+ Value |= O_NONBLOCK;
+
+ Result = Private->UnixThunk->Fcntl( Private->BpfFd, F_SETFL, (void *) Value );
+
+ if ( Result == -1 )
+ {
+ goto DeviceErrorExit;
+ }
+
+ //
+ // Disable "header complete" flag. This means the supplied source MAC address is
+ // what goes on the wire.
+ //
+ Value = 1;
+ Result = Private->UnixThunk->IoCtl( Private->BpfFd, BIOCSHDRCMPLT, &Value );
+
+ if ( Result < 0 )
+ {
+ goto DeviceErrorExit;
+ }
+
+ Result = Private->UnixThunk->IoCtl( Private->BpfFd, BIOCGBLEN, &Value );
+
+ if ( Result < 0 )
+ {
+ goto DeviceErrorExit;
+ }
+
+ //
+ // Allocate read buffer.
+ //
+ Private->ReadBufferSize = Value;
+ Private->ReadBuffer = AllocateZeroPool( Private->ReadBufferSize );
+ if ( Private->ReadBuffer == NULL )
+ {
+ Status = EFI_OUT_OF_RESOURCES;
+ goto ErrorExit;
+ }
+
+ Private->CurrentReadPointer = Private->EndReadPointer = Private->ReadBuffer;
+
+ //
+ // Install our packet filter: successful reads should only produce broadcast or unitcast
+ // packets directed to our fake MAC address.
+ //
+ FilterProgram = AllocateCopyPool( sizeof( FilterInstructionTemplate ), &FilterInstructionTemplate );
+ if ( FilterProgram == NULL )
+ {
+ goto ErrorExit;
+ }
+
+ //
+ // Insert out fake MAC address into the filter. The data has to be host endian.
+ //
+ CopyMem( &Temp32, &Private->Mode.CurrentAddress.Addr[ 0 ], sizeof( UINT32 ) );
+ FilterProgram[ 1 ].k = NTOHL( Temp32 );
+ CopyMem( &Temp16, &Private->Mode.CurrentAddress.Addr[ 4 ], sizeof( UINT16 ) );
+ FilterProgram[ 3 ].k = NTOHS( Temp16 );
+
+ BpfProgram.bf_len = sizeof( FilterInstructionTemplate ) / sizeof( struct bpf_insn );
+ BpfProgram.bf_insns = FilterProgram;
+
+ Result = Private->UnixThunk->IoCtl( Private->BpfFd, BIOCSETF, &BpfProgram );
+
+ if ( Result < 0 )
+ {
+ goto DeviceErrorExit;
+ }
+
+ FreePool( FilterProgram );
+
+ //
+ // Enable promiscuous mode.
+ //
+
+ Result = Private->UnixThunk->IoCtl( Private->BpfFd, BIOCPROMISC, 0 );
+
+ if ( Result < 0 )
+ {
+ goto DeviceErrorExit;
+ }
- Private->Snp.Mode->State = EfiSimpleNetworkStarted;
- }
+ Private->Snp.Mode->State = EfiSimpleNetworkStarted;
+ }
- return( Status );
+ return( Status );
DeviceErrorExit:
- Status = EFI_DEVICE_ERROR;
+ Status = EFI_DEVICE_ERROR;
ErrorExit:
- if ( Private->ReadBuffer != NULL )
- {
- FreePool( Private->ReadBuffer );
- Private->ReadBuffer = NULL;
- }
- return( Status );
+ if ( Private->ReadBuffer != NULL )
+ {
+ FreePool( Private->ReadBuffer );
+ Private->ReadBuffer = NULL;
+ }
+ return( Status );
}
@@ -1107,43 +1107,43 @@ ErrorExit:
EFI_STATUS
EFIAPI
UnixSnpStop(
- IN EFI_SIMPLE_NETWORK_PROTOCOL* This
- )
+ IN EFI_SIMPLE_NETWORK_PROTOCOL* This
+ )
{
- UNIX_SNP_PRIVATE_DATA* Private = EFI_SUCCESS;
- EFI_STATUS Status;
+ UNIX_SNP_PRIVATE_DATA* Private = EFI_SUCCESS;
+ EFI_STATUS Status;
- Private = UNIX_SNP_PRIVATE_DATA_FROM_SNP_THIS( This );
+ Private = UNIX_SNP_PRIVATE_DATA_FROM_SNP_THIS( This );
- switch ( Private->Snp.Mode->State )
- {
- case EfiSimpleNetworkStarted:
- break;
+ switch ( Private->Snp.Mode->State )
+ {
+ case EfiSimpleNetworkStarted:
+ break;
- case EfiSimpleNetworkStopped:
- return( EFI_NOT_STARTED );
- break;
+ case EfiSimpleNetworkStopped:
+ return( EFI_NOT_STARTED );
+ break;
- default:
- return( EFI_DEVICE_ERROR );
- break;
- }
+ default:
+ return( EFI_DEVICE_ERROR );
+ break;
+ }
- if ( Private->BpfFd != 0 )
- {
- Private->UnixThunk->Close( Private->BpfFd );
- Private->BpfFd = 0;
- }
+ if ( Private->BpfFd != 0 )
+ {
+ Private->UnixThunk->Close( Private->BpfFd );
+ Private->BpfFd = 0;
+ }
- if ( Private->ReadBuffer != NULL )
- {
- FreePool( Private->ReadBuffer );
- Private->CurrentReadPointer = Private->EndReadPointer = Private->ReadBuffer = NULL;
- }
+ if ( Private->ReadBuffer != NULL )
+ {
+ FreePool( Private->ReadBuffer );
+ Private->CurrentReadPointer = Private->EndReadPointer = Private->ReadBuffer = NULL;
+ }
- Private->Snp.Mode->State = EfiSimpleNetworkStopped;
+ Private->Snp.Mode->State = EfiSimpleNetworkStopped;
- return( Status );
+ return( Status );
}
@@ -1170,50 +1170,50 @@ UnixSnpStop(
EFI_STATUS
EFIAPI
UnixSnpInitialize(
- IN EFI_SIMPLE_NETWORK_PROTOCOL* This,
- IN UINTN ExtraRxBufferSize OPTIONAL,
- IN UINTN ExtraTxBufferSize OPTIONAL
- )
+ IN EFI_SIMPLE_NETWORK_PROTOCOL* This,
+ IN UINTN ExtraRxBufferSize OPTIONAL,
+ IN UINTN ExtraTxBufferSize OPTIONAL
+ )
{
- UNIX_SNP_PRIVATE_DATA* Private = EFI_SUCCESS;
- EFI_STATUS Status;
+ UNIX_SNP_PRIVATE_DATA* Private = EFI_SUCCESS;
+ EFI_STATUS Status;
- Private = UNIX_SNP_PRIVATE_DATA_FROM_SNP_THIS( This );
+ Private = UNIX_SNP_PRIVATE_DATA_FROM_SNP_THIS( This );
- switch ( Private->Snp.Mode->State )
- {
- case EfiSimpleNetworkStarted:
- break;
+ switch ( Private->Snp.Mode->State )
+ {
+ case EfiSimpleNetworkStarted:
+ break;
- case EfiSimpleNetworkStopped:
- return( EFI_NOT_STARTED );
- break;
+ case EfiSimpleNetworkStopped:
+ return( EFI_NOT_STARTED );
+ break;
- default:
- return( EFI_DEVICE_ERROR );
- break;
- }
+ default:
+ return( EFI_DEVICE_ERROR );
+ break;
+ }
#if 0
- Status = gBS->CreateEvent(
- EVT_NOTIFY_WAIT,
- TPL_NOTIFY,
- UnixSnpWaitForPacketNotify,
- Private,
- &Private->Snp.WaitForPacket
- );
+ Status = gBS->CreateEvent(
+ EVT_NOTIFY_WAIT,
+ TPL_NOTIFY,
+ UnixSnpWaitForPacketNotify,
+ Private,
+ &Private->Snp.WaitForPacket
+ );
#endif
- if ( !EFI_ERROR( Status ) )
- {
- Private->Mode.MCastFilterCount = 0;
- Private->Mode.ReceiveFilterSetting = 0;
- ZeroMem( Private->Mode.MCastFilter, sizeof( Private->Mode.MCastFilter ) );
+ if ( !EFI_ERROR( Status ) )
+ {
+ Private->Mode.MCastFilterCount = 0;
+ Private->Mode.ReceiveFilterSetting = 0;
+ ZeroMem( Private->Mode.MCastFilter, sizeof( Private->Mode.MCastFilter ) );
- Private->Snp.Mode->State = EfiSimpleNetworkInitialized;
- }
+ Private->Snp.Mode->State = EfiSimpleNetworkInitialized;
+ }
- return( Status );
+ return( Status );
}
/**
@@ -1231,30 +1231,30 @@ UnixSnpInitialize(
EFI_STATUS
EFIAPI
UnixSnpReset(
- IN EFI_SIMPLE_NETWORK_PROTOCOL* This,
- IN BOOLEAN ExtendedVerification
- )
+ IN EFI_SIMPLE_NETWORK_PROTOCOL* This,
+ IN BOOLEAN ExtendedVerification
+ )
{
- UNIX_SNP_PRIVATE_DATA* Private;
- EFI_STATUS Success = EFI_SUCCESS;
+ UNIX_SNP_PRIVATE_DATA* Private;
+ EFI_STATUS Success = EFI_SUCCESS;
- Private = UNIX_SNP_PRIVATE_DATA_FROM_SNP_THIS( This );
+ Private = UNIX_SNP_PRIVATE_DATA_FROM_SNP_THIS( This );
- switch ( Private->Snp.Mode->State )
- {
- case EfiSimpleNetworkInitialized:
- break;
+ switch ( Private->Snp.Mode->State )
+ {
+ case EfiSimpleNetworkInitialized:
+ break;
- case EfiSimpleNetworkStopped:
- return( EFI_NOT_STARTED );
- break;
+ case EfiSimpleNetworkStopped:
+ return( EFI_NOT_STARTED );
+ break;
- default:
- return( EFI_DEVICE_ERROR );
- break;
- }
+ default:
+ return( EFI_DEVICE_ERROR );
+ break;
+ }
- return( Success );
+ return( Success );
}
/**
@@ -1269,53 +1269,53 @@ UnixSnpReset(
EFI_STATUS
EFIAPI
UnixSnpShutdown(
- IN EFI_SIMPLE_NETWORK_PROTOCOL* This
- )
+ IN EFI_SIMPLE_NETWORK_PROTOCOL* This
+ )
{
- UNIX_SNP_PRIVATE_DATA* Private;
- EFI_STATUS Success = EFI_SUCCESS;
-
- Private = UNIX_SNP_PRIVATE_DATA_FROM_SNP_THIS( This );
-
- switch ( Private->Snp.Mode->State )
- {
- case EfiSimpleNetworkInitialized:
- break;
-
- case EfiSimpleNetworkStopped:
- return( EFI_NOT_STARTED );
- break;
-
- default:
- return( EFI_DEVICE_ERROR );
- break;
- }
-
- Private->Snp.Mode->State = EfiSimpleNetworkStarted;
-
- Private->Mode.ReceiveFilterSetting = 0;
- Private->Mode.MCastFilterCount = 0;
- ZeroMem( Private->Mode.MCastFilter, sizeof( Private->Mode.MCastFilter ) );
-
- if ( Private->Snp.WaitForPacket != NULL )
- {
- gBS->CloseEvent( Private->Snp.WaitForPacket );
- Private->Snp.WaitForPacket = NULL;
- }
-
- if ( Private->BpfFd != 0 )
- {
- Private->UnixThunk->Close( Private->BpfFd );
- Private->BpfFd = 0;
- }
-
- if ( Private->ReadBuffer != NULL )
- {
- FreePool( Private->ReadBuffer );
- Private->CurrentReadPointer = Private->EndReadPointer = Private->ReadBuffer = NULL;
- }
-
- return( Success );
+ UNIX_SNP_PRIVATE_DATA* Private;
+ EFI_STATUS Success = EFI_SUCCESS;
+
+ Private = UNIX_SNP_PRIVATE_DATA_FROM_SNP_THIS( This );
+
+ switch ( Private->Snp.Mode->State )
+ {
+ case EfiSimpleNetworkInitialized:
+ break;
+
+ case EfiSimpleNetworkStopped:
+ return( EFI_NOT_STARTED );
+ break;
+
+ default:
+ return( EFI_DEVICE_ERROR );
+ break;
+ }
+
+ Private->Snp.Mode->State = EfiSimpleNetworkStarted;
+
+ Private->Mode.ReceiveFilterSetting = 0;
+ Private->Mode.MCastFilterCount = 0;
+ ZeroMem( Private->Mode.MCastFilter, sizeof( Private->Mode.MCastFilter ) );
+
+ if ( Private->Snp.WaitForPacket != NULL )
+ {
+ gBS->CloseEvent( Private->Snp.WaitForPacket );
+ Private->Snp.WaitForPacket = NULL;
+ }
+
+ if ( Private->BpfFd != 0 )
+ {
+ Private->UnixThunk->Close( Private->BpfFd );
+ Private->BpfFd = 0;
+ }
+
+ if ( Private->ReadBuffer != NULL )
+ {
+ FreePool( Private->ReadBuffer );
+ Private->CurrentReadPointer = Private->EndReadPointer = Private->ReadBuffer = NULL;
+ }
+
+ return( Success );
}
/**
@@ -1342,17 +1342,17 @@ UnixSnpShutdown(
EFI_STATUS
EFIAPI
UnixSnpReceiveFilters(
- IN EFI_SIMPLE_NETWORK_PROTOCOL* This,
- IN UINT32 EnableBits,
- IN UINT32 DisableBits,
- IN BOOLEAN ResetMcastFilter,
- IN UINTN McastFilterCount OPTIONAL,
- IN EFI_MAC_ADDRESS* McastFilter OPTIONAL
- )
+ IN EFI_SIMPLE_NETWORK_PROTOCOL* This,
+ IN UINT32 EnableBits,
+ IN UINT32 DisableBits,
+ IN BOOLEAN ResetMcastFilter,
+ IN UINTN McastFilterCount OPTIONAL,
+ IN EFI_MAC_ADDRESS* McastFilter OPTIONAL
+ )
{
- UNIX_SNP_PRIVATE_DATA* Private;
+ UNIX_SNP_PRIVATE_DATA* Private;
- Private = UNIX_SNP_PRIVATE_DATA_FROM_SNP_THIS( This );
+ Private = UNIX_SNP_PRIVATE_DATA_FROM_SNP_THIS( This );
// ReturnValue = GlobalData->NtNetUtilityTable.SetReceiveFilter (
// Instance->InterfaceInfo.InterfaceIndex,
@@ -1361,8 +1361,8 @@ UnixSnpReceiveFilters(
// McastFilter
// );
- // For now, just succeed...
- return( EFI_SUCCESS );
+ // For now, just succeed...
+ return( EFI_SUCCESS );
}
/**
@@ -1379,12 +1379,12 @@ UnixSnpReceiveFilters(
EFI_STATUS
EFIAPI
UnixSnpStationAddress(
- IN EFI_SIMPLE_NETWORK_PROTOCOL* This,
- IN BOOLEAN Reset,
- IN EFI_MAC_ADDRESS* NewMacAddr OPTIONAL
- )
+ IN EFI_SIMPLE_NETWORK_PROTOCOL* This,
+ IN BOOLEAN Reset,
+ IN EFI_MAC_ADDRESS* NewMacAddr OPTIONAL
+ )
{
- return( EFI_UNSUPPORTED );
+ return( EFI_UNSUPPORTED );
}
/**
@@ -1409,13 +1409,13 @@ UnixSnpStationAddress(
EFI_STATUS
EFIAPI
UnixSnpStatistics(
- IN EFI_SIMPLE_NETWORK_PROTOCOL* This,
- IN BOOLEAN Reset,
- IN OUT UINTN* StatisticsSize OPTIONAL,
- OUT EFI_NETWORK_STATISTICS* StatisticsTable OPTIONAL
- )
+ IN EFI_SIMPLE_NETWORK_PROTOCOL* This,
+ IN BOOLEAN Reset,
+ IN OUT UINTN* StatisticsSize OPTIONAL,
+ OUT EFI_NETWORK_STATISTICS* StatisticsTable OPTIONAL
+ )
{
- return( EFI_UNSUPPORTED );
+ return( EFI_UNSUPPORTED );
}
/**
@@ -1440,13 +1440,13 @@ UnixSnpStatistics(
EFI_STATUS
EFIAPI
UnixSnpMcastIptoMac(
- IN EFI_SIMPLE_NETWORK_PROTOCOL* This,
- IN BOOLEAN Ipv6,
- IN EFI_IP_ADDRESS* Ip,
- OUT EFI_MAC_ADDRESS* Mac
- )
+ IN EFI_SIMPLE_NETWORK_PROTOCOL* This,
+ IN BOOLEAN Ipv6,
+ IN EFI_IP_ADDRESS* Ip,
+ OUT EFI_MAC_ADDRESS* Mac
+ )
{
- return( EFI_UNSUPPORTED );
+ return( EFI_UNSUPPORTED );
}
@@ -1469,14 +1469,14 @@ UnixSnpMcastIptoMac(
EFI_STATUS
EFIAPI
UnixSnpNvdata(
- IN EFI_SIMPLE_NETWORK_PROTOCOL* This,
- IN BOOLEAN ReadOrWrite,
- IN UINTN Offset,
- IN UINTN BufferSize,
- IN OUT VOID* Buffer
- )
+ IN EFI_SIMPLE_NETWORK_PROTOCOL* This,
+ IN BOOLEAN ReadOrWrite,
+ IN UINTN Offset,
+ IN UINTN BufferSize,
+ IN OUT VOID* Buffer
+ )
{
- return( EFI_UNSUPPORTED );
+ return( EFI_UNSUPPORTED );
}
@@ -1504,22 +1504,22 @@ UnixSnpNvdata(
EFI_STATUS
EFIAPI
UnixSnpGetStatus(
- IN EFI_SIMPLE_NETWORK_PROTOCOL* This,
- OUT UINT32* InterruptStatus,
- OUT VOID** TxBuffer
- )
+ IN EFI_SIMPLE_NETWORK_PROTOCOL* This,
+ OUT UINT32* InterruptStatus,
+ OUT VOID** TxBuffer
+ )
{
- if ( TxBuffer != NULL )
- {
- *( ( UINT8 ** ) TxBuffer ) = ( UINT8 * ) 1;
- }
+ if ( TxBuffer != NULL )
+ {
+ *( ( UINT8 ** ) TxBuffer ) = ( UINT8 * ) 1;
+ }
- if ( InterruptStatus != NULL )
- {
- *InterruptStatus = EFI_SIMPLE_NETWORK_TRANSMIT_INTERRUPT;
- }
+ if ( InterruptStatus != NULL )
+ {
+ *InterruptStatus = EFI_SIMPLE_NETWORK_TRANSMIT_INTERRUPT;
+ }
- return( EFI_SUCCESS );
+ return( EFI_SUCCESS );
}
@@ -1556,56 +1556,56 @@ UnixSnpGetStatus(
EFI_STATUS
EFIAPI
UnixSnpTransmit(
- IN EFI_SIMPLE_NETWORK_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 EFI_SIMPLE_NETWORK_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
+ )
{
- UNIX_SNP_PRIVATE_DATA* Private;
- EthernetHeader* EnetHeader;
- INTN Result;
-
- Private = UNIX_SNP_PRIVATE_DATA_FROM_SNP_THIS( This );
-
- if ( This->Mode->State < EfiSimpleNetworkStarted )
- {
- return( EFI_NOT_STARTED );
- }
-
- if ( HeaderSize != 0 )
- {
- if ( ( DestAddr == NULL ) || ( Protocol == NULL ) || ( HeaderSize != This->Mode->MediaHeaderSize ) )
- {
- return( EFI_INVALID_PARAMETER );
- }
-
- if ( SrcAddr == NULL )
- {
- SrcAddr = &This->Mode->CurrentAddress;
- }
-
- EnetHeader = ( EthernetHeader * ) Buffer;
-
- CopyMem( EnetHeader->DstAddr, DestAddr, NET_ETHER_ADDR_LEN );
- CopyMem( EnetHeader->SrcAddr, SrcAddr, NET_ETHER_ADDR_LEN );
-
- EnetHeader->Type = HTONS( *Protocol );
- }
-
- Result = Private->UnixThunk->Write( Private->BpfFd, Buffer, BufferSize );
-
- if ( Result < 0 )
- {
- return( EFI_DEVICE_ERROR );
- }
- else
- {
- return( EFI_SUCCESS );
- }
+ UNIX_SNP_PRIVATE_DATA* Private;
+ EthernetHeader* EnetHeader;
+ INTN Result;
+
+ Private = UNIX_SNP_PRIVATE_DATA_FROM_SNP_THIS( This );
+
+ if ( This->Mode->State < EfiSimpleNetworkStarted )
+ {
+ return( EFI_NOT_STARTED );
+ }
+
+ if ( HeaderSize != 0 )
+ {
+ if ( ( DestAddr == NULL ) || ( Protocol == NULL ) || ( HeaderSize != This->Mode->MediaHeaderSize ) )
+ {
+ return( EFI_INVALID_PARAMETER );
+ }
+
+ if ( SrcAddr == NULL )
+ {
+ SrcAddr = &This->Mode->CurrentAddress;
+ }
+
+ EnetHeader = ( EthernetHeader * ) Buffer;
+
+ CopyMem( EnetHeader->DstAddr, DestAddr, NET_ETHER_ADDR_LEN );
+ CopyMem( EnetHeader->SrcAddr, SrcAddr, NET_ETHER_ADDR_LEN );
+
+ EnetHeader->Type = HTONS( *Protocol );
+ }
+
+ Result = Private->UnixThunk->Write( Private->BpfFd, Buffer, BufferSize );
+
+ if ( Result < 0 )
+ {
+ return( EFI_DEVICE_ERROR );
+ }
+ else
+ {
+ return( EFI_SUCCESS );
+ }
}
/**
@@ -1641,116 +1641,116 @@ UnixSnpTransmit(
EFI_STATUS
EFIAPI
UnixSnpReceive(
- IN EFI_SIMPLE_NETWORK_PROTOCOL* This,
- OUT UINTN* HeaderSize OPTIONAL,
- IN OUT UINTN* BuffSize,
- OUT VOID* Buffer,
- OUT EFI_MAC_ADDRESS* SourceAddr OPTIONAL,
- OUT EFI_MAC_ADDRESS* DestinationAddr OPTIONAL,
- OUT UINT16* Protocol OPTIONAL
- )
+ IN EFI_SIMPLE_NETWORK_PROTOCOL* This,
+ OUT UINTN* HeaderSize OPTIONAL,
+ IN OUT UINTN* BuffSize,
+ OUT VOID* Buffer,
+ OUT EFI_MAC_ADDRESS* SourceAddr OPTIONAL,
+ OUT EFI_MAC_ADDRESS* DestinationAddr OPTIONAL,
+ OUT UINT16* Protocol OPTIONAL
+ )
{
- UNIX_SNP_PRIVATE_DATA* Private;
- struct bpf_hdr* BpfHeader;
- EthernetHeader* EnetHeader;
- EFI_STATUS Status = EFI_SUCCESS;
- INTN Result;
-
- if ( This->Mode->State < EfiSimpleNetworkStarted )
- {
- return( EFI_NOT_STARTED );
- }
-
- Private = UNIX_SNP_PRIVATE_DATA_FROM_SNP_THIS( This );
-
- //
- // Do we have any remaining packets from the previous read?
- //
- if ( Private->CurrentReadPointer >= Private->EndReadPointer )
- {
- Result = Private->UnixThunk->Read( Private->BpfFd, Private->ReadBuffer, Private->ReadBufferSize );
-
- if ( Result < 0 )
- {
- Result = Private->UnixThunk->GetErrno();
-
- //
- // EAGAIN means that there's no I/O outstanding against this file descriptor.
- //
- if ( Result == EAGAIN )
- {
- return( EFI_NOT_READY );
- }
- else
- {
- return( EFI_DEVICE_ERROR );
- }
- }
-
- if ( Result == 0 )
- {
- return( EFI_NOT_READY );
- }
-
- Private->CurrentReadPointer = Private->ReadBuffer;
- Private->EndReadPointer = Private->CurrentReadPointer + Result;
- }
-
- BpfHeader = Private->CurrentReadPointer;
- EnetHeader = Private->CurrentReadPointer + BpfHeader->bh_hdrlen;
-
- if ( BpfHeader->bh_caplen > *BuffSize )
- {
- *BuffSize = BpfHeader->bh_caplen;
- return( EFI_BUFFER_TOO_SMALL );
- }
-
- CopyMem( Buffer, EnetHeader, BpfHeader->bh_caplen );
- *BuffSize = BpfHeader->bh_caplen;
-
- if ( HeaderSize != NULL )
- {
- *HeaderSize = sizeof( EthernetHeader );
- }
-
- if ( DestinationAddr != NULL )
- {
- ZeroMem( DestinationAddr, sizeof( EFI_MAC_ADDRESS ) );
- CopyMem( DestinationAddr, EnetHeader->DstAddr, NET_ETHER_ADDR_LEN );
- }
-
- if ( SourceAddr != NULL )
- {
- ZeroMem( SourceAddr, sizeof( EFI_MAC_ADDRESS ) );
- CopyMem( SourceAddr, EnetHeader->SrcAddr, NET_ETHER_ADDR_LEN );
- }
-
- if ( Protocol != NULL )
- {
- *Protocol = NTOHS( EnetHeader->Type );
- }
-
- Private->CurrentReadPointer += BPF_WORDALIGN( BpfHeader->bh_hdrlen + BpfHeader->bh_caplen );
-
- return( Status );
+ UNIX_SNP_PRIVATE_DATA* Private;
+ struct bpf_hdr* BpfHeader;
+ EthernetHeader* EnetHeader;
+ EFI_STATUS Status = EFI_SUCCESS;
+ INTN Result;
+
+ if ( This->Mode->State < EfiSimpleNetworkStarted )
+ {
+ return( EFI_NOT_STARTED );
+ }
+
+ Private = UNIX_SNP_PRIVATE_DATA_FROM_SNP_THIS( This );
+
+ //
+ // Do we have any remaining packets from the previous read?
+ //
+ if ( Private->CurrentReadPointer >= Private->EndReadPointer )
+ {
+ Result = Private->UnixThunk->Read( Private->BpfFd, Private->ReadBuffer, Private->ReadBufferSize );
+
+ if ( Result < 0 )
+ {
+ Result = Private->UnixThunk->GetErrno();
+
+ //
+ // EAGAIN means that there's no I/O outstanding against this file descriptor.
+ //
+ if ( Result == EAGAIN )
+ {
+ return( EFI_NOT_READY );
+ }
+ else
+ {
+ return( EFI_DEVICE_ERROR );
+ }
+ }
+
+ if ( Result == 0 )
+ {
+ return( EFI_NOT_READY );
+ }
+
+ Private->CurrentReadPointer = Private->ReadBuffer;
+ Private->EndReadPointer = Private->CurrentReadPointer + Result;
+ }
+
+ BpfHeader = Private->CurrentReadPointer;
+ EnetHeader = Private->CurrentReadPointer + BpfHeader->bh_hdrlen;
+
+ if ( BpfHeader->bh_caplen > *BuffSize )
+ {
+ *BuffSize = BpfHeader->bh_caplen;
+ return( EFI_BUFFER_TOO_SMALL );
+ }
+
+ CopyMem( Buffer, EnetHeader, BpfHeader->bh_caplen );
+ *BuffSize = BpfHeader->bh_caplen;
+
+ if ( HeaderSize != NULL )
+ {
+ *HeaderSize = sizeof( EthernetHeader );
+ }
+
+ if ( DestinationAddr != NULL )
+ {
+ ZeroMem( DestinationAddr, sizeof( EFI_MAC_ADDRESS ) );
+ CopyMem( DestinationAddr, EnetHeader->DstAddr, NET_ETHER_ADDR_LEN );
+ }
+
+ if ( SourceAddr != NULL )
+ {
+ ZeroMem( SourceAddr, sizeof( EFI_MAC_ADDRESS ) );
+ CopyMem( SourceAddr, EnetHeader->SrcAddr, NET_ETHER_ADDR_LEN );
+ }
+
+ if ( Protocol != NULL )
+ {
+ *Protocol = NTOHS( EnetHeader->Type );
+ }
+
+ Private->CurrentReadPointer += BPF_WORDALIGN( BpfHeader->bh_hdrlen + BpfHeader->bh_caplen );
+
+ return( Status );
}
VOID
EFIAPI
UnixSnpWaitForPacketNotify(
- IN EFI_EVENT Event,
- IN VOID* Context
- )
+ IN EFI_EVENT Event,
+ IN VOID* Context
+ )
{
- UNIX_SNP_PRIVATE_DATA* Private;
+ UNIX_SNP_PRIVATE_DATA* Private;
- Private = UNIX_SNP_PRIVATE_DATA_FROM_SNP_THIS( Context );
+ Private = UNIX_SNP_PRIVATE_DATA_FROM_SNP_THIS( Context );
- if ( Private->Snp.Mode->State < EfiSimpleNetworkStarted )
- {
- return;
- }
+ if ( Private->Snp.Mode->State < EfiSimpleNetworkStarted )
+ {
+ return;
+ }
}
@@ -1768,24 +1768,24 @@ UnixSnpWaitForPacketNotify(
**/
EFI_STATUS
InitializeUnixSnpDriver(
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE* SystemTable
- )
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE* SystemTable
+ )
{
- EFI_STATUS Status;
-
- //
- // Install the Driver Protocols
- //
-
- Status = EfiLibInstallDriverBindingComponentName2(
- ImageHandle,
- SystemTable,
- &gUnixSnpDriverBinding,
- ImageHandle,
- &gUnixSnpDriverComponentName,
- &gUnixSnpDriverComponentName2
- );
-
- return( Status );
+ EFI_STATUS Status;
+
+ //
+ // Install the Driver Protocols
+ //
+
+ Status = EfiLibInstallDriverBindingComponentName2(
+ ImageHandle,
+ SystemTable,
+ &gUnixSnpDriverBinding,
+ ImageHandle,
+ &gUnixSnpDriverComponentName,
+ &gUnixSnpDriverComponentName2
+ );
+
+ return( Status );
}
diff --git a/UnixPkg/UnixSnpDxe/UnixSnp.h b/UnixPkg/UnixSnpDxe/UnixSnp.h
index 9f0a34a28d..532119afa4 100644
--- a/UnixPkg/UnixSnpDxe/UnixSnp.h
+++ b/UnixPkg/UnixSnpDxe/UnixSnp.h
@@ -46,33 +46,33 @@ Abstract:
typedef struct
{
- UINT32 Signature;
+ UINT32 Signature;
- EFI_UNIX_THUNK_PROTOCOL* UnixThunk;
+ EFI_UNIX_THUNK_PROTOCOL* UnixThunk;
- EFI_HANDLE DeviceHandle;
- EFI_DEVICE_PATH_PROTOCOL* DevicePath;
+ EFI_HANDLE DeviceHandle;
+ EFI_DEVICE_PATH_PROTOCOL* DevicePath;
- EFI_MAC_ADDRESS MacAddress;
+ EFI_MAC_ADDRESS MacAddress;
- CHAR8* InterfaceName;
- INTN ReadBufferSize;
- VOID* ReadBuffer;
- //
- // Two walking pointers to manage the multiple packets that can be returned
- // in a single read.
- //
- VOID* CurrentReadPointer;
- VOID* EndReadPointer;
+ CHAR8* InterfaceName;
+ INTN ReadBufferSize;
+ VOID* ReadBuffer;
+ //
+ // Two walking pointers to manage the multiple packets that can be returned
+ // in a single read.
+ //
+ VOID* CurrentReadPointer;
+ VOID* EndReadPointer;
- INTN BpfFd;
+ INTN BpfFd;
- EFI_SIMPLE_NETWORK_PROTOCOL Snp;
- EFI_SIMPLE_NETWORK_MODE Mode;
+ EFI_SIMPLE_NETWORK_PROTOCOL Snp;
+ EFI_SIMPLE_NETWORK_MODE Mode;
} UNIX_SNP_PRIVATE_DATA;
#define UNIX_SNP_PRIVATE_DATA_FROM_SNP_THIS(a) \
- CR( a, UNIX_SNP_PRIVATE_DATA, Snp, UNIX_SNP_PRIVATE_DATA_SIGNATURE )
+ CR( a, UNIX_SNP_PRIVATE_DATA, Snp, UNIX_SNP_PRIVATE_DATA_SIGNATURE )
extern EFI_DRIVER_BINDING_PROTOCOL gUnixSnpDriverBinding;
extern EFI_COMPONENT_NAME_PROTOCOL gUnixSnpDriverComponentName;
@@ -153,4 +153,4 @@ UnixSnpDriverBindingStop (
IN EFI_HANDLE *ChildHandleBuffer
);
-#endif // _UNIX_SNP_H_
+#endif // _UNIX_SNP_H_