summaryrefslogtreecommitdiff
path: root/UnixPkg/Sec/X64/NameManglingFix.c
diff options
context:
space:
mode:
authorandrewfish <andrewfish@6f19259b-4bc3-4df7-8a09-765794883524>2010-07-23 22:20:00 +0000
committerandrewfish <andrewfish@6f19259b-4bc3-4df7-8a09-765794883524>2010-07-23 22:20:00 +0000
commitede7ec0bcd7a7f0761f8fca40c87e4d10f0522a6 (patch)
tree6d947c71eff22089cb8bb23db61268a6216dba1b /UnixPkg/Sec/X64/NameManglingFix.c
parent185969ed53d42fbcd912db69075adbcde938a1c8 (diff)
downloadedk2-ede7ec0bcd7a7f0761f8fca40c87e4d10f0522a6.zip
edk2-ede7ec0bcd7a7f0761f8fca40c87e4d10f0522a6.tar.gz
edk2-ede7ec0bcd7a7f0761f8fca40c87e4d10f0522a6.tar.bz2
Changed the X64 gasket so it would be possible to port it to deal with the Unix to EFI ABI mangling. It still just does Unix ABI, and has some Xcode specific stuff to make source level debug a little easier, but it is a good first step.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10689 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'UnixPkg/Sec/X64/NameManglingFix.c')
-rw-r--r--UnixPkg/Sec/X64/NameManglingFix.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/UnixPkg/Sec/X64/NameManglingFix.c b/UnixPkg/Sec/X64/NameManglingFix.c
new file mode 100644
index 0000000..dc2ea36
--- /dev/null
+++ b/UnixPkg/Sec/X64/NameManglingFix.c
@@ -0,0 +1,27 @@
+/** @file
+
+ Copyright (c) 2008 - 2010, 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.
+
+**/
+
+#include "SecMain.h"
+
+//
+// OS X Posix does some strange name mangling on these names in C.
+// If you call from assembler you get the wrong version of the function
+// So these globals get you the correct name mangled functions that can
+// be accessed from assembly
+//
+UnixRmDir gUnixRmDir = rmdir;
+UnixOpenDir gUnixOpenDir = opendir;
+UnixStat gUnixStat = (UnixStat)stat;
+UnixStatFs gUnixStatFs = statfs;
+