summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--UnixPkg/Include/Protocol/UnixThunk.h174
-rw-r--r--UnixPkg/Library/DxeUnixLib/UnixLib.c17
-rw-r--r--UnixPkg/MiscSubClassPlatformDxe/MiscSubClassDriver.h15
-rw-r--r--UnixPkg/Sec/Gasket.h506
-rw-r--r--UnixPkg/TimerDxe/Timer.c111
5 files changed, 593 insertions, 230 deletions
diff --git a/UnixPkg/Include/Protocol/UnixThunk.h b/UnixPkg/Include/Protocol/UnixThunk.h
index 12d07f9..307da1f 100644
--- a/UnixPkg/Include/Protocol/UnixThunk.h
+++ b/UnixPkg/Include/Protocol/UnixThunk.h
@@ -2,13 +2,13 @@
Copyright (c) 2004 - 2009, Intel Corporation. All rights reserved.<BR>
Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
-This program and the accompanying materials
-are licensed and made available under the terms and conditions of the BSD License
-which accompanies this distribution. The full text of the license may be found at
-http://opensource.org/licenses/bsd-license.php
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+This program and the accompanying materials
+are licensed and made available under the terms and conditions of the BSD License
+which accompanies this distribution. The full text of the license may be found at
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Module Name:
@@ -58,7 +58,7 @@ Abstract:
#else
#include <termio.h>
#include <sys/vfs.h>
-#endif
+#endif
#include <utime.h>
@@ -79,21 +79,21 @@ Abstract:
#if __DARWIN_64_BIT_INO_T
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 */
- __DARWIN_STRUCT_STAT64_TIMES
- 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! */
+ 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 */
+ __DARWIN_STRUCT_STAT64_TIMES
+ 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 */
@@ -133,7 +133,7 @@ typedef struct stat_fix {
#pragma pack(4)
#endif
-#else
+#else
typedef struct stat STAT_FIX;
@@ -146,192 +146,192 @@ typedef struct stat_fix {
typedef
VOID
-(*UnixSleep) (
+(EFIAPI *UnixSleep) (
unsigned long Milliseconds
);
typedef
VOID
-(*UnixExit) (
+(EFIAPI *UnixExit) (
int status // exit code for all threads
);
typedef
VOID
-(*UnixSetTimer) (
- UINT64 PeriodMs,
- VOID (*CallBack)(UINT64 DeltaMs)
+(EFIAPI *UnixSetTimer) (
+ UINT64 PeriodMs,
+ VOID (EFIAPI *CallBack)(UINT64 DeltaMs)
);
typedef
VOID
-(*UnixGetLocalTime) (
+(EFIAPI *UnixGetLocalTime) (
EFI_TIME *Time
);
typedef
struct tm *
-(*UnixGmTime)(
+(EFIAPI *UnixGmTime)(
const time_t *timep
);
typedef
long
-(*UnixGetTimeZone)(
+(EFIAPI *UnixGetTimeZone)(
void
);
typedef
int
-(*UnixGetDayLight)(
+(EFIAPI *UnixGetDayLight)(
void
);
typedef
int
-(*UnixPoll)(
- struct pollfd *pfd,
- unsigned int nfds,
+(EFIAPI *UnixPoll)(
+ struct pollfd *pfd,
+ unsigned int nfds,
int timeout
);
typedef
long
-(*UnixRead) (
- int fd,
- void *buf,
+(EFIAPI *UnixRead) (
+ int fd,
+ void *buf,
int count
);
typedef
long
-(*UnixWrite) (
- int fd,
- const void *buf,
+(EFIAPI *UnixWrite) (
+ int fd,
+ const void *buf,
int count
);
typedef
char *
-(*UnixGetenv) (const char *var);
+(EFIAPI *UnixGetenv) (const char *var);
typedef
int
-(*UnixOpen) (const char *name, int flags, int mode);
+(EFIAPI *UnixOpen) (const char *name, int flags, int mode);
typedef
off_t
-(*UnixSeek) (int fd, off_t off, int whence);
+(EFIAPI *UnixSeek) (int fd, off_t off, int whence);
typedef
int
-(*UnixFtruncate) (int fd, long int len);
+(EFIAPI *UnixFtruncate) (int fd, long int len);
typedef
int
-(*UnixClose) (int fd);
+(EFIAPI *UnixClose) (int fd);
typedef
int
-(*UnixMkdir)(const char *pathname, mode_t mode);
+(EFIAPI *UnixMkdir)(const char *pathname, mode_t mode);
typedef
int
-(*UnixRmDir)(const char *pathname);
+(EFIAPI *UnixRmDir)(const char *pathname);
typedef
int
-(*UnixUnLink)(const char *pathname);
+(EFIAPI *UnixUnLink)(const char *pathname);
typedef
int
-(*UnixGetErrno)(VOID);
+(EFIAPI *UnixGetErrno)(VOID);
typedef
DIR *
-(*UnixOpenDir)(const char *pathname);
+(EFIAPI *UnixOpenDir)(const char *pathname);
typedef
void
-(*UnixRewindDir)(DIR *dir);
+(EFIAPI *UnixRewindDir)(DIR *dir);
typedef
struct dirent *
-(*UnixReadDir)(DIR *dir);
+(EFIAPI *UnixReadDir)(DIR *dir);
typedef
int
-(*UnixCloseDir)(DIR *dir);
+(EFIAPI *UnixCloseDir)(DIR *dir);
typedef
int
-(*UnixStat)(const char *path, STAT_FIX *buf);
+(EFIAPI *UnixStat)(const char *path, STAT_FIX *buf);
typedef
int
-(*UnixStatFs)(const char *path, struct statfs *buf);
+(EFIAPI *UnixStatFs)(const char *path, struct statfs *buf);
typedef
int
-(*UnixRename)(const char *oldpath, const char *newpath);
+(EFIAPI *UnixRename)(const char *oldpath, const char *newpath);
typedef
time_t
-(*UnixMkTime)(struct tm *tm);
+(EFIAPI *UnixMkTime)(struct tm *tm);
typedef
int
-(*UnixFSync)(int fd);
+(EFIAPI *UnixFSync)(int fd);
typedef
int
-(*UnixChmod)(const char *path, mode_t mode);
+(EFIAPI *UnixChmod)(const char *path, mode_t mode);
typedef
int
-(*UnixUTime)(const char *filename, const struct utimbuf *buf);
+(EFIAPI *UnixUTime)(const char *filename, const struct utimbuf *buf);
struct _EFI_UNIX_UGA_IO_PROTOCOL;
typedef
EFI_STATUS
-(*UnixUgaCreate)(struct _EFI_UNIX_UGA_IO_PROTOCOL **UgaIo,
+(EFIAPI *UnixUgaCreate)(struct _EFI_UNIX_UGA_IO_PROTOCOL **UgaIo,
CONST CHAR16 *Title);
typedef
int
-(*UnixTcflush) (int fildes, int queue_selector);
+(EFIAPI *UnixTcflush) (int fildes, int queue_selector);
typedef
void
-(*UnixPerror) (__const char *__s);
+(EFIAPI *UnixPerror) (__const char *__s);
-typedef
-int
+typedef
+int
#if __CYGWIN__
-(*UnixIoCtl) (int fd, int __request, UINTN Arg);
+(EFIAPI *UnixIoCtl) (int fd, int __request, UINTN Arg);
#else
-(*UnixIoCtl) (int fd, unsigned long int __request, void *Arg);
+(EFIAPI *UnixIoCtl) (int fd, unsigned long int __request, void *Arg);
#endif
-typedef
-int
-(*UnixFcntl) (int __fd, int __cmd, void *Arg);
+typedef
+int
+(EFIAPI *UnixFcntl) (int __fd, int __cmd, void *Arg);
typedef
-int
-(*UnixCfsetispeed) (struct termios *__termios_p, speed_t __speed);
+int
+(EFIAPI *UnixCfsetispeed) (struct termios *__termios_p, speed_t __speed);
-typedef
-int
-(*UnixCfsetospeed) (struct termios *__termios_p, speed_t __speed);
+typedef
+int
+(EFIAPI *UnixCfsetospeed) (struct termios *__termios_p, speed_t __speed);
typedef
-int
-(*UnixTcgetattr) (int __fd, struct termios *__termios_p);
+int
+(EFIAPI *UnixTcgetattr) (int __fd, struct termios *__termios_p);
-typedef
-int
-(*UnixTcsetattr) (int __fd, int __optional_actions,
+typedef
+int
+(EFIAPI *UnixTcsetattr) (int __fd, int __optional_actions,
__const struct termios *__termios_p);
@@ -339,20 +339,20 @@ int
// Worker functions to enable source level debug in the emulator
//
-typedef
+typedef
RETURN_STATUS
(EFIAPI *UnixPeCoffGetEntryPoint) (
IN VOID *Pe32Data,
IN OUT VOID **EntryPoint
);
-typedef
+typedef
VOID
(EFIAPI *UnixPeCoffRelocateImageExtraAction) (
IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext
);
-typedef
+typedef
VOID
(EFIAPI *UnixPeCoffLoaderUnloadImageExtraAction) (
IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext
@@ -407,8 +407,8 @@ typedef struct _EFI_UNIX_THUNK_PROTOCOL {
UnixPeCoffGetEntryPoint PeCoffGetEntryPoint;
UnixPeCoffRelocateImageExtraAction PeCoffRelocateImageExtraAction;
UnixPeCoffLoaderUnloadImageExtraAction PeCoffUnloadImageExtraAction;
-
-
+
+
} EFI_UNIX_THUNK_PROTOCOL;
extern EFI_GUID gEfiUnixThunkProtocolGuid;
diff --git a/UnixPkg/Library/DxeUnixLib/UnixLib.c b/UnixPkg/Library/DxeUnixLib/UnixLib.c
index c000f7b..0935448 100644
--- a/UnixPkg/Library/DxeUnixLib/UnixLib.c
+++ b/UnixPkg/Library/DxeUnixLib/UnixLib.c
@@ -1,13 +1,13 @@
/*++
Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
-This program and the accompanying materials
-are licensed and made available under the terms and conditions of the BSD License
-which accompanies this distribution. The full text of the license may be found at
-http://opensource.org/licenses/bsd-license.php
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+This program and the accompanying materials
+are licensed and made available under the terms and conditions of the BSD License
+which accompanies this distribution. The full text of the license may be found at
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Module Name:
@@ -15,7 +15,7 @@ Module Name:
Abstract:
- Unix Library
+ Unix Library
--*/
#include "PiDxe.h"
@@ -27,6 +27,7 @@ Abstract:
EFI_UNIX_THUNK_PROTOCOL *gUnix;
EFI_STATUS
+EFIAPI
UnixLibConstructor (
IN EFI_HANDLE ImageHandle,
IN EFI_SYSTEM_TABLE *SystemTable
diff --git a/UnixPkg/MiscSubClassPlatformDxe/MiscSubClassDriver.h b/UnixPkg/MiscSubClassPlatformDxe/MiscSubClassDriver.h
index b38123c..debd08b 100644
--- a/UnixPkg/MiscSubClassPlatformDxe/MiscSubClassDriver.h
+++ b/UnixPkg/MiscSubClassPlatformDxe/MiscSubClassDriver.h
@@ -1,13 +1,13 @@
/*++
Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
-This program and the accompanying materials
-are licensed and made available under the terms and conditions of the BSD License
-which accompanies this distribution. The full text of the license may be found at
-http://opensource.org/licenses/bsd-license.php
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+This program and the accompanying materials
+are licensed and made available under the terms and conditions of the BSD License
+which accompanies this distribution. The full text of the license may be found at
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Module Name:
@@ -109,6 +109,7 @@ extern EFI_HII_HANDLE mHiiHandle;
// Prototypes
//
EFI_STATUS
+EFIAPI
MiscSubclassDriverEntryPoint (
IN EFI_HANDLE ImageHandle,
IN EFI_SYSTEM_TABLE *SystemTable
diff --git a/UnixPkg/Sec/Gasket.h b/UnixPkg/Sec/Gasket.h
index 60a6ab2..1b71870 100644
--- a/UnixPkg/Sec/Gasket.h
+++ b/UnixPkg/Sec/Gasket.h
@@ -1,7 +1,7 @@
/** @file
Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
-
+
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@@ -26,92 +26,421 @@
// Gasket functions for EFI_UNIX_THUNK_PROTOCOL
//
-void GasketmsSleep (unsigned long Milliseconds);
-void Gasketexit (int status);
-void GasketSetTimer (UINT64 PeriodMs, VOID (*CallBack)(UINT64 DeltaMs));
-void GasketGetLocalTime (EFI_TIME *Time);
-struct tm *Gasketgmtime (const time_t *clock);
-long GasketGetTimeZone (void);
-int GasketGetDayLight (void);
-int Gasketpoll (struct pollfd *pfd, unsigned int nfds, int timeout);
-long Gasketread (int fd, void *buf, int count);
-long Gasketwrite (int fd, const void *buf, int count);
-char *Gasketgetenv (const char *name);
-int Gasketopen (const char *name, int flags, int mode);
-off_t Gasketlseek (int fd, off_t off, int whence);
-int Gasketftruncate (int fd, long int len);
-int Gasketclose (int fd);
-int Gasketmkdir (const char *pathname, mode_t mode);
-int Gasketrmdir (const char *pathname);
-int Gasketunlink (const char *pathname);
-int GasketGetErrno (void);
-DIR *Gasketopendir (const char *pathname);
-void Gasketrewinddir (DIR *dir);
-struct dirent *Gasketreaddir (DIR *dir);
-int Gasketclosedir (DIR *dir);
-int Gasketstat (const char *path, STAT_FIX *buf);
-int Gasketstatfs (const char *path, struct statfs *buf);
-int Gasketrename (const char *oldpath, const char *newpath);
-time_t Gasketmktime (struct tm *tm);
-int Gasketfsync (int fd);
-int Gasketchmod (const char *path, mode_t mode);
-int Gasketutime (const char *filename, const struct utimbuf *buf);
-int Gaskettcflush (int fildes, int queue_selector);
-EFI_STATUS GasketUgaCreate(struct _EFI_UNIX_UGA_IO_PROTOCOL **UgaIo, CONST CHAR16 *Title);
-void Gasketperror (__const char *__s);
+void
+EFIAPI
+GasketmsSleep (unsigned long Milliseconds);
+
+void
+EFIAPI
+Gasketexit (
+ int status
+ );
+
+void
+EFIAPI
+GasketSetTimer (
+ UINT64 PeriodMs,
+ VOID (*CallBack)(UINT64 DeltaMs)
+ );
+
+void
+EFIAPI
+GasketGetLocalTime (
+ EFI_TIME *Time
+ );
+
+struct tm *
+EFIAPI
+Gasketgmtime (
+ const time_t *clock
+ );
+
+long
+EFIAPI
+GasketGetTimeZone (
+ void
+ );
+
+int
+EFIAPI
+GasketGetDayLight (
+ void
+ );
+
+
+int
+EFIAPI
+Gasketpoll (
+ struct pollfd *pfd,
+ unsigned int nfds,
+ int timeout
+ );
+
+long
+EFIAPI
+Gasketread (
+ int fd,
+ void *buf,
+ int count);
+
+long
+EFIAPI
+Gasketwrite (
+ int fd,
+ const void *buf,
+ int count
+ );
+
+char *
+EFIAPI
+Gasketgetenv (
+ const char *name
+ );
+
+int
+EFIAPI
+Gasketopen (
+ const char *name,
+ int flags,
+ int mode
+ );
+
+off_t
+EFIAPI
+Gasketlseek (
+ int fd,
+ off_t off,
+ int whence
+ );
+
+int
+EFIAPI
+Gasketftruncate (
+ int fd,
+ long int len
+ );
+
+int
+EFIAPI
+Gasketclose (
+ int fd
+ );
+
+int
+EFIAPI
+Gasketmkdir (
+ const char *pathname,
+ mode_t mode
+ );
+
+int
+EFIAPI
+Gasketrmdir (
+ const char *pathname
+ );
+
+int
+EFIAPI
+Gasketunlink (
+ const char *pathname
+ );
+
+int
+EFIAPI
+GasketGetErrno (
+ void
+ );
+
+DIR *
+EFIAPI
+Gasketopendir (
+ const char *pathname
+ );
+
+void
+EFIAPI
+Gasketrewinddir (
+ DIR *dir
+ );
+
+struct dirent *
+EFIAPI
+Gasketreaddir (
+ DIR *dir
+ );
+
+int
+EFIAPI
+Gasketclosedir (
+ DIR *dir
+ );
+
+int
+EFIAPI
+Gasketstat (const char *path, STAT_FIX *buf);
+
+int
+EFIAPI
+Gasketstatfs (const char *path, struct statfs *buf);
+
+int
+EFIAPI
+Gasketrename (
+ const char *oldpath,
+ const char *newpath
+ );
+
+time_t
+EFIAPI
+Gasketmktime (
+ struct tm *tm
+ );
+
+int
+EFIAPI
+Gasketfsync (
+ int fd
+ );
+
+int
+EFIAPI
+Gasketchmod (
+ const char *path,
+ mode_t mode
+ );
+
+int
+EFIAPI
+Gasketutime (
+ const char *filename,
+ const struct utimbuf *buf
+ );
+
+int
+EFIAPI
+Gaskettcflush (
+ int fildes,
+ int queue_selector
+ );
+
+EFI_STATUS
+EFIAPI
+GasketUgaCreate (
+ struct _EFI_UNIX_UGA_IO_PROTOCOL **UgaIo,
+ CONST CHAR16 *Title
+ );
+
+void
+EFIAPI
+Gasketperror (
+ __const char *__s
+ );
//
// ... is always an int or pointer to device specific data structure
//
-int Gasketioctl (int fd, unsigned long int __request, void *Arg);
-int Gasketfcntl (int __fd, int __cmd, void *Arg);
-int Gasketcfsetispeed (struct termios *__termios_p, speed_t __speed);
-int Gasketcfsetospeed (struct termios *__termios_p, speed_t __speed);
-int Gaskettcgetattr (int __fd, struct termios *__termios_p);
-int Gaskettcsetattr (int __fd, int __optional_actions, __const struct termios *__termios_p);
-int Gasketsigaction (int sig, const struct sigaction *act, struct sigaction *oact);
+int
+EFIAPI
+Gasketioctl (
+ int fd,
+ unsigned long int __request,
+ void *Arg
+ );
+
+int
+EFIAPI
+Gasketfcntl (
+ int __fd,
+ int __cmd,
+ void *Arg
+ );
+
+int
+EFIAPI
+Gasketcfsetispeed (
+ struct termios *__termios_p,
+ speed_t __speed
+ );
+
+int
+EFIAPI
+Gasketcfsetospeed (
+ struct termios *__termios_p,
+ speed_t __speed
+ );
+
+int
+EFIAPI
+Gaskettcgetattr (
+ int __fd,
+ struct termios *__termios_p
+ );
+
+int
+EFIAPI
+Gaskettcsetattr (
+ int __fd,
+ int __optional_actions,
+ __const struct termios *__termios_p
+ );
+
+int
+EFIAPI
+Gasketsigaction (
+ int sig,
+ const struct sigaction *act,
+ struct sigaction *oact
+ );
RETURN_STATUS
+EFIAPI
GasketUnixPeCoffGetEntryPoint (
IN VOID *Pe32Data,
IN OUT VOID **EntryPoint
);
VOID
+EFIAPI
GasketUnixPeCoffRelocateImageExtraAction (
IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext
);
VOID
+EFIAPI
GasketUnixPeCoffUnloadImageExtraAction (
IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext
);
-
-UINTN GasketVoid (void *api);
-UINTN GasketUintn (void *api, UINTN a);
-UINTN GasketUintnUintn (void *api, UINTN a, UINTN b);
-UINTN GasketUintnUintnUintn (void *api, UINTN a, UINTN b, UINTN c);
-UINTN GasketUintnUintnUintnUintn (void *api, UINTN a, UINTN b, UINTN c, UINTN d);
-UINTN GasketUintn10Args (void *api, UINTN a, UINTN b, UINTN c, UINTN d, UINTN e, UINTN f, UINTN g, UINTN h, UINTN i, UINTN j);
-UINTN GasketUint64Uintn (void *api, UINT64 a, UINTN b);
-UINT64 GasketUintnUint64Uintn (void *api, UINTN a, UINT64 b, UINTN c);
-UINTN GasketUintnUint16 (void *api, UINTN a, UINT16 b);
-typedef void (*CALL_BACK) (UINT64 Delta);
-UINTN ReverseGasketUint64 (CALL_BACK CallBack, UINT64 a);
+UINTN
+EFIAPI
+GasketVoid (
+ void *api
+ );
+
+UINTN
+EFIAPI
+GasketUintn (
+ void *api,
+ UINTN a
+ );
+
+UINTN
+EFIAPI
+GasketUintnUintn (
+ void *api,
+ UINTN a,
+ UINTN b
+ );
+
+UINTN
+EFIAPI
+GasketUintnUintnUintn (
+ void *api,
+ UINTN a,
+ UINTN b,
+ UINTN c
+ );
+
+UINTN
+EFIAPI
+GasketUintnUintnUintnUintn (
+ void *api,
+ UINTN a,
+ UINTN b,
+ UINTN c,
+ UINTN d
+ );
+
+UINTN
+EFIAPI
+GasketUintn10Args (
+ void *api,
+ UINTN a,
+ UINTN b,
+ UINTN c,
+ UINTN d,
+ UINTN e,
+ UINTN f,
+ UINTN g,
+ UINTN h,
+ UINTN i,
+ UINTN j
+ );
+
+UINTN
+EFIAPI
+GasketUint64Uintn (
+ void *api,
+ UINT64 a,
+ UINTN b);
+
+UINT64
+EFIAPI
+GasketUintnUint64Uintn (
+ void *api,
+ UINTN a,
+ UINT64 b,
+ UINTN c
+ );
+
+UINTN
+EFIAPI
+GasketUintnUint16 (
+ void *api,
+ UINTN a,
+ UINT16 b
+ );
+
+typedef
+void
+(*CALL_BACK) (
+ UINT64 Delta
+ );
+
+UINTN
+ReverseGasketUint64 (
+ CALL_BACK CallBack,
+ UINT64 a
+ );
//
// Gasket functions for EFI_UNIX_UGA_IO_PROTOCOL
//
-EFI_STATUS EFIAPI GasketUgaClose (EFI_UNIX_UGA_IO_PROTOCOL *UgaIo);
-EFI_STATUS EFIAPI GasketUgaSize (EFI_UNIX_UGA_IO_PROTOCOL *UgaIo, UINT32 Width, UINT32 Height);
-EFI_STATUS EFIAPI GasketUgaCheckKey (EFI_UNIX_UGA_IO_PROTOCOL *UgaIo);
-EFI_STATUS EFIAPI GasketUgaGetKey (EFI_UNIX_UGA_IO_PROTOCOL *UgaIo, EFI_INPUT_KEY *key);
-EFI_STATUS EFIAPI GasketUgaBlt (
+
+EFI_STATUS
+EFIAPI
+GasketUgaClose (
+ EFI_UNIX_UGA_IO_PROTOCOL *UgaIo
+ );
+
+EFI_STATUS
+EFIAPI
+GasketUgaSize (
+ EFI_UNIX_UGA_IO_PROTOCOL *UgaIo,
+ UINT32 Width,
+ UINT32 Height
+ );
+
+EFI_STATUS
+EFIAPI
+GasketUgaCheckKey (
+ EFI_UNIX_UGA_IO_PROTOCOL *UgaIo
+ );
+
+EFI_STATUS
+EFIAPI
+GasketUgaGetKey (
+ EFI_UNIX_UGA_IO_PROTOCOL *UgaIo,
+ EFI_INPUT_KEY *key
+ );
+
+EFI_STATUS
+EFIAPI
+GasketUgaBlt (
EFI_UNIX_UGA_IO_PROTOCOL *UgaIo,
IN EFI_UGA_PIXEL *BltBuffer OPTIONAL,
IN EFI_UGA_BLT_OPERATION BltOperation,
@@ -124,26 +453,57 @@ EFI_STATUS EFIAPI GasketUgaBlt (
IN UINTN Delta OPTIONAL
);
-EFI_STATUS UgaCreate (EFI_UNIX_UGA_IO_PROTOCOL **Uga, CONST CHAR16 *Title);
+EFI_STATUS
+EFIAPI
+UgaCreate (
+ EFI_UNIX_UGA_IO_PROTOCOL **Uga,
+ CONST CHAR16 *Title
+ );
//
// Gasket functions for EFI_UNIX_UGA_IO_PROTOCOL
//
-EFI_STATUS UgaClose (EFI_UNIX_UGA_IO_PROTOCOL *UgaIo);
-EFI_STATUS UgaSize(EFI_UNIX_UGA_IO_PROTOCOL *UgaIo, UINT32 Width, UINT32 Height);
-EFI_STATUS UgaCheckKey(EFI_UNIX_UGA_IO_PROTOCOL *UgaIo);
-EFI_STATUS UgaGetKey (EFI_UNIX_UGA_IO_PROTOCOL *UgaIo, EFI_INPUT_KEY *key);
-EFI_STATUS UgaBlt (EFI_UNIX_UGA_IO_PROTOCOL *UgaIo,
- IN EFI_UGA_PIXEL *BltBuffer OPTIONAL,
- IN EFI_UGA_BLT_OPERATION BltOperation,
- IN UINTN SourceX,
- IN UINTN SourceY,
- IN UINTN DestinationX,
- IN UINTN DestinationY,
- IN UINTN Width,
- IN UINTN Height,
- IN UINTN Delta OPTIONAL
+EFI_STATUS
+EFIAPI
+UgaClose (
+ EFI_UNIX_UGA_IO_PROTOCOL *UgaIo
+ );
+
+EFI_STATUS
+EFIAPI
+UgaSize(
+ EFI_UNIX_UGA_IO_PROTOCOL *UgaIo,
+ UINT32 Width,
+ UINT32 Height
+ );
+
+EFI_STATUS
+EFIAPI
+UgaCheckKey(
+ EFI_UNIX_UGA_IO_PROTOCOL *UgaIo
+ );
+
+EFI_STATUS
+EFIAPI
+UgaGetKey (
+ EFI_UNIX_UGA_IO_PROTOCOL *UgaIo,
+ EFI_INPUT_KEY *key
+ );
+
+EFI_STATUS
+EFIAPI
+UgaBlt (
+ EFI_UNIX_UGA_IO_PROTOCOL *UgaIo,
+ IN EFI_UGA_PIXEL *BltBuffer OPTIONAL,
+ IN EFI_UGA_BLT_OPERATION BltOperation,
+ IN UINTN SourceX,
+ IN UINTN SourceY,
+ IN UINTN DestinationX,
+ IN UINTN DestinationY,
+ IN UINTN Width,
+ IN UINTN Height,
+ IN UINTN Delta OPTIONAL
);
diff --git a/UnixPkg/TimerDxe/Timer.c b/UnixPkg/TimerDxe/Timer.c
index 16105df..385db63 100644
--- a/UnixPkg/TimerDxe/Timer.c
+++ b/UnixPkg/TimerDxe/Timer.c
@@ -1,13 +1,13 @@
/*++
Copyright (c) 2004, Intel Corporation. All rights reserved.<BR>
-This program and the accompanying materials
-are licensed and made available under the terms and conditions of the BSD License
-which accompanies this distribution. The full text of the license may be found at
-http://opensource.org/licenses/bsd-license.php
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+This program and the accompanying materials
+are licensed and made available under the terms and conditions of the BSD License
+which accompanies this distribution. The full text of the license may be found at
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Module Name:
@@ -18,7 +18,7 @@ Abstract:
UNIX Emulation Timer Architectural Protocol Driver as defined in DXE CIS
This Timer module uses an UNIX Thread to simulate the timer-tick driven
- timer service. In the future, the Thread creation should possibly be
+ timer service. In the future, the Thread creation should possibly be
abstracted by the CPU architectural protocol
--*/
@@ -62,6 +62,7 @@ UINT64 mTimerPeriodMs;
VOID
+EFIAPI
TimerCallback (UINT64 DeltaMs)
/*++
@@ -115,38 +116,38 @@ UnixTimerDriverRegisterHandler (
Routine Description:
- This function registers the handler NotifyFunction so it is called every time
- the timer interrupt fires. It also passes the amount of time since the last
- handler call to the NotifyFunction. If NotifyFunction is NULL, then the
- handler is unregistered. If the handler is registered, then EFI_SUCCESS is
- returned. If the CPU does not support registering a timer interrupt handler,
- then EFI_UNSUPPORTED is returned. If an attempt is made to register a handler
- when a handler is already registered, then EFI_ALREADY_STARTED is returned.
- If an attempt is made to unregister a handler when a handler is not registered,
- then EFI_INVALID_PARAMETER is returned. If an error occurs attempting to
- register the NotifyFunction with the timer interrupt, then EFI_DEVICE_ERROR
+ This function registers the handler NotifyFunction so it is called every time
+ the timer interrupt fires. It also passes the amount of time since the last
+ handler call to the NotifyFunction. If NotifyFunction is NULL, then the
+ handler is unregistered. If the handler is registered, then EFI_SUCCESS is
+ returned. If the CPU does not support registering a timer interrupt handler,
+ then EFI_UNSUPPORTED is returned. If an attempt is made to register a handler
+ when a handler is already registered, then EFI_ALREADY_STARTED is returned.
+ If an attempt is made to unregister a handler when a handler is not registered,
+ then EFI_INVALID_PARAMETER is returned. If an error occurs attempting to
+ register the NotifyFunction with the timer interrupt, then EFI_DEVICE_ERROR
is returned.
Arguments:
This - The EFI_TIMER_ARCH_PROTOCOL instance.
- NotifyFunction - The function to call when a timer interrupt fires. This
- function executes at TPL_HIGH_LEVEL. The DXE Core will
- register a handler for the timer interrupt, so it can know
- how much time has passed. This information is used to
+ NotifyFunction - The function to call when a timer interrupt fires. This
+ function executes at TPL_HIGH_LEVEL. The DXE Core will
+ register a handler for the timer interrupt, so it can know
+ how much time has passed. This information is used to
signal timer based events. NULL will unregister the handler.
-Returns:
+Returns:
EFI_SUCCESS - The timer handler was registered.
EFI_UNSUPPORTED - The platform does not support timer interrupts.
- EFI_ALREADY_STARTED - NotifyFunction is not NULL, and a handler is already
+ EFI_ALREADY_STARTED - NotifyFunction is not NULL, and a handler is already
registered.
- EFI_INVALID_PARAMETER - NotifyFunction is NULL, and a handler was not
+ EFI_INVALID_PARAMETER - NotifyFunction is NULL, and a handler was not
previously registered.
EFI_DEVICE_ERROR - The timer handler could not be registered.
@@ -186,30 +187,30 @@ UnixTimerDriverSetTimerPeriod (
Routine Description:
- This function adjusts the period of timer interrupts to the value specified
- by TimerPeriod. If the timer period is updated, then the selected timer
- period is stored in EFI_TIMER.TimerPeriod, and EFI_SUCCESS is returned. If
- the timer hardware is not programmable, then EFI_UNSUPPORTED is returned.
- If an error occurs while attempting to update the timer period, then the
- timer hardware will be put back in its state prior to this call, and
- EFI_DEVICE_ERROR is returned. If TimerPeriod is 0, then the timer interrupt
- is disabled. This is not the same as disabling the CPU's interrupts.
- Instead, it must either turn off the timer hardware, or it must adjust the
- interrupt controller so that a CPU interrupt is not generated when the timer
- interrupt fires.
+ This function adjusts the period of timer interrupts to the value specified
+ by TimerPeriod. If the timer period is updated, then the selected timer
+ period is stored in EFI_TIMER.TimerPeriod, and EFI_SUCCESS is returned. If
+ the timer hardware is not programmable, then EFI_UNSUPPORTED is returned.
+ If an error occurs while attempting to update the timer period, then the
+ timer hardware will be put back in its state prior to this call, and
+ EFI_DEVICE_ERROR is returned. If TimerPeriod is 0, then the timer interrupt
+ is disabled. This is not the same as disabling the CPU's interrupts.
+ Instead, it must either turn off the timer hardware, or it must adjust the
+ interrupt controller so that a CPU interrupt is not generated when the timer
+ interrupt fires.
Arguments:
This - The EFI_TIMER_ARCH_PROTOCOL instance.
- TimerPeriod - The rate to program the timer interrupt in 100 nS units. If
- the timer hardware is not programmable, then EFI_UNSUPPORTED is
- returned. If the timer is programmable, then the timer period
- will be rounded up to the nearest timer period that is supported
- by the timer hardware. If TimerPeriod is set to 0, then the
+ TimerPeriod - The rate to program the timer interrupt in 100 nS units. If
+ the timer hardware is not programmable, then EFI_UNSUPPORTED is
+ returned. If the timer is programmable, then the timer period
+ will be rounded up to the nearest timer period that is supported
+ by the timer hardware. If TimerPeriod is set to 0, then the
timer interrupts will be disabled.
-Returns:
+Returns:
EFI_SUCCESS - The timer period was changed.
@@ -245,19 +246,19 @@ UnixTimerDriverGetTimerPeriod (
Routine Description:
- This function retrieves the period of timer interrupts in 100 ns units,
- returns that value in TimerPeriod, and returns EFI_SUCCESS. If TimerPeriod
- is NULL, then EFI_INVALID_PARAMETER is returned. If a TimerPeriod of 0 is
+ This function retrieves the period of timer interrupts in 100 ns units,
+ returns that value in TimerPeriod, and returns EFI_SUCCESS. If TimerPeriod
+ is NULL, then EFI_INVALID_PARAMETER is returned. If a TimerPeriod of 0 is
returned, then the timer is currently disabled.
Arguments:
This - The EFI_TIMER_ARCH_PROTOCOL instance.
- TimerPeriod - A pointer to the timer period to retrieve in 100 ns units. If
+ TimerPeriod - A pointer to the timer period to retrieve in 100 ns units. If
0 is returned, then the timer is currently disabled.
-Returns:
+Returns:
EFI_SUCCESS - The timer period was returned in TimerPeriod.
@@ -283,19 +284,19 @@ UnixTimerDriverGenerateSoftInterrupt (
Routine Description:
- This function generates a soft timer interrupt. If the platform does not support soft
- timer interrupts, then EFI_UNSUPPORTED is returned. Otherwise, EFI_SUCCESS is returned.
- If a handler has been registered through the EFI_TIMER_ARCH_PROTOCOL.RegisterHandler()
- service, then a soft timer interrupt will be generated. If the timer interrupt is
- enabled when this service is called, then the registered handler will be invoked. The
- registered handler should not be able to distinguish a hardware-generated timer
+ This function generates a soft timer interrupt. If the platform does not support soft
+ timer interrupts, then EFI_UNSUPPORTED is returned. Otherwise, EFI_SUCCESS is returned.
+ If a handler has been registered through the EFI_TIMER_ARCH_PROTOCOL.RegisterHandler()
+ service, then a soft timer interrupt will be generated. If the timer interrupt is
+ enabled when this service is called, then the registered handler will be invoked. The
+ registered handler should not be able to distinguish a hardware-generated timer
interrupt from a software-generated timer interrupt.
Arguments:
This - The EFI_TIMER_ARCH_PROTOCOL instance.
-Returns:
+Returns:
EFI_SUCCESS - The soft timer interrupt was generated.
@@ -329,7 +330,7 @@ Returns:
EFI_SUCCESS - Timer Architectural Protocol created
EFI_OUT_OF_RESOURCES - Not enough resources available to initialize driver.
-
+
EFI_DEVICE_ERROR - A device error occured attempting to initialize the driver.
--*/