X-Git-Url: https://git.reactos.org/?p=reactos.git;a=blobdiff_plain;f=reactos%2Ftools%2Fnci%2Fncitool.c;fp=reactos%2Ftools%2Fnci%2Fncitool.c;h=908c3cd939c24778da0a0b45236e0bb2fdce6cd5;hp=712a5976e32b7d74c1ff2f0fbd2d3102cea9d7db;hb=0e5cca2a4e6745e196defc02786f01862363a5aa;hpb=2a58de26de8f3f453216c73840ba42ceed136349 diff --git a/reactos/tools/nci/ncitool.c b/reactos/tools/nci/ncitool.c index 712a5976e32..908c3cd939c 100644 --- a/reactos/tools/nci/ncitool.c +++ b/reactos/tools/nci/ncitool.c @@ -51,7 +51,7 @@ #if defined(__GNUC__) #define UserModeStub_x86 " movl $0x%x, %%eax\n" \ " movl $KUSER_SHARED_SYSCALL, %%ecx\n" \ - " call *%%ecx\n" \ + " call *(%%ecx)\n" \ " ret $0x%x\n\n" #define UserModeStub_ppc " mflr 0\n" \ @@ -112,11 +112,11 @@ struct ncitool_data_t { }; struct ncitool_data_t ncitool_data[] = { - { "x86", 4, KernelModeStub_x86, UserModeStub_x86, + { "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 } + { 0, } }; int arch_sel = 0; #define ARGS_TO_BYTES(x) 4*(ncitool_data[arch_sel].args_to_bytes) @@ -525,8 +525,9 @@ void usage(char * argv0) " zw.S NTOSKRNL Zw stubs\n" " win32k.S GDI32 stubs\n" " win32k.S USER32 stubs\n" - " -arch is optional, default is x86\n", - argv0 + " -arch is optional, default is %s\n", + argv0, + ncitool_data[0].arch ); } @@ -538,14 +539,15 @@ int main(int argc, char* argv[]) /* Catch architecture argument */ if (argc > 3 && !strcmp(argv[1],"-arch")) { - int i; - for( i = 0; ncitool_data[arch_sel].arch && strcmp(argv[2],ncitool_data[i].arch); i++ ); - if (!ncitool_data[arch_sel].arch) { - usage(argv[0]); - return 1; - } - arch_sel = i; - ArgOffset = 3; + 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) { @@ -565,7 +567,6 @@ int main(int argc, char* argv[]) perror(argv[FileNumber + ArgOffset]); return (1); } - } /* Write the File Headers */