Author: akhaldi
Date: Tue Nov 2 17:04:44 2010
New Revision: 49446
URL:
http://svn.reactos.org/svn/reactos?rev=49446&view=rev
Log:
[CMAKE]
- Improve ncitool. By Timo.
Modified:
branches/cmake-bringup/tools/nci/ncitool.c
Modified: branches/cmake-bringup/tools/nci/ncitool.c
URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/tools/nci/ncitool…
==============================================================================
--- branches/cmake-bringup/tools/nci/ncitool.c [iso-8859-1] (original)
+++ branches/cmake-bringup/tools/nci/ncitool.c [iso-8859-1] Tue Nov 2 17:04:44 2010
@@ -83,17 +83,16 @@
* 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" \
+#define KernelModeStub_x86 " mov eax, %d\n" \
+ " lea edx, [esp + 4]\n" \
+ " pushf\n" \
+ " push KGDT_R0_CODE\n" \
" call _KiSystemService\n" \
- " ret $0x%x\n\n"
-
-#define KernelModeStub_amd64 " movl $0x%x, %%eax\n" \
+ " ret %d\n\n"
+
+#define KernelModeStub_amd64 " mov eax, %d\n" \
" call KiSystemService\n" \
- " ret $0x%x\n\n"
+ " ret %d\n\n"
/* For now, use the usermode stub. We'll optimize later */
#define KernelModeStub_ppc UserModeStub_ppc
@@ -104,28 +103,6 @@
#define KernelModeStub_arm " mov ip, lr\n" \
" swi #0x%x\n" \
" bx ip\n\n"
-
-#elif defined(_MSC_VER)
-#define KernelModeStub_x86 " mov eax, %xh\n" \
- " lea edx, [esp+4]\n" \
- " pushf\n" \
- " push KGDT_R0_CODE\n" \
- " call _KiSystemService\n" \
- " ret %xh\n"
-
-#define KernelModeStub_amd64 " mov eax, %xh\n" \
- " call KiSystemService\n" \
- " ret %xh\n\n"
-
-#define KernelModeStub_ppc " \n"
-
-#define KernelModeStub_mips " \n"
-
-#define KernelModeStub_arm " \n"
-
-#else
-#error Unknown compiler for inline assembler
-#endif
/***** Arch Dependent Stuff ******/
struct ncitool_data_t {
@@ -191,10 +168,12 @@
" * PROGRAMMER: Computer Generated File. See
tools/nci/ncitool.c\n"
" * REMARK: DO NOT EDIT OR COMMIT MODIFICATIONS TO THIS
FILE\n"
" */\n\n\n"
+ "#ifdef __ASM__\n"
"#include <reactos/asm.h>\n"
- "#include <ndk/asm.h>\n\n"
-
- ".code\n",
+ ".code\n"
+ "#endif\n"
+ "#include <ndk/asm.h>\n\n",
+
FileDescription,
FileLocation);
}
@@ -776,3 +755,4 @@
return(0);
}
+