No need to define __USE_W32API
[reactos.git] / rosapps / devutils / cputointel / misc.c
1
2 /* only for getting the pe struct */
3 #include <windows.h>
4 #include <winnt.h>
5
6 #include <stdio.h>
7 #include <stdlib.h>
8 #include <string.h>
9 #include "misc.h"
10 #include "any_op.h"
11 #include "From/ARM/ARM.h"
12 #include "From/m68k/m68k.h"
13 #include "From/PPC/PPC.h"
14
15
16 /* retun
17 * 0 = Ok
18 * 1 = unimplemt
19 * 2 = Unkonwn Opcode
20 * 3 = can not open read file
21 * 4 = can not open write file
22 * 5 = can not seek to end of read file
23 * 6 = can not get the file size of the read file
24 * 7 = read file size is Zero
25 * 8 = can not alloc memory
26 * 9 = can not read file
27 *-------------------------
28 * type 0 : auto
29 * type 1 : bin
30 * type 2 : exe/dll/sys
31 */
32
33
34
35 /* Conveting bit array to a int byte */
36 CPU_UNINT ConvertBitToByte(CPU_BYTE *bit)
37 {
38 CPU_UNINT Byte = 0;
39 CPU_INT t;
40 CPU_UNINT size = 15;
41
42 for(t=size;t>=0;t--)
43 {
44 if (bit[size-t] != 2)
45 Byte = Byte + (bit[size-t]<<t);
46 }
47 return Byte;
48 }
49
50 /* Conveting bit array mask to a int byte mask */
51 CPU_UNINT GetMaskByte(CPU_BYTE *bit)
52 {
53 CPU_UNINT MaskByte = 0;
54 CPU_INT t;
55 CPU_UNINT size = 15;
56
57 for(t=size;t>=0;t--)
58 {
59 if (bit[size-t] == 2)
60 {
61 MaskByte = MaskByte + ( (bit[size-t]-1) <<t);
62 }
63 }
64 return MaskByte;
65 }
66
67 /* Conveting bit array to a int byte */
68 CPU_UNINT ConvertBitToByte32(CPU_BYTE *bit)
69 {
70 CPU_UNINT Byte = 0;
71 CPU_INT t;
72 CPU_UNINT size = 31;
73
74 for(t=size;t>=0;t--)
75 {
76 if (bit[size-t] != 2)
77 Byte = Byte + (bit[size-t]<<t);
78 }
79 return Byte;
80 }
81
82 /* Conveting bit array mask to a int byte mask */
83 CPU_UNINT GetMaskByte32(CPU_BYTE *bit)
84 {
85 CPU_UNINT MaskByte = 0;
86 CPU_INT t;
87 CPU_UNINT size = 31;
88
89 for(t=size;t>=0;t--)
90 {
91 if (bit[size-t] == 2)
92 {
93 MaskByte = MaskByte + ( (bit[size-t]-1) <<t);
94 }
95 }
96 return MaskByte;
97 }
98
99
100
101 CPU_UNINT GetData32Le(CPU_BYTE *cpu_buffer)
102 {
103 CPU_UNINT cpuint;
104 CPU_UNINT split1;
105 CPU_UNINT split2;
106 CPU_UNINT split3;
107 CPU_UNINT split4;
108
109 cpuint = *((CPU_UNINT*) &cpu_buffer[0]);
110
111 split1 = cpu_buffer[0];
112 split2 = cpu_buffer[1];
113 split3 = cpu_buffer[2];
114 split4 = cpu_buffer[3];
115
116
117 cpuint = split4+(split3 <<8 )+(split2 <<16 )+(split1 <<24 );
118
119 return cpuint;
120 }
121
122 CPU_UNINT GetData32Be(CPU_BYTE *cpu_buffer)
123 {
124 CPU_UNINT cpuint;
125
126 cpuint = *((CPU_UNINT*) &cpu_buffer[0]);
127
128 return cpuint;
129 }
130
131
132 CPU_INT AllocAny()
133 {
134
135 if (pMyBrainAnalys== NULL)
136 {
137 pMyBrainAnalys = (PMYBrainAnalys) malloc(sizeof(MYBrainAnalys));
138 if (pMyBrainAnalys==NULL)
139 {
140 return -1;
141 }
142 ZeroMemory(pMyBrainAnalys,sizeof(MYBrainAnalys));
143 pStartMyBrainAnalys = pMyBrainAnalys;
144 }
145 else
146 {
147 PMYBrainAnalys tmp;
148 tmp = (PMYBrainAnalys) malloc(sizeof(MYBrainAnalys));
149 if (tmp==NULL)
150 {
151 return -1;
152 }
153 ZeroMemory(tmp,sizeof(MYBrainAnalys));
154
155 pMyBrainAnalys->ptr_next = (CPU_BYTE*)tmp;
156 tmp->ptr_prev= (CPU_BYTE*)pMyBrainAnalys;
157
158 pMyBrainAnalys = tmp;
159 }
160 return 0;
161 }
162
163 CPU_INT FreeAny()
164 {
165 PMYBrainAnalys tmp = NULL;
166
167 if (pMyBrainAnalys == NULL)
168 {
169 return -1;
170 }
171
172 tmp = (PMYBrainAnalys)pMyBrainAnalys->ptr_prev;
173
174 while (pMyBrainAnalys != NULL)
175 {
176 if (pMyBrainAnalys == NULL)
177 {
178 break;
179 }
180
181 free(pMyBrainAnalys);
182
183 if (pMyBrainAnalys != NULL)
184 {
185 printf("fail to free memory");
186 return -1;
187 }
188
189 pMyBrainAnalys = tmp;
190 }
191
192 return 0;
193 }
194
195
196
197
198
199