Author: hpoussin
Date: Sun Sep 2 22:05:16 2007
New Revision: 28778
URL:
http://svn.reactos.org/svn/reactos?rev=28778&view=rev
Log:
Make some i386 code conditional
Add missing svn:eol-style=native property
Modified:
trunk/reactos/dll/win32/kernel32/except/except.c
trunk/reactos/dll/win32/kernel32/kernel32.rbuild
trunk/reactos/dll/win32/kernel32/misc/dllmain.c
trunk/reactos/dll/win32/kernel32/misc/utils.c
trunk/reactos/dll/win32/kernel32/thread/fiber.c
trunk/reactos/lib/pseh/framebased.c
trunk/reactos/lib/rtl/exception.c
trunk/reactos/lib/sdk/libcntpr/string/atoi64.c
trunk/reactos/lib/sdk/libcntpr/string/wtoi64.c
trunk/reactos/subsystems/win32/win32k/eng/float.c
trunk/reactos/tools/nci/ncitool.c
trunk/reactos/tools/ofw_interface/calls.ofw (props changed)
trunk/reactos/tools/ofw_interface/ofw_interface.cpp (props changed)
trunk/reactos/tools/ofw_interface/ofw_interface.mak (props changed)
trunk/reactos/tools/ppc.lost+found/bootcd (props changed)
trunk/reactos/tools/ppc.lost+found/hfsmap.lst (props changed)
trunk/reactos/tools/ppc.lost+found/link-freeldr (props changed)
trunk/reactos/tools/ppc.lost+found/ofboot.b (props changed)
trunk/reactos/tools/ppc.lost+found/pmake (props changed)
Modified: trunk/reactos/dll/win32/kernel32/except/except.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/except/…
==============================================================================
--- trunk/reactos/dll/win32/kernel32/except/except.c (original)
+++ trunk/reactos/dll/win32/kernel32/except/except.c Sun Sep 2 22:05:16 2007
@@ -124,6 +124,7 @@
return psz;
}
+#ifdef _M_IX86
static VOID
_dump_context(PCONTEXT pc)
{
@@ -138,6 +139,13 @@
pc->Ebp, pc->Esi, pc->Esp);
DbgPrint("EDI: %.8x EFLAGS: %.8x\n", pc->Edi, pc->EFlags);
}
+#else
+#warning Unknown architecture
+static VOID
+_dump_context(PCONTEXT pc)
+{
+}
+#endif
static LONG
BasepCheckForReadOnlyResource(IN PVOID Ptr)
@@ -237,9 +245,9 @@
{
#ifdef _X86_
PULONG Frame;
+#endif
PVOID StartAddr;
CHAR szMod[128] = "";
-#endif
/* Print a stack trace. */
DbgPrint("Unhandled exception\n");
Modified: trunk/reactos/dll/win32/kernel32/kernel32.rbuild
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/kernel3…
==============================================================================
--- trunk/reactos/dll/win32/kernel32/kernel32.rbuild (original)
+++ trunk/reactos/dll/win32/kernel32/kernel32.rbuild Sun Sep 2 22:05:16 2007
@@ -108,10 +108,12 @@
<file>utils.c</file>
</directory>
<directory name="thread">
- <directory name="i386">
- <file>fiber.S</file>
- <file>thread.S</file>
- </directory>
+ <if property="ARCH" value="i386">
+ <directory name="i386">
+ <file>fiber.S</file>
+ <file>thread.S</file>
+ </directory>
+ </if>
</directory>
</module>
<module name="kernel32" type="win32dll"
baseaddress="${BASEADDRESS_KERNEL32}" installbase="system32"
installname="kernel32.dll">
Modified: trunk/reactos/dll/win32/kernel32/misc/dllmain.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/misc/dl…
==============================================================================
--- trunk/reactos/dll/win32/kernel32/misc/dllmain.c (original)
+++ trunk/reactos/dll/win32/kernel32/misc/dllmain.c Sun Sep 2 22:05:16 2007
@@ -257,6 +257,7 @@
{
case DLL_PROCESS_ATTACH:
+#ifdef _M_IX86
/* OK, yes, this is really retarded but it works for now */
InWindows = NtCurrentPeb()->BeingDebugged;
@@ -290,6 +291,7 @@
*Eip = (ULONG)BaseProcessStartThunk;
}
}
+#endif
/* Don't bother us for each thread */
LdrDisableThreadCalloutsForDll((PVOID)hDll);
Modified: trunk/reactos/dll/win32/kernel32/misc/utils.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/misc/ut…
==============================================================================
--- trunk/reactos/dll/win32/kernel32/misc/utils.c (original)
+++ trunk/reactos/dll/win32/kernel32/misc/utils.c Sun Sep 2 22:05:16 2007
@@ -9,7 +9,9 @@
/* INCLUDES ****************************************************************/
#include <k32.h>
+#ifdef _M_IX86
#include "i386/ketypes.h"
+#endif
#define NDEBUG
#include "../include/debug.h"
@@ -334,6 +336,7 @@
IN PVOID StackAddress,
IN ULONG ContextType)
{
+#ifdef _M_IX86
DPRINT("BasepInitializeContext: %p\n", Context);
/* Setup the Initial Win32 Thread Context */
@@ -371,6 +374,11 @@
/* Give it some room for the Parameter */
Context->Esp -= sizeof(PVOID);
+#else
+#warning Unknown architecture
+ UNIMPLEMENTED;
+ DbgBreakPoint();
+#endif
}
/*
Modified: trunk/reactos/dll/win32/kernel32/thread/fiber.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/thread/…
==============================================================================
--- trunk/reactos/dll/win32/kernel32/thread/fiber.c (original)
+++ trunk/reactos/dll/win32/kernel32/thread/fiber.c Sun Sep 2 22:05:16 2007
@@ -251,12 +251,18 @@
WINAPI
BaseFiberStartup(VOID)
{
+#ifdef _M_IX86
PFIBER Fiber = GetFiberData();
-
+
/* Call the Thread Startup Routine */
DPRINT1("Starting Fiber\n");
BaseThreadStartup((LPTHREAD_START_ROUTINE)Fiber->Context.Eax,
(LPVOID)Fiber->Context.Ebx);
+#else
+#warning Unknown architecture
+ UNIMPLEMENTED;
+ DbgBreakPoint();
+#endif
}
/* EOF */
Modified: trunk/reactos/lib/pseh/framebased.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/pseh/framebased.c?rev=…
==============================================================================
--- trunk/reactos/lib/pseh/framebased.c (original)
+++ trunk/reactos/lib/pseh/framebased.c Sun Sep 2 22:05:16 2007
@@ -150,7 +150,7 @@
} \
}
#else
-#error Unsupported platform.
+#define _SEH_TRACE_CONTEXT(FRAME_, CONTEXT_)
#endif
#define _SEH_TRACE_UNWIND(FRAME_, ARGS_) \
Modified: trunk/reactos/lib/rtl/exception.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/rtl/exception.c?rev=28…
==============================================================================
--- trunk/reactos/lib/rtl/exception.c (original)
+++ trunk/reactos/lib/rtl/exception.c Sun Sep 2 22:05:16 2007
@@ -27,9 +27,13 @@
CONTEXT Context;
NTSTATUS Status;
- /* Capture the context and fixup ESP */
+ /* Capture the context */
RtlCaptureContext(&Context);
+
+#ifdef _M_IX86
+ /* Fixup ESP */
Context.Esp += sizeof(ULONG);
+#endif
/* Save the exception address */
ExceptionRecord->ExceptionAddress = RtlpGetExceptionAddress();
@@ -75,8 +79,10 @@
/* Capture the context */
RtlCaptureContext(&Context);
+#ifdef _M_IX86
/* Add one argument to ESP */
Context.Esp += sizeof(PVOID);
+#endif
/* Create an exception record */
ExceptionRecord.ExceptionAddress = RtlpGetExceptionAddress();
@@ -123,10 +129,16 @@
ULONG i = 0;
/* Get current EBP */
+#if defined(_M_IX86)
#if defined __GNUC__
__asm__("mov %%ebp, %0" : "=r" (Stack) : );
#elif defined(_MSC_VER)
__asm mov Stack, ebp
+#endif
+#elif defined(_M_MIPS)
+ __asm__("move $sp, %0" : "=r" (Stack) : );
+#else
+#error Unknown architecture
#endif
/* Set it as the stack begin limit as well */
Modified: trunk/reactos/lib/sdk/libcntpr/string/atoi64.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/libcntpr/string/at…
==============================================================================
--- trunk/reactos/lib/sdk/libcntpr/string/atoi64.c (original)
+++ trunk/reactos/lib/sdk/libcntpr/string/atoi64.c Sun Sep 2 22:05:16 2007
@@ -1,5 +1,6 @@
#include <string.h>
#include <ctype.h>
+#include <basetsd.h>
/*
* @implemented
Modified: trunk/reactos/lib/sdk/libcntpr/string/wtoi64.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/libcntpr/string/wt…
==============================================================================
--- trunk/reactos/lib/sdk/libcntpr/string/wtoi64.c (original)
+++ trunk/reactos/lib/sdk/libcntpr/string/wtoi64.c Sun Sep 2 22:05:16 2007
@@ -1,6 +1,6 @@
#include <string.h>
#include <ctype.h>
-
+#include <basetsd.h>
/*
* @implemented
Modified: trunk/reactos/subsystems/win32/win32k/eng/float.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/en…
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/eng/float.c (original)
+++ trunk/reactos/subsystems/win32/win32k/eng/float.c Sun Sep 2 22:05:16 2007
@@ -35,6 +35,7 @@
/* DEFINES *****************************************************************/
+#ifdef _M_IX86
#ifdef __GNUC__
#define FLOAT_TO_INT(in,out) \
__asm__ __volatile__ ("fistpl %0" : "=m" (out) :
"t" (in) : "st");
@@ -42,6 +43,10 @@
#define FLOAT_TO_INT(in,out) \
__asm fld in \
__asm fistp out
+#endif
+#else
+#define FLOAT_TO_INT(in,out) \
+ out = (long)in;
#endif
/* the following deal with IEEE single-precision numbers */
Modified: trunk/reactos/tools/nci/ncitool.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/nci/ncitool.c?rev=28…
==============================================================================
--- trunk/reactos/tools/nci/ncitool.c (original)
+++ trunk/reactos/tools/nci/ncitool.c Sun Sep 2 22:05:16 2007
@@ -20,606 +20,618 @@
/* DEFINES ****************************************************************/
-#define INPUT_BUFFER_SIZE 255
+#define INPUT_BUFFER_SIZE 255
#define Arguments 7
-
-/******* Table Indexes ************/
-#define MAIN_INDEX 0x0
-#define WIN32K_INDEX 0x1000
-
-/******* Argument List ************/
-/* First, define the Databases */
-#define NativeSystemDb 0
-#define NativeGuiDb 1
-
-/* Now the Service Tables */
-#define NtosServiceTable 2
-#define Win32kServiceTable 3
-
-/* And finally, the stub files. */
-#define NtosUserStubs 4
-#define NtosKernelStubs 5
+
+/******* Table Indexes ************/
+#define MAIN_INDEX 0x0
+#define WIN32K_INDEX 0x1000
+
+/******* Argument List ************/
+/* First, define the Databases */
+#define NativeSystemDb 0
+#define NativeGuiDb 1
+
+/* Now the Service Tables */
+#define NtosServiceTable 2
+#define Win32kServiceTable 3
+
+/* And finally, the stub files. */
+#define NtosUserStubs 4
+#define NtosKernelStubs 5
#define Win32kStubs 6
-
-/********** Stub Code ************/
-
-/*
- * This stubs calls into KUSER_SHARED_DATA where either a
- * sysenter or interrupt is performed, depending on CPU support.
- */
-#if defined(__GNUC__)
-#define UserModeStub_x86 " movl $0x%x, %%eax\n" \
- " movl $KUSER_SHARED_SYSCALL, %%ecx\n" \
- " call *(%%ecx)\n" \
- " ret $0x%x\n\n"
-
-#define UserModeStub_ppc " mflr 0\n" \
- " addi 1,1,-16\n" \
- " li 0,%x\n" \
- " stw 0,1(0)\n" \
- " sc\n" \
- " lwz 0,1(0)\n" \
- " mtlr 0\n" \
- " addi 1,1,16\n" \
- " blr\n"
-#elif defined(_MSC_VER)
-#define UserModeStub_x86 " asm { \n" \
- " mov eax, %xh\n" \
- " mov ecx, KUSER_SHARED_SYSCALL\n" \
- " call [ecx]\n" \
- " ret %xh\n" \
- " }\n"
-#else
-#error Unknown compiler for inline assembler
-#endif
-
-/*
- * This stub calls KiSystemService directly with a fake INT2E stack.
- * Because EIP is pushed during the call, the handler will return here.
- */
-#if defined(__GNUC__)
-#define KernelModeStub_x86 " movl $0x%x, %%eax\n" \
- " leal 4(%%esp), %%edx\n" \
- " pushfl\n" \
- " pushl $KGDT_R0_CODE\n" \
- " call _KiSystemService\n" \
- " ret $0x%x\n\n"
-
-#define KernelModeStub_ppc " bl KiSystemService\n" \
- " rfi\n"
-#elif defined(_MSC_VER)
-#define KernelModeStub_x86 " asm { \n" \
- " mov eax, %xh\n" \
- " lea edx, [esp+4]\n" \
- " pushf\n" \
- " push KGDT_R0_CODE\n" \
- " call _KiSystemService\n" \
- " ret %xh\n" \
- " }\n"
-#else
-#error Unknown compiler for inline assembler
-#endif
-
-/***** Arch Dependent Stuff ******/
-struct ncitool_data_t {
- const char *arch;
- int args_to_bytes;
- const char *km_stub;
- const char *um_stub;
- const char *global_header;
- const char *declaration;
-};
-
-struct ncitool_data_t ncitool_data[] = {
- { "i386", 4, KernelModeStub_x86, UserModeStub_x86,
- ".global _%s@%d\n", "_%s@%d:\n" },
- { "powerpc", 4, KernelModeStub_ppc, UserModeStub_ppc,
- "\t.globl %s\n", "%s:\n" },
- { 0, }
-};
-int arch_sel = 0;
-#define ARGS_TO_BYTES(x) (x)*(ncitool_data[arch_sel].args_to_bytes)
-#define UserModeStub ncitool_data[arch_sel].um_stub
-#define KernelModeStub ncitool_data[arch_sel].km_stub
-#define GlobalHeader ncitool_data[arch_sel].global_header
-#define Declaration ncitool_data[arch_sel].declaration
-
-/* FUNCTIONS ****************************************************************/
-
-/*++
- * WriteFileHeader
- *
- * Prints out the File Header for a Stub File.
- *
- * Params:
- * StubFile - Stub File to which to write the header.
- *
- * FileDescription - Description of the Stub file to which to write the header.
- *
- * FileLocation - Name of the Stub file to which to write the header.
- *
- * Returns:
- * None.
- *
- * Remarks:
- * FileLocation is only used for printing the header.
- *
- *--*/
-void
-WriteFileHeader(FILE * StubFile,
- char* FileDescription,
- char* FileLocation)
-{
- /* This prints out the file header */
- fprintf(StubFile,
- "/* FILE: %s\n"
- " * COPYRIGHT: See COPYING in the top level directory\n"
- " * PURPOSE: %s\n"
- " * PROGRAMMER: Computer Generated File. See
tools/nci/ncitool.c\n"
- " * REMARK: DO NOT EDIT OR COMMIT MODIFICATIONS TO THIS
FILE\n"
- " */\n\n\n"
- "#include <ndk/asm.h>\n\n",
- FileDescription,
- FileLocation);
-}
-
-/*++
- * WriteFileHeader
- *
- * Prints out the File Header for a Stub File.
- *
- * Params:
- * StubFile - Stub File to which to write the header.
- *
- * FileDescription - Description of the Stub file to which to write the header.
- *
- * FileLocation - Name of the Stub file to which to write the header.
- *
- * Returns:
- * None.
- *
- * Remarks:
- * FileLocation is only used for printing the header.
- *
- *--*/
-void
-WriteStubHeader(FILE* StubFile,
- char* SyscallName,
- unsigned StackBytes)
-{
- /* Export the function */
- fprintf(StubFile, GlobalHeader, SyscallName, StackBytes);
-
- /* Define it */
- fprintf(StubFile, Declaration, SyscallName, StackBytes);
-}
-
-
-/*++
- * WriteKernelModeStub
- *
- * Prints out the Kernel Mode Stub for a System Call.
- *
- * Params:
- * StubFile - Stub File to which to write the header.
- *
- * SyscallName - Name of System Call for which to add the stub.
- *
- * StackBytes - Number of bytes on the stack to return after doing the system call.
- *
- * SyscallId - Service Descriptor Table ID for this System Call.
- *
- * Returns:
- * None.
- *
- * Remarks:
- * On i386, StackBytes is the number of arguments x 4.
- *
- *--*/
-void
-WriteKernelModeStub(FILE* StubFile,
- char* SyscallName,
- unsigned StackBytes,
- unsigned int SyscallId)
-{
- /* Write the Stub Header and export the Function */
- WriteStubHeader(StubFile, SyscallName, StackBytes);
-
- /* Write the Stub Code */
- fprintf(StubFile, KernelModeStub, SyscallId, StackBytes);
-}
-
-/*++
- * WriteUserModeStub
- *
- * Prints out the User Mode Stub for a System Call.
- *
- * Params:
- * StubFile - Stub File to which to write the header.
- *
- * SyscallName - Name of System Call for which to add the stub.
- *
- * StackBytes - Number of bytes on the stack to return after doing the system call.
- *
- * SyscallId - Service Descriptor Table ID for this System Call.
- *
- * Returns:
- * None.
- *
- * Remarks:
- * On i386, StackBytes is the number of arguments x 4.
- *
- *--*/
-void
-WriteUserModeStub(FILE* StubFile,
- char* SyscallName,
- unsigned StackBytes,
- unsigned int SyscallId)
-{
- /* Write the Stub Header and export the Function */
- WriteStubHeader(StubFile, SyscallName, StackBytes);
-
- /* Write the Stub Code */
- fprintf(StubFile, UserModeStub, SyscallId, StackBytes);
-}
-
-/*++
- * GetNameAndArgumentsFromDb
- *
- * Parses an entry from a System Call Database, extracting
- * the function's name and arguments that it takes.
- *
- * Params:
- * Line - Entry from the Database to parse.
- *
- * NtSyscallName - Output string to which to save the Function Name
- *
- * SyscallArguments - Output string to which to save the number of
- * arguments that the function takes.
- *
- * Returns:
- * None.
- *
- * Remarks:
- * On i386, StackBytes is the number of arguments x 4.
- *
- *--*/
-void
-GetNameAndArgumentsFromDb(char Line[],
- char ** NtSyscallName,
- char ** SyscallArguments)
-{
- char *s;
- char *stmp;
-
- /* Remove new line */
- if ((s = (char *) strchr(Line,'\r')) != NULL) {
- *s = '\0';
- }
-
- /* Skip comments (#) and empty lines */
- s = &Line[0];
- if ((*s) != '#' && (*s) != '\0') {
-
- /* Extract the NtXXX name */
- *NtSyscallName = (char *)strtok(s," \t");
-
- /* Extract the argument count */
- *SyscallArguments = (char *)strtok(NULL," \t");
-
- /* Remove, if present, the trailing LF */
- if ((stmp = strchr(*SyscallArguments, '\n')) != NULL) {
- *stmp = '\0';
- }
-
- } else {
-
- /* Skip this entry */
- *NtSyscallName = NULL;
- *SyscallArguments = NULL;
- }
-}
-
-/*++
- * CreateStubs
- *
- * Parses a System Call Database and creates stubs for all the entries.
- *
- * Params:
- * SyscallDb - System Call Database to parse.
- *
- * UserModeFiles - Array of Usermode Stub Files to which to write the stubs.
- *
- * KernelModeFile - Kernelmode Stub Files to which to write the stubs.
- *
+
+/********** Stub Code ************/
+
+/*
+ * This stubs calls into KUSER_SHARED_DATA where either a
+ * sysenter or interrupt is performed, depending on CPU support.
+ */
+#if defined(__GNUC__)
+#define UserModeStub_x86 " movl $0x%x, %%eax\n" \
+ " movl $KUSER_SHARED_SYSCALL, %%ecx\n" \
+ " call *(%%ecx)\n" \
+ " ret $0x%x\n\n"
+
+#define UserModeStub_ppc " mflr 0\n" \
+ " addi 1,1,-16\n" \
+ " li 0,%x\n" \
+ " stw 0,1(0)\n" \
+ " sc\n" \
+ " lwz 0,1(0)\n" \
+ " mtlr 0\n" \
+ " addi 1,1,16\n" \
+ " blr\n"
+
+#define UserModeStub_mips " li $8, KUSER_SHARED_SYSCALL\n" \
+ " lw $8,0($8)\n" \
+ " j $8\n" \
+ " nop\n"
+
+#elif defined(_MSC_VER)
+#define UserModeStub_x86 " asm { \n" \
+ " mov eax, %xh\n" \
+ " mov ecx, KUSER_SHARED_SYSCALL\n" \
+ " call [ecx]\n" \
+ " ret %xh\n" \
+ " }\n"
+#else
+#error Unknown compiler for inline assembler
+#endif
+
+/*
+ * This stub calls KiSystemService directly with a fake INT2E stack.
+ * Because EIP is pushed during the call, the handler will return here.
+ */
+#if defined(__GNUC__)
+#define KernelModeStub_x86 " movl $0x%x, %%eax\n" \
+ " leal 4(%%esp), %%edx\n" \
+ " pushfl\n" \
+ " pushl $KGDT_R0_CODE\n" \
+ " call _KiSystemService\n" \
+ " ret $0x%x\n\n"
+
+#define KernelModeStub_ppc " bl KiSystemService\n" \
+ " rfi\n"
+
+#define KernelModeStub_mips " j KiSystemService\n" \
+ " nop\n"
+
+#elif defined(_MSC_VER)
+#define KernelModeStub_x86 " asm { \n" \
+ " mov eax, %xh\n" \
+ " lea edx, [esp+4]\n" \
+ " pushf\n" \
+ " push KGDT_R0_CODE\n" \
+ " call _KiSystemService\n" \
+ " ret %xh\n" \
+ " }\n"
+#else
+#error Unknown compiler for inline assembler
+#endif
+
+/***** Arch Dependent Stuff ******/
+struct ncitool_data_t {
+ const char *arch;
+ int args_to_bytes;
+ const char *km_stub;
+ const char *um_stub;
+ const char *global_header;
+ const char *declaration;
+};
+
+struct ncitool_data_t ncitool_data[] = {
+ { "i386", 4, KernelModeStub_x86, UserModeStub_x86,
+ ".global _%s@%d\n", "_%s@%d:\n" },
+ { "powerpc", 4, KernelModeStub_ppc, UserModeStub_ppc,
+ "\t.globl %s\n", "%s:\n" },
+ { "mips", 4, KernelModeStub_mips, UserModeStub_mips,
+ "\t.globl %s\n", "%s:\n" },
+ { 0, }
+};
+int arch_sel = 0;
+#define ARGS_TO_BYTES(x) (x)*(ncitool_data[arch_sel].args_to_bytes)
+#define UserModeStub ncitool_data[arch_sel].um_stub
+#define KernelModeStub ncitool_data[arch_sel].km_stub
+#define GlobalHeader ncitool_data[arch_sel].global_header
+#define Declaration ncitool_data[arch_sel].declaration
+
+/* FUNCTIONS ****************************************************************/
+
+/*++
+ * WriteFileHeader
+ *
+ * Prints out the File Header for a Stub File.
+ *
+ * Params:
+ * StubFile - Stub File to which to write the header.
+ *
+ * FileDescription - Description of the Stub file to which to write the header.
+ *
+ * FileLocation - Name of the Stub file to which to write the header.
+ *
+ * Returns:
+ * None.
+ *
+ * Remarks:
+ * FileLocation is only used for printing the header.
+ *
+ *--*/
+void
+WriteFileHeader(FILE * StubFile,
+ char* FileDescription,
+ char* FileLocation)
+{
+ /* This prints out the file header */
+ fprintf(StubFile,
+ "/* FILE: %s\n"
+ " * COPYRIGHT: See COPYING in the top level directory\n"
+ " * PURPOSE: %s\n"
+ " * PROGRAMMER: Computer Generated File. See
tools/nci/ncitool.c\n"
+ " * REMARK: DO NOT EDIT OR COMMIT MODIFICATIONS TO THIS
FILE\n"
+ " */\n\n\n"
+ "#include <ndk/asm.h>\n\n",
+ FileDescription,
+ FileLocation);
+}
+
+/*++
+ * WriteFileHeader
+ *
+ * Prints out the File Header for a Stub File.
+ *
+ * Params:
+ * StubFile - Stub File to which to write the header.
+ *
+ * FileDescription - Description of the Stub file to which to write the header.
+ *
+ * FileLocation - Name of the Stub file to which to write the header.
+ *
+ * Returns:
+ * None.
+ *
+ * Remarks:
+ * FileLocation is only used for printing the header.
+ *
+ *--*/
+void
+WriteStubHeader(FILE* StubFile,
+ char* SyscallName,
+ unsigned StackBytes)
+{
+ /* Export the function */
+ fprintf(StubFile, GlobalHeader, SyscallName, StackBytes);
+
+ /* Define it */
+ fprintf(StubFile, Declaration, SyscallName, StackBytes);
+}
+
+
+/*++
+ * WriteKernelModeStub
+ *
+ * Prints out the Kernel Mode Stub for a System Call.
+ *
+ * Params:
+ * StubFile - Stub File to which to write the header.
+ *
+ * SyscallName - Name of System Call for which to add the stub.
+ *
+ * StackBytes - Number of bytes on the stack to return after doing the system call.
+ *
+ * SyscallId - Service Descriptor Table ID for this System Call.
+ *
+ * Returns:
+ * None.
+ *
+ * Remarks:
+ * On i386, StackBytes is the number of arguments x 4.
+ *
+ *--*/
+void
+WriteKernelModeStub(FILE* StubFile,
+ char* SyscallName,
+ unsigned StackBytes,
+ unsigned int SyscallId)
+{
+ /* Write the Stub Header and export the Function */
+ WriteStubHeader(StubFile, SyscallName, StackBytes);
+
+ /* Write the Stub Code */
+ fprintf(StubFile, KernelModeStub, SyscallId, StackBytes);
+}
+
+/*++
+ * WriteUserModeStub
+ *
+ * Prints out the User Mode Stub for a System Call.
+ *
+ * Params:
+ * StubFile - Stub File to which to write the header.
+ *
+ * SyscallName - Name of System Call for which to add the stub.
+ *
+ * StackBytes - Number of bytes on the stack to return after doing the system call.
+ *
+ * SyscallId - Service Descriptor Table ID for this System Call.
+ *
+ * Returns:
+ * None.
+ *
+ * Remarks:
+ * On i386, StackBytes is the number of arguments x 4.
+ *
+ *--*/
+void
+WriteUserModeStub(FILE* StubFile,
+ char* SyscallName,
+ unsigned StackBytes,
+ unsigned int SyscallId)
+{
+ /* Write the Stub Header and export the Function */
+ WriteStubHeader(StubFile, SyscallName, StackBytes);
+
+ /* Write the Stub Code */
+ fprintf(StubFile, UserModeStub, SyscallId, StackBytes);
+}
+
+/*++
+ * GetNameAndArgumentsFromDb
+ *
+ * Parses an entry from a System Call Database, extracting
+ * the function's name and arguments that it takes.
+ *
+ * Params:
+ * Line - Entry from the Database to parse.
+ *
+ * NtSyscallName - Output string to which to save the Function Name
+ *
+ * SyscallArguments - Output string to which to save the number of
+ * arguments that the function takes.
+ *
+ * Returns:
+ * None.
+ *
+ * Remarks:
+ * On i386, StackBytes is the number of arguments x 4.
+ *
+ *--*/
+void
+GetNameAndArgumentsFromDb(char Line[],
+ char ** NtSyscallName,
+ char ** SyscallArguments)
+{
+ char *s;
+ char *stmp;
+
+ /* Remove new line */
+ if ((s = (char *) strchr(Line,'\r')) != NULL) {
+ *s = '\0';
+ }
+
+ /* Skip comments (#) and empty lines */
+ s = &Line[0];
+ if ((*s) != '#' && (*s) != '\0') {
+
+ /* Extract the NtXXX name */
+ *NtSyscallName = (char *)strtok(s," \t");
+
+ /* Extract the argument count */
+ *SyscallArguments = (char *)strtok(NULL," \t");
+
+ /* Remove, if present, the trailing LF */
+ if ((stmp = strchr(*SyscallArguments, '\n')) != NULL) {
+ *stmp = '\0';
+ }
+
+ } else {
+
+ /* Skip this entry */
+ *NtSyscallName = NULL;
+ *SyscallArguments = NULL;
+ }
+}
+
+/*++
+ * CreateStubs
+ *
+ * Parses a System Call Database and creates stubs for all the entries.
+ *
+ * Params:
+ * SyscallDb - System Call Database to parse.
+ *
+ * UserModeFiles - Array of Usermode Stub Files to which to write the stubs.
+ *
+ * KernelModeFile - Kernelmode Stub Files to which to write the stubs.
+ *
* Index - Number of first syscall
- *
+ *
* UserFiles - Number of Usermode Stub Files to create
- *
+ *
* NeedsZw - Write Zw prefix?
- *
- * Returns:
- * None.
- *
- * Remarks:
- * None.
- *
- *--*/
-void
-CreateStubs(FILE * SyscallDb,
- FILE * UserModeFiles[],
- FILE * KernelModeFile,
- unsigned Index,
- unsigned UserFiles,
- unsigned NeedsZw)
-{
- char Line[INPUT_BUFFER_SIZE];
- char *NtSyscallName;
- char *SyscallArguments;
- int SyscallId;
- unsigned StackBytes;
-
- /* We loop, incrementing the System Call Index, until the end of the file */
- for (SyscallId = 0; ((!feof(SyscallDb)) && (fgets(Line, sizeof(Line),
SyscallDb) != NULL));) {
-
- /* Extract the Name and Arguments */
- GetNameAndArgumentsFromDb(Line, &NtSyscallName, &SyscallArguments);
- if (SyscallArguments != NULL)
- StackBytes = ARGS_TO_BYTES(strtoul(SyscallArguments, NULL, 0));
- else
- StackBytes = 0;
-
- /* Make sure we really extracted something */
- if (NtSyscallName) {
-
- /* Create Usermode Stubs for Nt/Zw syscalls in each Usermode file */
- int i;
- for (i= 0; i < UserFiles; i++) {
-
- /* Write the Nt Version */
- WriteUserModeStub(UserModeFiles[i],
- NtSyscallName,
- StackBytes,
- SyscallId | Index);
-
- /* If a Zw Version is needed (was specified), write it too */
- if (NeedsZw) {
-
- NtSyscallName[0] = 'Z';
- NtSyscallName[1] = 'w';
- WriteUserModeStub(UserModeFiles[i],
- NtSyscallName,
- StackBytes,
- SyscallId | Index);
- }
-
- }
-
- /* Create the Kernel coutnerparts (only Zw*, Nt* are the real functions!) */
- if (KernelModeFile) {
-
- NtSyscallName[0] = 'Z';
- NtSyscallName[1] = 'w';
- WriteKernelModeStub(KernelModeFile,
- NtSyscallName,
- StackBytes,
- SyscallId | Index);
- }
-
- /* Only increase if we actually added something */
- SyscallId++;
- }
- }
-}
-
-/*++
- * CreateSystemServiceTable
- *
- * Parses a System Call Database and creates a System Call Service Table for it.
- *
- * Params:
- * SyscallDb - System Call Database to parse.
- *
- * SyscallTable - File in where to create System Call Service Table.
- *
- * Name - Name of the Service Table.
- *
- * FileLocation - Filename containing the Table.
- *
- * Returns:
- * None.
- *
- * Remarks:
- * FileLocation is only used for the header generation.
- *
- *--*/
-void
-CreateSystemServiceTable(FILE *SyscallDb,
- FILE *SyscallTable,
- char * Name,
- char * FileLocation)
-{
- char Line[INPUT_BUFFER_SIZE];
- char *NtSyscallName;
- char *SyscallArguments;
- int SyscallId;
-
- /* Print the Header */
- WriteFileHeader(SyscallTable, "System Call Table for Native API",
FileLocation);
-
- /* First we build the SSDT */
- fprintf(SyscallTable,"\n\n\n");
- fprintf(SyscallTable,"ULONG_PTR %sSSDT[] = {\n", Name);
-
- /* We loop, incrementing the System Call Index, until the end of the file */
- for (SyscallId = 0; ((!feof(SyscallDb)) && (fgets(Line, sizeof(Line),
SyscallDb) != NULL));) {
-
- /* Extract the Name and Arguments */
- GetNameAndArgumentsFromDb(Line, &NtSyscallName, &SyscallArguments);
-
- /* Make sure we really extracted something */
- if (NtSyscallName) {
-
- /* Add a new line */
- if (SyscallId > 0) fprintf(SyscallTable,",\n");
-
- /* Write the syscall name in the service table. */
- fprintf(SyscallTable,"\t\t(ULONG_PTR)%s", NtSyscallName);
-
- /* Only increase if we actually added something */
- SyscallId++;
- }
- }
-
- /* Close the service table (C syntax) */
- fprintf(SyscallTable,"\n};\n");
-
- /* Now we build the SSPT */
- rewind(SyscallDb);
- fprintf(SyscallTable,"\n\n\n");
- fprintf(SyscallTable,"UCHAR %sSSPT[] = {\n", Name);
-
- for (SyscallId = 0; ((!feof(SyscallDb)) && (fgets(Line, sizeof(Line),
SyscallDb) != NULL));) {
-
- /* Extract the Name and Arguments */
- GetNameAndArgumentsFromDb(Line, &NtSyscallName, &SyscallArguments);
-
- /* Make sure we really extracted something */
- if (NtSyscallName) {
-
- /* Add a new line */
- if (SyscallId > 0) fprintf(SyscallTable,",\n");
-
- /* Write the syscall arguments in the argument table. */
- if (SyscallArguments != NULL)
- fprintf(SyscallTable,"\t\t%lu * sizeof(void
*)",strtoul(SyscallArguments, NULL, 0));
- else
- fprintf(SyscallTable,"\t\t0");
-
- /* Only increase if we actually added something */
- SyscallId++;
- }
- }
-
- /* Close the service table (C syntax) */
- fprintf(SyscallTable,"\n};\n");
-
- /*
- * We write some useful defines
- */
- fprintf(SyscallTable, "\n\n#define MIN_SYSCALL_NUMBER 0\n");
- fprintf(SyscallTable, "#define MAX_SYSCALL_NUMBER %d\n", SyscallId -
1);
- fprintf(SyscallTable, "#define NUMBER_OF_SYSCALLS %d\n", SyscallId);
- fprintf(SyscallTable, "ULONG %sNumberOfSysCalls = %d;\n", Name,
SyscallId);
-}
-
-void usage(char * argv0)
-{
- printf("Usage: %s [-arch <arch>] sysfuncs.lst w32ksvc.db napi.h ssdt.h
napi.S zw.S win32k.S win32k.S\n"
- " sysfuncs.lst native system functions database\n"
- " w32ksvc.db native graphic functions database\n"
- " napi.h NTOSKRNL service table\n"
- " ssdt.h WIN32K service table\n"
- " napi.S NTDLL stubs\n"
- " zw.S NTOSKRNL Zw stubs\n"
- " win32k.S GDI32 stubs\n"
- " win32k.S USER32 stubs\n"
- " -arch is optional, default is %s\n",
- argv0,
- ncitool_data[0].arch
- );
-}
-
-int main(int argc, char* argv[])
-{
- FILE * Files[Arguments] = { };
- int FileNumber, ArgOffset = 1;
- char * OpenType = "r";
-
- /* Catch architecture argument */
- if (argc > 3 && !strcmp(argv[1],"-arch")) {
- for( arch_sel = 0; ncitool_data[arch_sel].arch; arch_sel++ )
- if (strcmp(argv[2],ncitool_data[arch_sel].arch) == 0)
- break;
- if (!ncitool_data[arch_sel].arch) {
- printf("Invalid arch '%s'\n", argv[2]);
- usage(argv[0]);
- return 1;
- }
- ArgOffset = 3;
- }
- /* Make sure all arguments all there */
- if (argc != Arguments + ArgOffset) {
- usage(argv[0]);
- return(1);
- }
-
- /* Open all Output and bail out if any fail */
- for (FileNumber = 0; FileNumber < Arguments; FileNumber++) {
-
- /* Open the File */
- if (FileNumber == 2) OpenType = "wb";
- Files[FileNumber] = fopen(argv[FileNumber + ArgOffset], OpenType);
-
- /* Check for failure and error out if so */
- if (!Files[FileNumber]) {
- perror(argv[FileNumber + ArgOffset]);
- return (1);
- }
- }
-
- /* Write the File Headers */
- WriteFileHeader(Files[NtosUserStubs],
- "System Call Stubs for Native API",
- argv[NtosUserStubs + ArgOffset]);
-
- WriteFileHeader(Files[NtosKernelStubs],
- "System Call Stubs for Native API",
- argv[NtosKernelStubs + ArgOffset]);
- fputs("#include <ndk/asm.h>\n\n", Files[NtosKernelStubs]);
-
+ *
+ * Returns:
+ * None.
+ *
+ * Remarks:
+ * None.
+ *
+ *--*/
+void
+CreateStubs(FILE * SyscallDb,
+ FILE * UserModeFiles[],
+ FILE * KernelModeFile,
+ unsigned Index,
+ unsigned UserFiles,
+ unsigned NeedsZw)
+{
+ char Line[INPUT_BUFFER_SIZE];
+ char *NtSyscallName;
+ char *SyscallArguments;
+ int SyscallId;
+ unsigned StackBytes;
+
+ /* We loop, incrementing the System Call Index, until the end of the file */
+ for (SyscallId = 0; ((!feof(SyscallDb)) && (fgets(Line, sizeof(Line),
SyscallDb) != NULL));) {
+
+ /* Extract the Name and Arguments */
+ GetNameAndArgumentsFromDb(Line, &NtSyscallName, &SyscallArguments);
+ if (SyscallArguments != NULL)
+ StackBytes = ARGS_TO_BYTES(strtoul(SyscallArguments, NULL, 0));
+ else
+ StackBytes = 0;
+
+ /* Make sure we really extracted something */
+ if (NtSyscallName) {
+
+ /* Create Usermode Stubs for Nt/Zw syscalls in each Usermode file */
+ int i;
+ for (i= 0; i < UserFiles; i++) {
+
+ /* Write the Nt Version */
+ WriteUserModeStub(UserModeFiles[i],
+ NtSyscallName,
+ StackBytes,
+ SyscallId | Index);
+
+ /* If a Zw Version is needed (was specified), write it too */
+ if (NeedsZw) {
+
+ NtSyscallName[0] = 'Z';
+ NtSyscallName[1] = 'w';
+ WriteUserModeStub(UserModeFiles[i],
+ NtSyscallName,
+ StackBytes,
+ SyscallId | Index);
+ }
+
+ }
+
+ /* Create the Kernel coutnerparts (only Zw*, Nt* are the real functions!) */
+ if (KernelModeFile) {
+
+ NtSyscallName[0] = 'Z';
+ NtSyscallName[1] = 'w';
+ WriteKernelModeStub(KernelModeFile,
+ NtSyscallName,
+ StackBytes,
+ SyscallId | Index);
+ }
+
+ /* Only increase if we actually added something */
+ SyscallId++;
+ }
+ }
+}
+
+/*++
+ * CreateSystemServiceTable
+ *
+ * Parses a System Call Database and creates a System Call Service Table for it.
+ *
+ * Params:
+ * SyscallDb - System Call Database to parse.
+ *
+ * SyscallTable - File in where to create System Call Service Table.
+ *
+ * Name - Name of the Service Table.
+ *
+ * FileLocation - Filename containing the Table.
+ *
+ * Returns:
+ * None.
+ *
+ * Remarks:
+ * FileLocation is only used for the header generation.
+ *
+ *--*/
+void
+CreateSystemServiceTable(FILE *SyscallDb,
+ FILE *SyscallTable,
+ char * Name,
+ char * FileLocation)
+{
+ char Line[INPUT_BUFFER_SIZE];
+ char *NtSyscallName;
+ char *SyscallArguments;
+ int SyscallId;
+
+ /* Print the Header */
+ WriteFileHeader(SyscallTable, "System Call Table for Native API",
FileLocation);
+
+ /* First we build the SSDT */
+ fprintf(SyscallTable,"\n\n\n");
+ fprintf(SyscallTable,"ULONG_PTR %sSSDT[] = {\n", Name);
+
+ /* We loop, incrementing the System Call Index, until the end of the file */
+ for (SyscallId = 0; ((!feof(SyscallDb)) && (fgets(Line, sizeof(Line),
SyscallDb) != NULL));) {
+
+ /* Extract the Name and Arguments */
+ GetNameAndArgumentsFromDb(Line, &NtSyscallName, &SyscallArguments);
+
+ /* Make sure we really extracted something */
+ if (NtSyscallName) {
+
+ /* Add a new line */
+ if (SyscallId > 0) fprintf(SyscallTable,",\n");
+
+ /* Write the syscall name in the service table. */
+ fprintf(SyscallTable,"\t\t(ULONG_PTR)%s", NtSyscallName);
+
+ /* Only increase if we actually added something */
+ SyscallId++;
+ }
+ }
+
+ /* Close the service table (C syntax) */
+ fprintf(SyscallTable,"\n};\n");
+
+ /* Now we build the SSPT */
+ rewind(SyscallDb);
+ fprintf(SyscallTable,"\n\n\n");
+ fprintf(SyscallTable,"UCHAR %sSSPT[] = {\n", Name);
+
+ for (SyscallId = 0; ((!feof(SyscallDb)) && (fgets(Line, sizeof(Line),
SyscallDb) != NULL));) {
+
+ /* Extract the Name and Arguments */
+ GetNameAndArgumentsFromDb(Line, &NtSyscallName, &SyscallArguments);
+
+ /* Make sure we really extracted something */
+ if (NtSyscallName) {
+
+ /* Add a new line */
+ if (SyscallId > 0) fprintf(SyscallTable,",\n");
+
+ /* Write the syscall arguments in the argument table. */
+ if (SyscallArguments != NULL)
+ fprintf(SyscallTable,"\t\t%lu * sizeof(void
*)",strtoul(SyscallArguments, NULL, 0));
+ else
+ fprintf(SyscallTable,"\t\t0");
+
+ /* Only increase if we actually added something */
+ SyscallId++;
+ }
+ }
+
+ /* Close the service table (C syntax) */
+ fprintf(SyscallTable,"\n};\n");
+
+ /*
+ * We write some useful defines
+ */
+ fprintf(SyscallTable, "\n\n#define MIN_SYSCALL_NUMBER 0\n");
+ fprintf(SyscallTable, "#define MAX_SYSCALL_NUMBER %d\n", SyscallId -
1);
+ fprintf(SyscallTable, "#define NUMBER_OF_SYSCALLS %d\n", SyscallId);
+ fprintf(SyscallTable, "ULONG %sNumberOfSysCalls = %d;\n", Name,
SyscallId);
+}
+
+void usage(char * argv0)
+{
+ printf("Usage: %s [-arch <arch>] sysfuncs.lst w32ksvc.db napi.h ssdt.h
napi.S zw.S win32k.S win32k.S\n"
+ " sysfuncs.lst native system functions database\n"
+ " w32ksvc.db native graphic functions database\n"
+ " napi.h NTOSKRNL service table\n"
+ " ssdt.h WIN32K service table\n"
+ " napi.S NTDLL stubs\n"
+ " zw.S NTOSKRNL Zw stubs\n"
+ " win32k.S GDI32 stubs\n"
+ " win32k.S USER32 stubs\n"
+ " -arch is optional, default is %s\n",
+ argv0,
+ ncitool_data[0].arch
+ );
+}
+
+int main(int argc, char* argv[])
+{
+ FILE * Files[Arguments] = { };
+ int FileNumber, ArgOffset = 1;
+ char * OpenType = "r";
+
+ /* Catch architecture argument */
+ if (argc > 3 && !strcmp(argv[1],"-arch")) {
+ for( arch_sel = 0; ncitool_data[arch_sel].arch; arch_sel++ )
+ if (strcmp(argv[2],ncitool_data[arch_sel].arch) == 0)
+ break;
+ if (!ncitool_data[arch_sel].arch) {
+ printf("Invalid arch '%s'\n", argv[2]);
+ usage(argv[0]);
+ return 1;
+ }
+ ArgOffset = 3;
+ }
+ /* Make sure all arguments all there */
+ if (argc != Arguments + ArgOffset) {
+ usage(argv[0]);
+ return(1);
+ }
+
+ /* Open all Output and bail out if any fail */
+ for (FileNumber = 0; FileNumber < Arguments; FileNumber++) {
+
+ /* Open the File */
+ if (FileNumber == 2) OpenType = "wb";
+ Files[FileNumber] = fopen(argv[FileNumber + ArgOffset], OpenType);
+
+ /* Check for failure and error out if so */
+ if (!Files[FileNumber]) {
+ perror(argv[FileNumber + ArgOffset]);
+ return (1);
+ }
+ }
+
+ /* Write the File Headers */
+ WriteFileHeader(Files[NtosUserStubs],
+ "System Call Stubs for Native API",
+ argv[NtosUserStubs + ArgOffset]);
+
+ WriteFileHeader(Files[NtosKernelStubs],
+ "System Call Stubs for Native API",
+ argv[NtosKernelStubs + ArgOffset]);
+ fputs("#include <ndk/asm.h>\n\n", Files[NtosKernelStubs]);
+
WriteFileHeader(Files[Win32kStubs],
- "System Call Stubs for Native API",
+ "System Call Stubs for Native API",
argv[Win32kStubs + ArgOffset]);
-
- /* Create the System Stubs */
- CreateStubs(Files[NativeSystemDb],
- &Files[NtosUserStubs],
- Files[NtosKernelStubs],
- MAIN_INDEX,
+
+ /* Create the System Stubs */
+ CreateStubs(Files[NativeSystemDb],
+ &Files[NtosUserStubs],
+ Files[NtosKernelStubs],
+ MAIN_INDEX,
+ 1,
+ 1);
+
+ /* Create the Graphics Stubs */
+ CreateStubs(Files[NativeGuiDb],
+ &Files[Win32kStubs],
+ NULL,
+ WIN32K_INDEX,
1,
- 1);
-
- /* Create the Graphics Stubs */
- CreateStubs(Files[NativeGuiDb],
- &Files[Win32kStubs],
- NULL,
- WIN32K_INDEX,
- 1,
- 0);
-
- /* Rewind the databases */
- rewind(Files[NativeSystemDb]);
- rewind(Files[NativeGuiDb]);
-
- /* Create the Service Tables */
- CreateSystemServiceTable(Files[NativeSystemDb],
- Files[NtosServiceTable],
- "Main",
- argv[NtosServiceTable + ArgOffset]);
-
- CreateSystemServiceTable(Files[NativeGuiDb],
- Files[Win32kServiceTable],
- "Win32k",
- argv[Win32kServiceTable + ArgOffset]);
-
- /* Close all files */
- for (FileNumber = 0; FileNumber < Arguments-ArgOffset; FileNumber++) {
-
- /* Close the File */
- fclose(Files[FileNumber]);
-
- }
-
- return(0);
-}
+ 0);
+
+ /* Rewind the databases */
+ rewind(Files[NativeSystemDb]);
+ rewind(Files[NativeGuiDb]);
+
+ /* Create the Service Tables */
+ CreateSystemServiceTable(Files[NativeSystemDb],
+ Files[NtosServiceTable],
+ "Main",
+ argv[NtosServiceTable + ArgOffset]);
+
+ CreateSystemServiceTable(Files[NativeGuiDb],
+ Files[Win32kServiceTable],
+ "Win32k",
+ argv[Win32kServiceTable + ArgOffset]);
+
+ /* Close all files */
+ for (FileNumber = 0; FileNumber < Arguments-ArgOffset; FileNumber++) {
+
+ /* Close the File */
+ fclose(Files[FileNumber]);
+
+ }
+
+ return(0);
+}
Propchange: trunk/reactos/tools/ofw_interface/calls.ofw
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: trunk/reactos/tools/ofw_interface/ofw_interface.cpp
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: trunk/reactos/tools/ofw_interface/ofw_interface.mak
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: trunk/reactos/tools/ppc.lost+found/bootcd
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: trunk/reactos/tools/ppc.lost+found/hfsmap.lst
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: trunk/reactos/tools/ppc.lost+found/link-freeldr
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: trunk/reactos/tools/ppc.lost+found/ofboot.b
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: trunk/reactos/tools/ppc.lost+found/pmake
------------------------------------------------------------------------------
svn:eol-style = native