[ros-diffs] [greatlrd] 25544: sorry ia32 should be own folder

greatlrd at svn.reactos.org greatlrd at svn.reactos.org
Sat Jan 20 14:39:01 CET 2007


Author: greatlrd
Date: Sat Jan 20 16:39:01 2007
New Revision: 25544

URL: http://svn.reactos.org/svn/reactos?rev=25544&view=rev
Log:
sorry ia32 should be own folder

Added:
    trunk/rosapps/devutils/cputointel/From/IA32/
    trunk/rosapps/devutils/cputointel/From/IA32/IA32.h   (with props)
    trunk/rosapps/devutils/cputointel/From/IA32/IA32Brain.c   (with props)
    trunk/rosapps/devutils/cputointel/From/IA32/IA32Brain.h   (with props)
    trunk/rosapps/devutils/cputointel/From/IA32/IA32opcode.c   (with props)
Removed:
    trunk/rosapps/devutils/cputointel/From/dummycpu/IA32.h
    trunk/rosapps/devutils/cputointel/From/dummycpu/IA32Brain.c
    trunk/rosapps/devutils/cputointel/From/dummycpu/IA32Brain.h
    trunk/rosapps/devutils/cputointel/From/dummycpu/IA32opcode.c

Added: trunk/rosapps/devutils/cputointel/From/IA32/IA32.h
URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/devutils/cputointel/From/IA32/IA32.h?rev=25544&view=auto
==============================================================================
--- trunk/rosapps/devutils/cputointel/From/IA32/IA32.h (added)
+++ trunk/rosapps/devutils/cputointel/From/IA32/IA32.h Sat Jan 20 16:39:01 2007
@@ -1,0 +1,17 @@
+
+#include "../../misc.h"
+
+CPU_INT IA32Brain(  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 IA32_Add(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch);
+
+
+/* Export comment thing see m68k for example 
+ * in dummy we do not show it, for it is diffent for each cpu
+ */

Propchange: trunk/rosapps/devutils/cputointel/From/IA32/IA32.h
------------------------------------------------------------------------------
    svn:eol-style = native

Added: trunk/rosapps/devutils/cputointel/From/IA32/IA32Brain.c
URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/devutils/cputointel/From/IA32/IA32Brain.c?rev=25544&view=auto
==============================================================================
--- trunk/rosapps/devutils/cputointel/From/IA32/IA32Brain.c (added)
+++ trunk/rosapps/devutils/cputointel/From/IA32/IA32Brain.c Sat Jan 20 16:39:01 2007
@@ -1,0 +1,107 @@
+
+#include <stdio.h>
+#include <stdlib.h> 
+#include "IA32Brain.h"
+#include "IA32.h"
+#include "../../any_op.h"
+#include "../../misc.h"
+
+
+
+
+/* 
+ * DummyBrain is example how you create you own cpu brain to translate from 
+ * cpu to intel assembler, I have not add DummyBrain to the loader it is not
+ * need it in our example. When you write you own brain, it must be setup in
+ * misc.c function LoadPFileImage and PEFileStart, PEFileStart maybe does not
+ * need the brain you have writen so you do not need setup it there then.
+ *
+ * input param: 
+ *         cpu_buffer   : the memory buffer with loaded program we whant translate
+ *         cpu_pos      : the positions in the cpu_buffer 
+ *         cpu_size     : the alloced memory size of the cpu_buffer
+ *         BaseAddress  : the virtual memory address we setup to use.
+ *         cpuarch      : the sub arch for the brain, example if it exists more one
+ *                        cpu with same desgin but few other opcode or extend opcode
+ *         outfp        : the output file pointer
+ *
+ *           mode       : if we should run disambler of this binary or
+ *                        translate it, Disambler will not calc the
+ *                        the row name right so we simple give each
+                          row a name. In translations mode we run a 
+ *                        analys so we getting better optimzing and 
+ *                        only row name there we need.
+ *                        value for mode are :
+ *                                             0 = disambler mode
+ *                                             1 = translate mode intel
+ *
+ * return value
+ *         0            : Ok 
+ *         1            : unimplemt 
+ *         2            : Unkonwn Opcode
+ *         3            : unimplement cpu
+ *         4            : unknown machine
+ */
+
+CPU_INT IA32Brain(  CPU_BYTE *cpu_buffer,
+                     CPU_UNINT cpu_pos,
+                     CPU_UNINT cpu_size,
+                     CPU_UNINT BaseAddress,
+                     CPU_UNINT cpuarch,
+                     FILE *outfp)
+{
+    CPU_UNINT cpu_oldpos;
+    CPU_INT cpuint;
+    CPU_INT retcode = 0;
+    CPU_INT retsize;
+
+    /* now we start the process */
+    while (cpu_pos<cpu_size)
+    {
+        cpu_oldpos = cpu_pos;
+
+        /* use the GetData32Be or GetData32Le
+           to read from the memory the
+           Le is for small endian and the
+           Be is for big endian
+           the 32 is how many bits we should read 
+         */
+        cpuint = GetData32Be(&cpu_buffer[cpu_pos]);
+    
+        /* Add */
+        if ((cpuint - (cpuint & GetMaskByte(cpuIA32Init_Add))) == ConvertBitToByte(cpuIA32Init_Add))
+        {
+            retsize = IA32_Add( outfp, cpu_buffer, cpu_pos, cpu_size,
+                                 BaseAddress, cpuarch);
+            if (retsize<0)
+                 retcode = 1;
+            else
+                 cpu_pos += retsize;
+        }
+    
+        /* Found all Opcode and breakout and return no error found */
+        if (cpu_pos >=cpu_size)
+        {
+            break;
+        }
+
+        /* Check if we have found a cpu opcode */
+        if (cpu_oldpos == cpu_pos)
+        {            
+            if (retcode == 0)
+            {              
+                /* no unimplement error where found so we return a msg for unknown opcode */
+                printf("Unkonwn Opcode found at 0x%8x opcode 0x%2x\n",cpu_oldpos+BaseAddress,(unsigned int)cpu_buffer[cpu_oldpos]);                
+                retcode = 2;
+            }
+        }
+
+        /* Erorro Found ? */
+        if (retcode!=0)
+        {
+            /* Erorro Found break and return the error code */
+            break;
+        }
+    }
+    return retcode;
+}

Propchange: trunk/rosapps/devutils/cputointel/From/IA32/IA32Brain.c
------------------------------------------------------------------------------
    svn:eol-style = native

Added: trunk/rosapps/devutils/cputointel/From/IA32/IA32Brain.h
URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/devutils/cputointel/From/IA32/IA32Brain.h?rev=25544&view=auto
==============================================================================
--- trunk/rosapps/devutils/cputointel/From/IA32/IA32Brain.h (added)
+++ trunk/rosapps/devutils/cputointel/From/IA32/IA32Brain.h Sat Jan 20 16:39:01 2007
@@ -1,0 +1,13 @@
+
+
+#include "../../misc.h"
+
+
+/* example how setup a opcode, this opcode is 16bit long (taken from M68K) 
+ * 0 and 1 mean normal bit, 2 mean mask bit the bit that are determent diffent 
+ * thing in the opcode, example which reg so on, it can be etither 0 or 1 in 
+ * the opcode. but a opcode have also normal bit that is always been set to 
+ * same. thuse bit are always 0 or 1
+ */
+CPU_BYTE cpuIA32Init_Add[16] = {1,1,0,1,2,2,2,2,2,2,2,2,2,2,2,2};
+

Propchange: trunk/rosapps/devutils/cputointel/From/IA32/IA32Brain.h
------------------------------------------------------------------------------
    svn:eol-style = native

Added: trunk/rosapps/devutils/cputointel/From/IA32/IA32opcode.c
URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/devutils/cputointel/From/IA32/IA32opcode.c?rev=25544&view=auto
==============================================================================
--- trunk/rosapps/devutils/cputointel/From/IA32/IA32opcode.c (added)
+++ trunk/rosapps/devutils/cputointel/From/IA32/IA32opcode.c Sat Jan 20 16:39:01 2007
@@ -1,0 +1,50 @@
+
+#include <stdio.h>
+#include <stdlib.h> 
+#include "IA32.h"
+#include "../../misc.h"
+
+
+/* cpuDummyInit_Add
+ * Input param : 
+ *               out         : The file pointer that we write to (the output file to intel asm) 
+ *               cpu_buffer  : The memory buffer we have our binary code that we whant convert
+ *               cpu_pos     : Current positions in the cpu_buffer 
+ *               cpu_size    : The memory size of the cpu_buffer
+ *               BaseAddress : The base address you whant the binay file should run from 
+ *               cpuarch     : if it exists diffent cpu from a manufactor like pentium,
+ *                             pentinum-mmx so on, use this flag to specify which type 
+ *                             of cpu you whant or do not use it if it does not exists
+ *                             other or any sub model.
+ *
+ *                mode       : if we should run disambler of this binary or
+ *                             translate it, Disambler will not calc the
+ *                             the row name right so we simple give each
+                               row a name. In translations mode we run a 
+ *                             analys so we getting better optimzing and 
+ *                             only row name there we need.
+ *                             value for mode are :
+ *                                                  0 = disambler mode
+ *                                                  1 = translate mode intel
+ *
+ * Return value :
+ *               value -1            : unimplement 
+ *               value  0            : wrong opcode or not vaild opcode
+ *               value +1 and higher : who many byte we should add to cpu_pos
+ */
+ 
+CPU_INT IA32_Add( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
+                   CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch)
+
+{
+    /* 
+     * ConvertBitToByte() is perfect to use to get the bit being in use from a bit array
+     * GetMaskByte() is perfect if u whant known which bit have been mask out 
+     * see M68kopcode.c and how it use the ConvertBitToByte()
+     */
+
+    fprintf(out,"Line_0x%8x :\n",BaseAddress + cpu_pos);
+
+    printf(";Add unimplement\n");
+    return -1;
+}

Propchange: trunk/rosapps/devutils/cputointel/From/IA32/IA32opcode.c
------------------------------------------------------------------------------
    svn:eol-style = native

Removed: trunk/rosapps/devutils/cputointel/From/dummycpu/IA32.h
URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/devutils/cputointel/From/dummycpu/IA32.h?rev=25543&view=auto
==============================================================================
--- trunk/rosapps/devutils/cputointel/From/dummycpu/IA32.h (original)
+++ trunk/rosapps/devutils/cputointel/From/dummycpu/IA32.h (removed)
@@ -1,17 +1,0 @@
-
-#include "../../misc.h"
-
-CPU_INT IA32Brain(  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 IA32_Add(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch);
-
-
-/* Export comment thing see m68k for example 
- * in dummy we do not show it, for it is diffent for each cpu
- */

Removed: trunk/rosapps/devutils/cputointel/From/dummycpu/IA32Brain.c
URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/devutils/cputointel/From/dummycpu/IA32Brain.c?rev=25543&view=auto
==============================================================================
--- trunk/rosapps/devutils/cputointel/From/dummycpu/IA32Brain.c (original)
+++ trunk/rosapps/devutils/cputointel/From/dummycpu/IA32Brain.c (removed)
@@ -1,107 +1,0 @@
-
-#include <stdio.h>
-#include <stdlib.h> 
-#include "IA32Brain.h"
-#include "IA32.h"
-#include "../../any_op.h"
-#include "../../misc.h"
-
-
-
-
-/* 
- * DummyBrain is example how you create you own cpu brain to translate from 
- * cpu to intel assembler, I have not add DummyBrain to the loader it is not
- * need it in our example. When you write you own brain, it must be setup in
- * misc.c function LoadPFileImage and PEFileStart, PEFileStart maybe does not
- * need the brain you have writen so you do not need setup it there then.
- *
- * input param: 
- *         cpu_buffer   : the memory buffer with loaded program we whant translate
- *         cpu_pos      : the positions in the cpu_buffer 
- *         cpu_size     : the alloced memory size of the cpu_buffer
- *         BaseAddress  : the virtual memory address we setup to use.
- *         cpuarch      : the sub arch for the brain, example if it exists more one
- *                        cpu with same desgin but few other opcode or extend opcode
- *         outfp        : the output file pointer
- *
- *           mode       : if we should run disambler of this binary or
- *                        translate it, Disambler will not calc the
- *                        the row name right so we simple give each
-                          row a name. In translations mode we run a 
- *                        analys so we getting better optimzing and 
- *                        only row name there we need.
- *                        value for mode are :
- *                                             0 = disambler mode
- *                                             1 = translate mode intel
- *
- * return value
- *         0            : Ok 
- *         1            : unimplemt 
- *         2            : Unkonwn Opcode
- *         3            : unimplement cpu
- *         4            : unknown machine
- */
-
-CPU_INT IA32Brain(  CPU_BYTE *cpu_buffer,
-                     CPU_UNINT cpu_pos,
-                     CPU_UNINT cpu_size,
-                     CPU_UNINT BaseAddress,
-                     CPU_UNINT cpuarch,
-                     FILE *outfp)
-{
-    CPU_UNINT cpu_oldpos;
-    CPU_INT cpuint;
-    CPU_INT retcode = 0;
-    CPU_INT retsize;
-
-    /* now we start the process */
-    while (cpu_pos<cpu_size)
-    {
-        cpu_oldpos = cpu_pos;
-
-        /* use the GetData32Be or GetData32Le
-           to read from the memory the
-           Le is for small endian and the
-           Be is for big endian
-           the 32 is how many bits we should read 
-         */
-        cpuint = GetData32Be(&cpu_buffer[cpu_pos]);
-    
-        /* Add */
-        if ((cpuint - (cpuint & GetMaskByte(cpuIA32Init_Add))) == ConvertBitToByte(cpuIA32Init_Add))
-        {
-            retsize = IA32_Add( outfp, cpu_buffer, cpu_pos, cpu_size,
-                                 BaseAddress, cpuarch);
-            if (retsize<0)
-                 retcode = 1;
-            else
-                 cpu_pos += retsize;
-        }
-    
-        /* Found all Opcode and breakout and return no error found */
-        if (cpu_pos >=cpu_size)
-        {
-            break;
-        }
-
-        /* Check if we have found a cpu opcode */
-        if (cpu_oldpos == cpu_pos)
-        {            
-            if (retcode == 0)
-            {              
-                /* no unimplement error where found so we return a msg for unknown opcode */
-                printf("Unkonwn Opcode found at 0x%8x opcode 0x%2x\n",cpu_oldpos+BaseAddress,(unsigned int)cpu_buffer[cpu_oldpos]);                
-                retcode = 2;
-            }
-        }
-
-        /* Erorro Found ? */
-        if (retcode!=0)
-        {
-            /* Erorro Found break and return the error code */
-            break;
-        }
-    }
-    return retcode;
-}

Removed: trunk/rosapps/devutils/cputointel/From/dummycpu/IA32Brain.h
URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/devutils/cputointel/From/dummycpu/IA32Brain.h?rev=25543&view=auto
==============================================================================
--- trunk/rosapps/devutils/cputointel/From/dummycpu/IA32Brain.h (original)
+++ trunk/rosapps/devutils/cputointel/From/dummycpu/IA32Brain.h (removed)
@@ -1,13 +1,0 @@
-
-
-#include "../../misc.h"
-
-
-/* example how setup a opcode, this opcode is 16bit long (taken from M68K) 
- * 0 and 1 mean normal bit, 2 mean mask bit the bit that are determent diffent 
- * thing in the opcode, example which reg so on, it can be etither 0 or 1 in 
- * the opcode. but a opcode have also normal bit that is always been set to 
- * same. thuse bit are always 0 or 1
- */
-CPU_BYTE cpuIA32Init_Add[16] = {1,1,0,1,2,2,2,2,2,2,2,2,2,2,2,2};
-

Removed: trunk/rosapps/devutils/cputointel/From/dummycpu/IA32opcode.c
URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/devutils/cputointel/From/dummycpu/IA32opcode.c?rev=25543&view=auto
==============================================================================
--- trunk/rosapps/devutils/cputointel/From/dummycpu/IA32opcode.c (original)
+++ trunk/rosapps/devutils/cputointel/From/dummycpu/IA32opcode.c (removed)
@@ -1,50 +1,0 @@
-
-#include <stdio.h>
-#include <stdlib.h> 
-#include "IA32.h"
-#include "../../misc.h"
-
-
-/* cpuDummyInit_Add
- * Input param : 
- *               out         : The file pointer that we write to (the output file to intel asm) 
- *               cpu_buffer  : The memory buffer we have our binary code that we whant convert
- *               cpu_pos     : Current positions in the cpu_buffer 
- *               cpu_size    : The memory size of the cpu_buffer
- *               BaseAddress : The base address you whant the binay file should run from 
- *               cpuarch     : if it exists diffent cpu from a manufactor like pentium,
- *                             pentinum-mmx so on, use this flag to specify which type 
- *                             of cpu you whant or do not use it if it does not exists
- *                             other or any sub model.
- *
- *                mode       : if we should run disambler of this binary or
- *                             translate it, Disambler will not calc the
- *                             the row name right so we simple give each
-                               row a name. In translations mode we run a 
- *                             analys so we getting better optimzing and 
- *                             only row name there we need.
- *                             value for mode are :
- *                                                  0 = disambler mode
- *                                                  1 = translate mode intel
- *
- * Return value :
- *               value -1            : unimplement 
- *               value  0            : wrong opcode or not vaild opcode
- *               value +1 and higher : who many byte we should add to cpu_pos
- */
- 
-CPU_INT IA32_Add( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
-                   CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch)
-
-{
-    /* 
-     * ConvertBitToByte() is perfect to use to get the bit being in use from a bit array
-     * GetMaskByte() is perfect if u whant known which bit have been mask out 
-     * see M68kopcode.c and how it use the ConvertBitToByte()
-     */
-
-    fprintf(out,"Line_0x%8x :\n",BaseAddress + cpu_pos);
-
-    printf(";Add unimplement\n");
-    return -1;
-}




More information about the Ros-diffs mailing list