summaryrefslogtreecommitdiff
path: root/UnixPkg/Include/Protocol
diff options
context:
space:
mode:
authorandrewfish <andrewfish@6f19259b-4bc3-4df7-8a09-765794883524>2010-07-22 21:21:38 +0000
committerandrewfish <andrewfish@6f19259b-4bc3-4df7-8a09-765794883524>2010-07-22 21:21:38 +0000
commitb9c8e50e2054fc21c2029db309f813d03ccd6082 (patch)
tree63828888a832dc738d34a430be7e592baf4ee65d /UnixPkg/Include/Protocol
parent92a4f6f3c7898c4d4bc54cdd0fa6734b1a352269 (diff)
downloadedk2-platforms-b9c8e50e2054fc21c2029db309f813d03ccd6082.tar.xz
Port UnixPkg to also support X64. Currently only supports Unix x86_64 ABI. In the future we can make Sec support x86_64 ABI and the rest of the code support X64 EFI ABI. This will require assembly gaskets to fix the calling convention differences. I currently have noop gaskets in place for x86_64 ABI. This has only been tested on OS X 10.6.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10685 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'UnixPkg/Include/Protocol')
-rw-r--r--UnixPkg/Include/Protocol/UnixThunk.h93
-rw-r--r--UnixPkg/Include/Protocol/UnixUgaIo.h31
2 files changed, 86 insertions, 38 deletions
diff --git a/UnixPkg/Include/Protocol/UnixThunk.h b/UnixPkg/Include/Protocol/UnixThunk.h
index 4141d35662..7b4630bb0b 100644
--- a/UnixPkg/Include/Protocol/UnixThunk.h
+++ b/UnixPkg/Include/Protocol/UnixThunk.h
@@ -74,7 +74,9 @@ Abstract:
// st_size is 64-bit but starts on a 32-bit offset in the structure. The compiler
// flags used to produce compatible EFI images, break struct stat
//
+#ifdef MDE_CPU_IA32
#pragma pack(4)
+#endif
#if __DARWIN_64_BIT_INO_T
@@ -128,7 +130,10 @@ typedef struct stat_fix {
} STAT_FIX;
#endif
-#pragma pack()
+
+#ifdef MDE_CPU_IA32
+#pragma pack(4)
+#endif
#else
@@ -155,40 +160,75 @@ VOID
typedef
VOID
-(*UnixSetTimer) (UINT64 PeriodMs, VOID (*CallBack)(UINT64 DeltaMs));
+(*UnixSetTimer) (
+ UINT64 PeriodMs,
+ VOID (*CallBack)(UINT64 DeltaMs)
+ );
+
typedef
VOID
-(*UnixGetLocalTime) (EFI_TIME *Time);
+(*UnixGetLocalTime) (
+ EFI_TIME *Time
+ );
+
typedef
struct tm *
-(*UnixGmTime)(const time_t *timep);
+(*UnixGmTime)(
+ const time_t *timep
+ );
+
typedef
long
-(*UnixGetTimeZone)(void);
+(*UnixGetTimeZone)(
+ void
+ );
+
typedef
int
-(*UnixGetDayLight)(void);
+(*UnixGetDayLight)(
+ void
+ );
+
typedef
int
-(*UnixPoll)(struct pollfd *pfd, int nfds, int timeout);
+(*UnixPoll)(
+ struct pollfd *pfd,
+ unsigned int nfds,
+ int timeout
+ );
+
typedef
-int
-(*UnixRead) (int fd, void *buf, int count);
+long
+(*UnixRead) (
+ int fd,
+ void *buf,
+ int count
+ );
+
typedef
-int
-(*UnixWrite) (int fd, const void *buf, int count);
+long
+(*UnixWrite) (
+ int fd,
+ const void *buf,
+ int count
+ );
+
typedef
char *
(*UnixGetenv) (const char *var);
+
typedef
int
(*UnixOpen) (const char *name, int flags, int mode);
+
typedef
off_t
(*UnixSeek) (int fd, off_t off, int whence);
+
typedef
int
(*UnixFtruncate) (int fd, long int len);
+
typedef
int
(*UnixClose) (int fd);
@@ -196,45 +236,59 @@ int
typedef
int
(*UnixMkdir)(const char *pathname, mode_t mode);
+
typedef
int
(*UnixRmDir)(const char *pathname);
+
typedef
int
(*UnixUnLink)(const char *pathname);
+
typedef
int
(*UnixGetErrno)(VOID);
+
typedef
DIR *
(*UnixOpenDir)(const char *pathname);
+
typedef
void
(*UnixRewindDir)(DIR *dir);
+
typedef
struct dirent *
(*UnixReadDir)(DIR *dir);
+
typedef
int
(*UnixCloseDir)(DIR *dir);
+
typedef
int
(*UnixStat)(const char *path, STAT_FIX *buf);
+
typedef
int
(*UnixStatFs)(const char *path, struct statfs *buf);
+
typedef
int
(*UnixRename)(const char *oldpath, const char *newpath);
+
typedef
time_t
(*UnixMkTime)(struct tm *tm);
+
typedef
int
(*UnixFSync)(int fd);
+
typedef
int
(*UnixChmod)(const char *path, mode_t mode);
+
typedef
int
(*UnixUTime)(const char *filename, const struct utimbuf *buf);
@@ -282,21 +336,9 @@ int
(*UnixTcsetattr) (int __fd, int __optional_actions,
__const struct termios *__termios_p);
-typedef
-VOID *
-(*UnixDlopen) (const char *FileName, int Flag);
-
-typedef
-char *
-(*UnixDlerror) (VOID);
-
-typedef
-VOID *
-(*UnixDlsym) (VOID* Handle, const char* Symbol);
-
//
-// Work functions to enable source level debug in the emulator
+// Worker functions to enable source level debug in the emulator
//
typedef
@@ -364,9 +406,6 @@ typedef struct _EFI_UNIX_THUNK_PROTOCOL {
UnixCfsetospeed Cfsetospeed;
UnixTcgetattr Tcgetattr;
UnixTcsetattr Tcsetattr;
- UnixDlopen Dlopen;
- UnixDlerror Dlerror;
- UnixDlsym Dlsym;
UnixPeCoffGetEntryPoint PeCoffGetEntryPoint;
UnixPeCoffRelocateImageExtraAction PeCoffRelocateImageExtraAction;
UnixPeCoffLoaderUnloadImageExtraAction PeCoffUnloadImageExtraAction;
diff --git a/UnixPkg/Include/Protocol/UnixUgaIo.h b/UnixPkg/Include/Protocol/UnixUgaIo.h
index 4a4798234c..75923f34b9 100644
--- a/UnixPkg/Include/Protocol/UnixUgaIo.h
+++ b/UnixPkg/Include/Protocol/UnixUgaIo.h
@@ -20,33 +20,41 @@ Abstract:
#ifndef _UNIX_UGA_IO_H_
#define _UNIX_UGA_IO_H_
-#define EFI_UNIX_UGA_IO_PROTOCOL_GUID \
- { \
- 0xf2e5e2c6, 0x8985, 0x11db, {0xa1, 0x91, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35 } \
- }
+#define EFI_UNIX_UGA_IO_PROTOCOL_GUID {0xf2e5e2c6, 0x8985, 0x11db, {0xa1, 0x91, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35 } }
-struct _EFI_UNIX_UGA_IO_PROTOCOL;
typedef struct _EFI_UNIX_UGA_IO_PROTOCOL EFI_UNIX_UGA_IO_PROTOCOL;
typedef
EFI_STATUS
-(*UGAClose)(EFI_UNIX_UGA_IO_PROTOCOL *Uga);
+(*UGAClose)(
+ EFI_UNIX_UGA_IO_PROTOCOL *Uga
+ );
typedef
EFI_STATUS
-(*UGASize)(EFI_UNIX_UGA_IO_PROTOCOL *Uga, UINT32 Width, UINT32 Height);
+(*UGASize)(
+ EFI_UNIX_UGA_IO_PROTOCOL *Uga,
+ UINT32 Width,
+ UINT32 Height
+ );
typedef
EFI_STATUS
-(*UGACheckKey)(EFI_UNIX_UGA_IO_PROTOCOL *Uga);
+(*UGACheckKey)(
+ EFI_UNIX_UGA_IO_PROTOCOL *Uga
+ );
typedef
EFI_STATUS
-(*UGAGetKey)(EFI_UNIX_UGA_IO_PROTOCOL *Uga, EFI_INPUT_KEY *key);
+(*UGAGetKey)(
+ EFI_UNIX_UGA_IO_PROTOCOL *Uga,
+ EFI_INPUT_KEY *key
+ );
typedef
EFI_STATUS
-(*UGABlt)(EFI_UNIX_UGA_IO_PROTOCOL *Uga,
+(*UGABlt)(
+ IN EFI_UNIX_UGA_IO_PROTOCOL *Uga,
IN EFI_UGA_PIXEL *BltBuffer OPTIONAL,
IN EFI_UGA_BLT_OPERATION BltOperation,
IN UINTN SourceX,
@@ -55,7 +63,8 @@ EFI_STATUS
IN UINTN DestinationY,
IN UINTN Width,
IN UINTN Height,
- IN UINTN Delta OPTIONAL);
+ IN UINTN Delta OPTIONAL
+ );
struct _EFI_UNIX_UGA_IO_PROTOCOL {
VOID *Private;