Author: greatlrd Date: Tue Jan 2 05:21:58 2007 New Revision: 25272
URL: http://svn.reactos.org/svn/reactos?rev=25272&view=rev Log: 1. starting adding pe loader to cputointel to misc.c 2. move the loadimage stuff to own functions to misc.c 3. rewrite so loader call to brain* after it load the image. 4. setup main using the loader 5. add few more input param to main -in, -inexe, -in try autodetect type of file, -inexe try convert a PE file.
Modified: trunk/rosapps/devutils/cputointel/CpuToIntel.c trunk/rosapps/devutils/cputointel/PPC/PPC.h trunk/rosapps/devutils/cputointel/PPC/PPCBrain.c trunk/rosapps/devutils/cputointel/dummycpu/Dummy.h trunk/rosapps/devutils/cputointel/dummycpu/DummyBrain.c trunk/rosapps/devutils/cputointel/m68k/M68kBrain.c trunk/rosapps/devutils/cputointel/m68k/m68k.h trunk/rosapps/devutils/cputointel/misc.c trunk/rosapps/devutils/cputointel/misc.h
Modified: trunk/rosapps/devutils/cputointel/CpuToIntel.c URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/devutils/cputointel/CpuToIn... ============================================================================== --- trunk/rosapps/devutils/cputointel/CpuToIntel.c (original) +++ trunk/rosapps/devutils/cputointel/CpuToIntel.c Tue Jan 2 05:21:58 2007 @@ -14,8 +14,12 @@ int t=0; char *infile=NULL; char *outfile=NULL; + char *cpuid=NULL; + CPU_INT type=0; +
printf("Usage :\n"); + printf(" need for -inbin and autodetect if it does not found a PE header \n"); printf(" -cpu m68000 : convert motorala 68000/68008 to intel asm \n"); printf(" -cpu m68010 : convert motorala 68010 to intel asm \n"); printf(" -cpu m68020 : convert motorala 68020 to intel asm \n"); @@ -23,13 +27,18 @@ printf(" -cpu m68040 : convert motorala 68040 to intel asm \n"); printf(" -cpu ppc : convert PowerPC to intel asm \n"); printf(" -cpu ARM4 : convert ARM4 to intel asm \n"); - printf("--------------------------------------------------------------\n"); + printf("------------------------------------------------------------------\n"); + printf(" for -inbin and autodetect if it does not found a PE header or do\n"); + printf(" not set at all, this options are free to use \n"); printf(".......-BaseAddress adr : the start base address only accpect \n"); printf("....... dec value"); - printf("--------------------------------------------------------------\n"); + printf("------------------------------------------------------------------\n"); + printf(" -in filename : try autodetect file type for you"); + printf(" whant convert\n"); printf(" -inBin filename : the bin file you whant convert\n"); - printf(" -OutAsm filename : the Asm file you whant create\n"); - printf("--------------------------------------------------------------\n"); + printf(" -inExe filename : the PE file you whant convert\n"); + printf(" -OutAsm filename : the Asm file you whant create\n"); + printf("------------------------------------------------------------------\n"); printf("More cpu will be added with the time or options, this is \n"); printf("version 0.0.1 of the cpu to intel converter writen by \n"); printf("Magnus Olsen (magnus@greatlord.com), it does not do anything \n"); @@ -41,10 +50,24 @@
for (t=1; t<7;t+=2) { + if (stricmp(argv[t],"-in")) + { + infile = argv[t+1]; + type=0; + } + if (stricmp(argv[t],"-inBin")) { infile = argv[t+1]; + type=1; } + + if (stricmp(argv[t],"-inExe")) + { + infile = argv[t+1]; + type=1; + } + if (stricmp(argv[t],"-OutAsm")) { outfile = argv[t+1]; @@ -53,30 +76,20 @@ { BaseAddress = atol(argv[t+1]); } + if (stricmp(argv[t],"-cpu")) + { + cpuid = argv[t+1]; + }
- }
- for (t=1;t<7;t+=2) - { - if (stricmp(argv[1],"-cpu")) - { - if (stricmp(argv[2],"m68000")) - return M68KBrain(infile, outfile, BaseAddress, 68000); - else if (stricmp(argv[2],"m68010")) - return M68KBrain(infile, outfile, BaseAddress, 68010); - else if (stricmp(argv[2],"m68020")) - return M68KBrain(infile, outfile, BaseAddress, 68020); - else if (stricmp(argv[2],"m68030")) - return M68KBrain(infile, outfile, BaseAddress, 68030); - else if (stricmp(argv[2],"m68040")) - return M68KBrain(infile, outfile, BaseAddress, 68040); - else if (stricmp(argv[2],"ppc")) - return PPCBrain(infile, outfile, BaseAddress, 0); - else if (stricmp(argv[2],"arm4")) - return ARMBrain(infile, outfile, BaseAddress, 4); - } - } - return 0; + return LoadPFileImage(infile,outfile,BaseAddress,cpuid,type); }
+ + + + + + +
Modified: trunk/rosapps/devutils/cputointel/PPC/PPC.h URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/devutils/cputointel/PPC/PPC... ============================================================================== --- trunk/rosapps/devutils/cputointel/PPC/PPC.h (original) +++ trunk/rosapps/devutils/cputointel/PPC/PPC.h Tue Jan 2 05:21:58 2007 @@ -1,7 +1,13 @@
#include "../misc.h"
-CPU_INT PPCBrain(char *infileName, char *outputfileName, CPU_UNINT BaseAddress, CPU_UNINT cpuarch); +CPU_INT PPCBrain( CPU_BYTE *cpu_buffer, + CPU_UNINT cpu_pos, + CPU_UNINT cpu_size, + CPU_UNINT BaseAddress, + CPU_UNINT cpuarch, + FILE *outfp); +
/* here we put the prototype for the opcode api that brain need we show a example for it */ CPU_INT PPC_Addx(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch);
Modified: trunk/rosapps/devutils/cputointel/PPC/PPCBrain.c URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/devutils/cputointel/PPC/PPC... ============================================================================== --- trunk/rosapps/devutils/cputointel/PPC/PPCBrain.c (original) +++ trunk/rosapps/devutils/cputointel/PPC/PPCBrain.c Tue Jan 2 05:21:58 2007 @@ -18,82 +18,20 @@ * 9 = can not read file */
-CPU_INT PPCBrain(char *infileName, char *outputfileName, - CPU_UNINT BaseAddress, CPU_UNINT cpuarch) +CPU_INT PPCBrain( CPU_BYTE *cpu_buffer, + CPU_UNINT cpu_pos, + CPU_UNINT cpu_size, + CPU_UNINT BaseAddress, + CPU_UNINT cpuarch, + FILE *outfp) { - FILE *infp; - FILE *outfp; - CPU_BYTE *cpu_buffer; - CPU_UNINT cpu_pos = 0; CPU_UNINT cpu_oldpos; - CPU_UNINT cpu_size=0; CPU_INT cpuint; CPU_INT retcode = 0; CPU_INT retsize;
- /* Open file for read */ - if (!(infp = fopen(infileName,"RB"))) - { - printf("Can not open file %s\n",infileName); - return 3; - }
- /* Open file for write */ - if (!(outfp = fopen(outputfileName,"WB"))) - { - printf("Can not open file %s\n",outputfileName); - return 4; - } - - /* Load the binary file to a memory buffer */ - fseek(infp,0,SEEK_END); - if (!ferror(infp)) - { - printf("error can not seek in the read file"); - fclose(infp); - fclose(outfp); - return 5; - } - - /* get the memory size buffer */ - cpu_size = ftell(infp); - if (!ferror(infp)) - { - printf("error can not get file size of the read file"); - fclose(infp); - fclose(outfp); - return 6; - } - - if (cpu_size==0) - { - printf("error file size is Zero lenght of the read file"); - fclose(infp); - fclose(outfp); - return 7; - } - - /* alloc memory now */ - if (!(cpu_buffer = (unsigned char *) malloc(cpu_size))) - { - printf("error can not alloc %uld size for memory buffer",cpu_size); - fclose(infp); - fclose(outfp); - return 8; - } - - /* read from the file now in one sweep */ - fread(cpu_buffer,1,cpu_size,infp); - if (!ferror(infp)) - { - printf("error can not read file "); - fclose(infp); - fclose(outfp); - return 9; - } - fclose(infp); - - /* now we start the process */ + /* now we start the process */ while (cpu_pos<cpu_size) { cpu_oldpos = cpu_pos;
Modified: trunk/rosapps/devutils/cputointel/dummycpu/Dummy.h URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/devutils/cputointel/dummycp... ============================================================================== --- trunk/rosapps/devutils/cputointel/dummycpu/Dummy.h (original) +++ trunk/rosapps/devutils/cputointel/dummycpu/Dummy.h Tue Jan 2 05:21:58 2007 @@ -1,5 +1,12 @@
#include "../misc.h" + +CPU_INT DummyBrain( CPU_BYTE *cpu_buffer, + CPU_UNINT cpu_pos, + CPU_UNINT cpu_size, + CPU_UNINT BaseAddress, + CPU_UNINT cpuarch, + FILE *outfp);
/* here we put the prototype for the opcode api that brain need we show a example for it */ CPU_INT DUMMY_Add(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch);
Modified: trunk/rosapps/devutils/cputointel/dummycpu/DummyBrain.c URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/devutils/cputointel/dummycp... ============================================================================== --- trunk/rosapps/devutils/cputointel/dummycpu/DummyBrain.c (original) +++ trunk/rosapps/devutils/cputointel/dummycpu/DummyBrain.c Tue Jan 2 05:21:58 2007 @@ -18,80 +18,20 @@ * 9 = can not read file */
-CPU_INT DummyBrain(char *infileName, char *outputfileName, - CPU_UNINT BaseAddress, CPU_UNINT cpuarch) +CPU_INT DummyBrain( CPU_BYTE *cpu_buffer, + CPU_UNINT cpu_pos, + CPU_UNINT cpu_size, + CPU_UNINT BaseAddress, + CPU_UNINT cpuarch, + FILE *outfp) { - FILE *infp; - FILE *outfp; - CPU_BYTE *cpu_buffer; - CPU_UNINT cpu_pos = 0; CPU_UNINT cpu_oldpos; - CPU_UNINT cpu_size=0; CPU_INT cpuint; CPU_INT retcode = 0; CPU_INT retsize;
- /* Open file for read */ - if (!(infp = fopen(infileName,"RB"))) - { - printf("Can not open file %s\n",infileName); - return 3; - }
- /* Open file for write */ - if (!(outfp = fopen(outputfileName,"WB"))) - { - printf("Can not open file %s\n",outputfileName); - return 4; - }
- /* Load the binary file to a memory buffer */ - fseek(infp,0,SEEK_END); - if (!ferror(infp)) - { - printf("error can not seek in the read file"); - fclose(infp); - fclose(outfp); - return 5; - } - - /* get the memory size buffer */ - cpu_size = ftell(infp); - if (!ferror(infp)) - { - printf("error can not get file size of the read file"); - fclose(infp); - fclose(outfp); - return 6; - } - - if (cpu_size==0) - { - printf("error file size is Zero lenght of the read file"); - fclose(infp); - fclose(outfp); - return 7; - } - - /* alloc memory now */ - if (!(cpu_buffer = (unsigned char *) malloc(cpu_size))) - { - printf("error can not alloc %uld size for memory buffer",cpu_size); - fclose(infp); - fclose(outfp); - return 8; - } - - /* read from the file now in one sweep */ - fread(cpu_buffer,1,cpu_size,infp); - if (!ferror(infp)) - { - printf("error can not read file "); - fclose(infp); - fclose(outfp); - return 9; - } - fclose(infp);
/* now we start the process */ while (cpu_pos<cpu_size)
Modified: trunk/rosapps/devutils/cputointel/m68k/M68kBrain.c URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/devutils/cputointel/m68k/M6... ============================================================================== --- trunk/rosapps/devutils/cputointel/m68k/M68kBrain.c (original) +++ trunk/rosapps/devutils/cputointel/m68k/M68kBrain.c Tue Jan 2 05:21:58 2007 @@ -18,79 +18,17 @@ * 9 = can not read file */
-CPU_INT M68KBrain(char *infileName, char *outputfileName, CPU_UNINT BaseAddress, CPU_UNINT cpuarch) +CPU_INT M68KBrain( CPU_BYTE *cpu_buffer, + CPU_UNINT cpu_pos, + CPU_UNINT cpu_size, + CPU_UNINT BaseAddress, + CPU_UNINT cpuarch, + FILE *outfp) { - FILE *infp; - FILE *outfp; - CPU_BYTE *cpu_buffer; - CPU_UNINT cpu_pos = 0; CPU_UNINT cpu_oldpos; - CPU_UNINT cpu_size=0; CPU_INT cpuint; CPU_INT retcode = 0; CPU_INT retsize; - - /* Open file for read */ - if (!(infp = fopen(infileName,"RB"))) - { - printf("Can not open file %s\n",infileName); - return 3; - } - - /* Open file for write */ - if (!(outfp = fopen(outputfileName,"WB"))) - { - printf("Can not open file %s\n",outputfileName); - return 4; - } - - /* Load the binary file to a memory buffer */ - fseek(infp,0,SEEK_END); - if (!ferror(infp)) - { - printf("error can not seek in the read file"); - fclose(infp); - fclose(outfp); - return 5; - } - - /* get the memory size buffer */ - cpu_size = ftell(infp); - if (!ferror(infp)) - { - printf("error can not get file size of the read file"); - fclose(infp); - fclose(outfp); - return 6; - } - - if (cpu_size==0) - { - printf("error file size is Zero lenght of the read file"); - fclose(infp); - fclose(outfp); - return 7; - } - - /* alloc memory now */ - if (!(cpu_buffer = (unsigned char *) malloc(cpu_size))) - { - printf("error can not alloc %uld size for memory buffer",cpu_size); - fclose(infp); - fclose(outfp); - return 8; - } - - /* read from the file now in one sweep */ - fread(cpu_buffer,1,cpu_size,infp); - if (!ferror(infp)) - { - printf("error can not read file "); - fclose(infp); - fclose(outfp); - return 9; - } - fclose(infp);
/* now we start the process */ while (cpu_pos<cpu_size)
Modified: trunk/rosapps/devutils/cputointel/m68k/m68k.h URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/devutils/cputointel/m68k/m6... ============================================================================== --- trunk/rosapps/devutils/cputointel/m68k/m68k.h (original) +++ trunk/rosapps/devutils/cputointel/m68k/m68k.h Tue Jan 2 05:21:58 2007 @@ -1,6 +1,12 @@
#include "../misc.h" -CPU_INT M68KBrain(char *infileName, char *outputfileName, CPU_UNINT BaseAddress, CPU_UNINT cpuarch); +CPU_INT M68KBrain( CPU_BYTE *cpu_buffer, + CPU_UNINT cpu_pos, + CPU_UNINT cpu_size, + CPU_UNINT BaseAddress, + CPU_UNINT cpuarch, + FILE *outfp); +
CPU_INT M68k_Abcd(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch); CPU_INT M68k_Add(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch);
Modified: trunk/rosapps/devutils/cputointel/misc.c URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/devutils/cputointel/misc.c?... ============================================================================== --- trunk/rosapps/devutils/cputointel/misc.c (original) +++ trunk/rosapps/devutils/cputointel/misc.c Tue Jan 2 05:21:58 2007 @@ -1,6 +1,331 @@ + +/* only for getting the pe struct */ +#include <windows.h> +#include <winnt.h>
#include <stdio.h> +#include <stdlib.h> +#include <string.h> #include "misc.h" +#include "ARM/ARM.h" +#include "m68k/m68k.h" +#include "PPC/PPC.h" + + +/* retun + * 0 = Ok + * 1 = unimplemt + * 2 = Unkonwn Opcode + * 3 = can not open read file + * 4 = can not open write file + * 5 = can not seek to end of read file + * 6 = can not get the file size of the read file + * 7 = read file size is Zero + * 8 = can not alloc memory + * 9 = can not read file + *------------------------- + * type 0 : auto + * type 1 : bin + * type 2 : exe/dll/sys + */ + +CPU_INT LoadPFileImage( char *infileName, char *outputfileName, + CPU_UNINT BaseAddress, char *cpuid, + CPU_UNINT type) +{ + FILE *infp; + FILE *outfp; + CPU_BYTE *cpu_buffer; + CPU_UNINT cpu_pos = 0; + CPU_UNINT cpu_size=0; + + + /* Open file for read */ + if (!(infp = fopen(infileName,"RB"))) + { + printf("Can not open file %s\n",infileName); + return 3; + } + + /* Open file for write */ + if (!(outfp = fopen(outputfileName,"WB"))) + { + printf("Can not open file %s\n",outputfileName); + return 4; + } + + /* Load the binary file to a memory buffer */ + fseek(infp,0,SEEK_END); + if (!ferror(infp)) + { + printf("error can not seek in the read file"); + fclose(infp); + fclose(outfp); + return 5; + } + + /* get the memory size buffer */ + cpu_size = ftell(infp); + if (!ferror(infp)) + { + printf("error can not get file size of the read file"); + fclose(infp); + fclose(outfp); + return 6; + } + + if (cpu_size==0) + { + printf("error file size is Zero lenght of the read file"); + fclose(infp); + fclose(outfp); + return 7; + } + + /* alloc memory now */ + if (!(cpu_buffer = (unsigned char *) malloc(cpu_size))) + { + printf("error can not alloc %uld size for memory buffer",cpu_size); + fclose(infp); + fclose(outfp); + return 8; + } + + /* read from the file now in one sweep */ + fread(cpu_buffer,1,cpu_size,infp); + if (!ferror(infp)) + { + printf("error can not read file "); + fclose(infp); + fclose(outfp); + return 9; + } + fclose(infp); + + if (type==0) + { + if ( PEFileStart(cpu_buffer, 0, BaseAddress, cpu_size) !=0) + { + type=1; + } + } + + if (type== 1) + { + if (stricmp(cpuid,"m68000")) + return M68KBrain(cpu_buffer,cpu_pos,cpu_size,BaseAddress,68000,outfp); + else if (stricmp(cpuid,"m68010")) + return M68KBrain(cpu_buffer,cpu_pos,cpu_size,BaseAddress,68010,outfp); + else if (stricmp(cpuid,"m68020")) + return M68KBrain(cpu_buffer,cpu_pos,cpu_size,BaseAddress,68020,outfp); + else if (stricmp(cpuid,"m68030")) + return M68KBrain(cpu_buffer,cpu_pos,cpu_size,BaseAddress,68030,outfp); + else if (stricmp(cpuid,"m68040")) + return M68KBrain(cpu_buffer,cpu_pos,cpu_size,BaseAddress,68040,outfp); + else if (stricmp(cpuid,"ppc")) + return PPCBrain(cpu_buffer,cpu_pos,cpu_size,BaseAddress,0,outfp); + else if (stricmp(cpuid,"arm4")) + return ARMBrain(cpu_buffer,cpu_pos,cpu_size,BaseAddress,4,outfp); + } + + if (type==2) + { + return PEFileStart(cpu_buffer, 0, BaseAddress, cpu_size); + + } + + return 0; +} + +CPU_INT PEFileStart( CPU_BYTE *memory, CPU_UNINT pos, + CPU_UNINT base, CPU_UNINT size) +{ + PIMAGE_DOS_HEADER DosHeader; + PIMAGE_NT_HEADERS NtHeader; + + DosHeader = (PIMAGE_DOS_HEADER)memory; + if ( (DosHeader->e_magic != IMAGE_DOS_SIGNATURE) || + (size < 0x3c+2) ) + { + printf("No MZ file \n"); + return -1; + } + + NtHeader = (PIMAGE_NT_HEADERS) memory+ DosHeader->e_lfanew; + if (NtHeader->Signature != IMAGE_NT_SIGNATURE) + { + printf("No PE header found \n"); + } + + if (!(NtHeader->FileHeader.Characteristics & IMAGE_FILE_EXECUTABLE_IMAGE)) + { + printf("No execute image found \n"); + return -1; + } + + switch(NtHeader->OptionalHeader.Subsystem) + { + case IMAGE_SUBSYSTEM_EFI_APPLICATION: + printf("This exe file is desgin run in EFI bios as applactions\n"); + break; + case IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER: + printf("This exe file is desgin run in EFI bios as service driver\n"); + break; + case IMAGE_SUBSYSTEM_EFI_ROM: + printf("This exe file is EFI ROM\n"); + break; + case IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER: + printf("This exe file is desgin run in EFI bios as driver\n"); + break; + case IMAGE_SUBSYSTEM_NATIVE: + printf("This exe file does not need any subsystem\n"); + break; + case IMAGE_SUBSYSTEM_NATIVE_WINDOWS: + printf("This exe file is desgin run on Windows 9x as driver \n"); + break; + case IMAGE_SUBSYSTEM_OS2_CUI: + printf("This exe file is desgin run on OS2 as CUI\n"); + break; + case IMAGE_SUBSYSTEM_POSIX_CUI: + printf("This exe file is desgin run on POSIX as CUI\n"); + break; + case IMAGE_SUBSYSTEM_WINDOWS_CE_GUI: + printf("This exe file is desgin run on Windows CE as GUI\n"); + break; + case IMAGE_SUBSYSTEM_WINDOWS_CUI: + printf("This exe file is desgin run on Windows as CUI\n"); + break; + case IMAGE_SUBSYSTEM_WINDOWS_GUI: + printf("This exe file is desgin run on Windows as GUI\n"); + break; + case IMAGE_SUBSYSTEM_XBOX: + printf("This exe file is desgin run on X-Box\n"); + break; + default: + printf("Unknown OS : SubID : %d\n",NtHeader->OptionalHeader.Subsystem); + break; + } + + //*base = NtHeader->OptionalHeader.AddressOfEntryPoint; + + + /* return */ + switch (NtHeader->FileHeader.Machine) + { + case IMAGE_FILE_MACHINE_ALPHA: + printf("CPU ALPHA Detected no CPUBrain implement for it\n"); + return -1; + + case IMAGE_FILE_MACHINE_ALPHA64: + printf("CPU ALPHA64/AXP64 Detected no CPUBrain implement for it\n"); + return -1; + + case IMAGE_FILE_MACHINE_AM33: + printf("CPU AM33 Detected no CPUBrain implement for it\n"); + return -1; + + case IMAGE_FILE_MACHINE_AMD64: + printf("CPU AMD64 Detected no CPUBrain implement for it\n"); + return -1; + + case IMAGE_FILE_MACHINE_ARM: + printf("CPU ARM Detected no CPUBrain implement for it\n"); + return -1; + + case IMAGE_FILE_MACHINE_CEE: + printf("CPU CEE Detected no CPUBrain implement for it\n"); + return -1; + + case IMAGE_FILE_MACHINE_CEF: + printf("CPU CEF Detected no CPUBrain implement for it\n"); + return -1; + + case IMAGE_FILE_MACHINE_EBC: + printf("CPU EBC Detected no CPUBrain implement for it\n"); + return -1; + + case IMAGE_FILE_MACHINE_I386: + printf("CPU I386 Detected no CPUBrain implement for it\n"); + return -1; + + case IMAGE_FILE_MACHINE_IA64: + printf("CPU IA64 Detected no CPUBrain implement for it\n"); + return -1; + + case IMAGE_FILE_MACHINE_M32R: + printf("CPU M32R Detected no CPUBrain implement for it\n"); + return -1; + + case IMAGE_FILE_MACHINE_MIPS16: + printf("CPU MIPS16 Detected no CPUBrain implement for it\n"); + return -1; + + case IMAGE_FILE_MACHINE_MIPSFPU: + printf("CPU MIPSFPU Detected no CPUBrain implement for it\n"); + return -1; + + case IMAGE_FILE_MACHINE_MIPSFPU16: + printf("CPU MIPSFPU16 Detected no CPUBrain implement for it\n"); + return -1; + + case IMAGE_FILE_MACHINE_POWERPC: + printf("CPU POWERPC Detected no CPUBrain implement for it\n"); + return -1; + + case IMAGE_FILE_MACHINE_POWERPCFP: + printf("CPU POWERPCFP Detected no CPUBrain implement for it\n"); + return -1; + + case IMAGE_FILE_MACHINE_R10000: + printf("CPU R10000 Detected no CPUBrain implement for it\n"); + return -1; + + case IMAGE_FILE_MACHINE_R3000: + printf("CPU R3000 Detected no CPUBrain implement for it\n"); + return -1; + + case IMAGE_FILE_MACHINE_R4000: + printf("CPU R4000 Detected no CPUBrain implement for it\n"); + return -1; + + case IMAGE_FILE_MACHINE_SH3: + printf("CPU SH3 Detected no CPUBrain implement for it\n"); + return -1; + + case IMAGE_FILE_MACHINE_SH3DSP: + printf("CPU SH3DSP Detected no CPUBrain implement for it\n"); + return -1; + + case IMAGE_FILE_MACHINE_SH3E: + printf("CPU SH3E Detected no CPUBrain implement for it\n"); + return -1; + + case IMAGE_FILE_MACHINE_SH4: + printf("CPU SH4 Detected no CPUBrain implement for it\n"); + return -1; + + case IMAGE_FILE_MACHINE_SH5: + printf("CPU SH5 Detected no CPUBrain implement for it\n"); + return -1; + + case IMAGE_FILE_MACHINE_THUMB: + printf("CPU THUMB Detected no CPUBrain implement for it\n"); + return -1; + + case IMAGE_FILE_MACHINE_TRICORE: + printf("CPU TRICORE Detected no CPUBrain implement for it\n"); + return -1; + + case IMAGE_FILE_MACHINE_WCEMIPSV2: + printf("CPU WCEMIPSV2 Detected no CPUBrain implement for it\n"); + return -1; + + default: + printf("Unknown Machine : %d",NtHeader->FileHeader.Machine); + return -1; + } + +}
/* Conveting bit array to a int byte */
Modified: trunk/rosapps/devutils/cputointel/misc.h URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/devutils/cputointel/misc.h?... ============================================================================== --- trunk/rosapps/devutils/cputointel/misc.h (original) +++ trunk/rosapps/devutils/cputointel/misc.h Tue Jan 2 05:21:58 2007 @@ -8,9 +8,11 @@
/* Convert Bit index to int */ +CPU_INT LoadPFileImage(char *infileName, char *outputfileName, CPU_UNINT BaseAddress, char *cpuid, CPU_UNINT type); +CPU_INT PEFileStart( CPU_BYTE *memory, CPU_UNINT pos, CPU_UNINT base, CPU_UNINT size); + CPU_UNINT ConvertBitToByte(CPU_BYTE *bit); CPU_UNINT GetMaskByte(CPU_BYTE *bit); -
CPU_UNINT ConvertBitToByte32(CPU_BYTE *bit); CPU_UNINT GetMaskByte32(CPU_BYTE *bit);