Rev 2434 | Rev 3232 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2434 | Rev 2465 | ||
---|---|---|---|
1 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
1 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
2 | ;; ;; |
2 | ;; ;; |
3 | ;; Copyright (C) KolibriOS team 2004-2007. All rights reserved. ;; |
3 | ;; Copyright (C) KolibriOS team 2004-2012. All rights reserved. ;; |
4 | ;; Distributed under terms of the GNU General Public License ;; |
4 | ;; Distributed under terms of the GNU General Public License ;; |
5 | ;; ;; |
5 | ;; ;; |
6 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
6 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
7 | 7 | ||
8 | $Revision: 2434 $ |
8 | $Revision: 2465 $ |
9 | 9 | ||
10 | include 'export.inc' |
10 | include 'export.inc' |
11 | 11 | ||
12 | align 4 |
12 | align 4 |
13 | 13 | ||
14 | proc load_PE stdcall, file_name:dword |
14 | proc load_PE stdcall, file_name:dword |
15 | locals |
15 | locals |
16 | image dd ? |
16 | image dd ? |
17 | entry dd ? |
17 | entry dd ? |
18 | base dd ? |
18 | base dd ? |
19 | endl |
19 | endl |
20 | 20 | ||
21 | stdcall load_file, [file_name] |
21 | stdcall load_file, [file_name] |
22 | test eax, eax |
22 | test eax, eax |
23 | jz .fail |
23 | jz .fail |
24 | 24 | ||
25 | mov [image], eax |
25 | mov [image], eax |
26 | 26 | ||
27 | mov edx, [eax+60] |
27 | mov edx, [eax+60] |
28 | 28 | ||
29 | stdcall kernel_alloc, [eax+80+edx] |
29 | stdcall kernel_alloc, [eax+80+edx] |
30 | test eax, eax |
30 | test eax, eax |
31 | jz .cleanup |
31 | jz .cleanup |
32 | 32 | ||
33 | mov [base], eax |
33 | mov [base], eax |
34 | 34 | ||
35 | stdcall map_PE, eax, [image] |
35 | stdcall map_PE, eax, [image] |
36 | 36 | ||
37 | mov [entry], eax |
37 | mov [entry], eax |
38 | test eax, eax |
38 | test eax, eax |
39 | jnz .cleanup |
39 | jnz .cleanup |
40 | 40 | ||
41 | stdcall kernel_free, [base] |
41 | stdcall kernel_free, [base] |
42 | .cleanup: |
42 | .cleanup: |
43 | stdcall kernel_free, [image] |
43 | stdcall kernel_free, [image] |
44 | mov eax, [entry] |
44 | mov eax, [entry] |
45 | ret |
45 | ret |
46 | .fail: |
46 | .fail: |
47 | xor eax, eax |
47 | xor eax, eax |
48 | ret |
48 | ret |
49 | endp |
49 | endp |
50 | 50 | ||
51 | DWORD equ dword |
51 | DWORD equ dword |
52 | PTR equ |
52 | PTR equ |
53 | 53 | ||
54 | align 4 |
54 | align 4 |
55 | map_PE: ;stdcall base:dword, image:dword |
55 | map_PE: ;stdcall base:dword, image:dword |
56 | cld |
56 | cld |
57 | push ebp |
57 | push ebp |
58 | push edi |
58 | push edi |
59 | push esi |
59 | push esi |
60 | push ebx |
60 | push ebx |
61 | sub esp, 60 |
61 | sub esp, 60 |
62 | mov ebx, DWORD PTR [esp+84] |
62 | mov ebx, DWORD PTR [esp+84] |
63 | mov ebp, DWORD PTR [esp+80] |
63 | mov ebp, DWORD PTR [esp+80] |
64 | mov edx, ebx |
64 | mov edx, ebx |
65 | mov esi, ebx |
65 | mov esi, ebx |
66 | add edx, DWORD PTR [ebx+60] |
66 | add edx, DWORD PTR [ebx+60] |
67 | mov edi, ebp |
67 | mov edi, ebp |
68 | mov DWORD PTR [esp+32], edx |
68 | mov DWORD PTR [esp+32], edx |
69 | mov ecx, DWORD PTR [edx+84] |
69 | mov ecx, DWORD PTR [edx+84] |
70 | 70 | ||
71 | shr ecx, 2 |
71 | shr ecx, 2 |
72 | rep movsd |
72 | rep movsd |
73 | 73 | ||
74 | movzx eax, WORD PTR [edx+6] |
74 | movzx eax, WORD PTR [edx+6] |
75 | mov DWORD PTR [esp+36], 0 |
75 | mov DWORD PTR [esp+36], 0 |
76 | mov DWORD PTR [esp+16], eax |
76 | mov DWORD PTR [esp+16], eax |
77 | jmp L2 |
77 | jmp L2 |
78 | L3: |
78 | L3: |
79 | mov eax, DWORD PTR [edx+264] |
79 | mov eax, DWORD PTR [edx+264] |
80 | test eax, eax |
80 | test eax, eax |
81 | je L4 |
81 | je L4 |
82 | mov esi, ebx |
82 | mov esi, ebx |
83 | mov edi, ebp |
83 | mov edi, ebp |
84 | add esi, DWORD PTR [edx+268] |
84 | add esi, DWORD PTR [edx+268] |
85 | mov ecx, eax |
85 | mov ecx, eax |
86 | add edi, DWORD PTR [edx+260] |
86 | add edi, DWORD PTR [edx+260] |
87 | 87 | ||
88 | shr ecx, 2 |
88 | shr ecx, 2 |
89 | rep movsd |
89 | rep movsd |
90 | 90 | ||
91 | L4: |
91 | L4: |
92 | mov ecx, DWORD PTR [edx+256] |
92 | mov ecx, DWORD PTR [edx+256] |
93 | add ecx, 4095 |
93 | add ecx, 4095 |
94 | and ecx, -4096 |
94 | and ecx, -4096 |
95 | cmp ecx, eax |
95 | cmp ecx, eax |
96 | jbe L6 |
96 | jbe L6 |
97 | sub ecx, eax |
97 | sub ecx, eax |
98 | add eax, DWORD PTR [edx+260] |
98 | add eax, DWORD PTR [edx+260] |
99 | lea edi, [eax+ebp] |
99 | lea edi, [eax+ebp] |
100 | 100 | ||
101 | xor eax, eax |
101 | xor eax, eax |
102 | rep stosb |
102 | rep stosb |
103 | 103 | ||
104 | L6: |
104 | L6: |
105 | inc DWORD PTR [esp+36] |
105 | inc DWORD PTR [esp+36] |
106 | add edx, 40 |
106 | add edx, 40 |
107 | L2: |
107 | L2: |
108 | mov esi, DWORD PTR [esp+16] |
108 | mov esi, DWORD PTR [esp+16] |
109 | cmp DWORD PTR [esp+36], esi |
109 | cmp DWORD PTR [esp+36], esi |
110 | jne L3 |
110 | jne L3 |
111 | mov edi, DWORD PTR [esp+32] |
111 | mov edi, DWORD PTR [esp+32] |
112 | cmp DWORD PTR [edi+164], 0 |
112 | cmp DWORD PTR [edi+164], 0 |
113 | je L9 |
113 | je L9 |
114 | mov esi, ebp |
114 | mov esi, ebp |
115 | mov ecx, ebp |
115 | mov ecx, ebp |
116 | sub esi, DWORD PTR [edi+52] |
116 | sub esi, DWORD PTR [edi+52] |
117 | add ecx, DWORD PTR [edi+160] |
117 | add ecx, DWORD PTR [edi+160] |
118 | mov eax, esi |
118 | mov eax, esi |
119 | shr eax, 16 |
119 | shr eax, 16 |
120 | mov DWORD PTR [esp+12], eax |
120 | mov DWORD PTR [esp+12], eax |
121 | jmp L11 |
121 | jmp L11 |
122 | L12: |
122 | L12: |
123 | lea ebx, [eax-8] |
123 | lea ebx, [eax-8] |
124 | xor edi, edi |
124 | xor edi, edi |
125 | shr ebx, 1 |
125 | shr ebx, 1 |
126 | jmp L13 |
126 | jmp L13 |
127 | L14: |
127 | L14: |
128 | movzx eax, WORD PTR [ecx+8+edi*2] |
128 | movzx eax, WORD PTR [ecx+8+edi*2] |
129 | mov edx, eax |
129 | mov edx, eax |
130 | shr eax, 12 |
130 | shr eax, 12 |
131 | and edx, 4095 |
131 | and edx, 4095 |
132 | add edx, DWORD PTR [ecx] |
132 | add edx, DWORD PTR [ecx] |
133 | cmp ax, 2 |
133 | cmp ax, 2 |
134 | je L17 |
134 | je L17 |
135 | cmp ax, 3 |
135 | cmp ax, 3 |
136 | je L18 |
136 | je L18 |
137 | dec ax |
137 | dec ax |
138 | jne L15 |
138 | jne L15 |
139 | mov eax, DWORD PTR [esp+12] |
139 | mov eax, DWORD PTR [esp+12] |
140 | add WORD PTR [edx+ebp], ax |
140 | add WORD PTR [edx+ebp], ax |
141 | L17: |
141 | L17: |
142 | add WORD PTR [edx+ebp], si |
142 | add WORD PTR [edx+ebp], si |
143 | L18: |
143 | L18: |
144 | add DWORD PTR [edx+ebp], esi |
144 | add DWORD PTR [edx+ebp], esi |
145 | L15: |
145 | L15: |
146 | inc edi |
146 | inc edi |
147 | L13: |
147 | L13: |
148 | cmp edi, ebx |
148 | cmp edi, ebx |
149 | jne L14 |
149 | jne L14 |
150 | add ecx, DWORD PTR [ecx+4] |
150 | add ecx, DWORD PTR [ecx+4] |
151 | L11: |
151 | L11: |
152 | mov eax, DWORD PTR [ecx+4] |
152 | mov eax, DWORD PTR [ecx+4] |
153 | test eax, eax |
153 | test eax, eax |
154 | jne L12 |
154 | jne L12 |
155 | L9: |
155 | L9: |
156 | mov edx, DWORD PTR [esp+32] |
156 | mov edx, DWORD PTR [esp+32] |
157 | cmp DWORD PTR [edx+132], 0 |
157 | cmp DWORD PTR [edx+132], 0 |
158 | je L20 |
158 | je L20 |
159 | mov eax, ebp |
159 | mov eax, ebp |
160 | add eax, DWORD PTR [edx+128] |
160 | add eax, DWORD PTR [edx+128] |
161 | mov DWORD PTR [esp+40], 0 |
161 | mov DWORD PTR [esp+40], 0 |
162 | add eax, 20 |
162 | add eax, 20 |
163 | mov DWORD PTR [esp+56], eax |
163 | mov DWORD PTR [esp+56], eax |
164 | L22: |
164 | L22: |
165 | mov ecx, DWORD PTR [esp+56] |
165 | mov ecx, DWORD PTR [esp+56] |
166 | cmp DWORD PTR [ecx-16], 0 |
166 | cmp DWORD PTR [ecx-16], 0 |
167 | jne L23 |
167 | jne L23 |
168 | cmp DWORD PTR [ecx-8], 0 |
168 | cmp DWORD PTR [ecx-8], 0 |
169 | je L25 |
169 | je L25 |
170 | L23: |
170 | L23: |
171 | mov edi, DWORD PTR [__exports+32] |
171 | mov edi, DWORD PTR [__exports+32] |
172 | mov esi, DWORD PTR [__exports+28] |
172 | mov esi, DWORD PTR [__exports+28] |
173 | mov eax, DWORD PTR [esp+56] |
173 | mov eax, DWORD PTR [esp+56] |
174 | mov DWORD PTR [esp+20], edi |
174 | mov DWORD PTR [esp+20], edi |
175 | add edi, OS_BASE |
175 | add edi, OS_BASE |
176 | add esi, OS_BASE |
176 | add esi, OS_BASE |
177 | mov DWORD PTR [esp+44], esi |
177 | mov DWORD PTR [esp+44], esi |
178 | mov ecx, DWORD PTR [eax-4] |
178 | mov ecx, DWORD PTR [eax-4] |
179 | mov DWORD PTR [esp+48], edi |
179 | mov DWORD PTR [esp+48], edi |
180 | mov edx, DWORD PTR [eax-20] |
180 | mov edx, DWORD PTR [eax-20] |
181 | mov DWORD PTR [esp+52], 0 |
181 | mov DWORD PTR [esp+52], 0 |
182 | add ecx, ebp |
182 | add ecx, ebp |
183 | add edx, ebp |
183 | add edx, ebp |
184 | mov DWORD PTR [esp+24], edx |
184 | mov DWORD PTR [esp+24], edx |
185 | mov DWORD PTR [esp+28], ecx |
185 | mov DWORD PTR [esp+28], ecx |
186 | L26: |
186 | L26: |
187 | mov esi, DWORD PTR [esp+52] |
187 | mov esi, DWORD PTR [esp+52] |
188 | mov edi, DWORD PTR [esp+24] |
188 | mov edi, DWORD PTR [esp+24] |
189 | mov eax, DWORD PTR [edi+esi*4] |
189 | mov eax, DWORD PTR [edi+esi*4] |
190 | test eax, eax |
190 | test eax, eax |
191 | je L27 |
191 | je L27 |
192 | test eax, eax |
192 | test eax, eax |
193 | js L27 |
193 | js L27 |
194 | lea edi, [ebp+eax] |
194 | lea edi, [ebp+eax] |
195 | mov eax, DWORD PTR [esp+28] |
195 | mov eax, DWORD PTR [esp+28] |
196 | mov DWORD PTR [eax+esi*4], 0 |
196 | mov DWORD PTR [eax+esi*4], 0 |
197 | lea esi, [edi+2] |
197 | lea esi, [edi+2] |
198 | push eax |
198 | push eax |
199 | push 32 |
199 | push 32 |
200 | movzx eax, WORD PTR [edi] |
200 | movzx eax, WORD PTR [edi] |
201 | mov edx, DWORD PTR [esp+56] |
201 | mov edx, DWORD PTR [esp+56] |
202 | mov eax, DWORD PTR [edx+eax*4] |
202 | mov eax, DWORD PTR [edx+eax*4] |
203 | add eax, OS_BASE |
203 | add eax, OS_BASE |
204 | push eax |
204 | push eax |
205 | push esi |
205 | push esi |
206 | call strncmp |
206 | call strncmp |
207 | pop ebx |
207 | pop ebx |
208 | xor ebx, ebx |
208 | xor ebx, ebx |
209 | test eax, eax |
209 | test eax, eax |
210 | jne L32 |
210 | jne L32 |
211 | jmp L30 |
211 | jmp L30 |
212 | L33: |
212 | L33: |
213 | push ecx |
213 | push ecx |
214 | push 32 |
214 | push 32 |
215 | mov ecx, DWORD PTR [esp+28] |
215 | mov ecx, DWORD PTR [esp+28] |
216 | mov eax, DWORD PTR [ecx+OS_BASE+ebx*4] |
216 | mov eax, DWORD PTR [ecx+OS_BASE+ebx*4] |
217 | add eax, OS_BASE |
217 | add eax, OS_BASE |
218 | push eax |
218 | push eax |
219 | push esi |
219 | push esi |
220 | call strncmp |
220 | call strncmp |
221 | pop edx |
221 | pop edx |
222 | test eax, eax |
222 | test eax, eax |
223 | jne L34 |
223 | jne L34 |
224 | mov esi, DWORD PTR [esp+44] |
224 | mov esi, DWORD PTR [esp+44] |
225 | mov edx, DWORD PTR [esp+52] |
225 | mov edx, DWORD PTR [esp+52] |
226 | mov ecx, DWORD PTR [esp+28] |
226 | mov ecx, DWORD PTR [esp+28] |
227 | mov eax, DWORD PTR [esi+ebx*4] |
227 | mov eax, DWORD PTR [esi+ebx*4] |
228 | add eax, OS_BASE |
228 | add eax, OS_BASE |
229 | mov DWORD PTR [ecx+edx*4], eax |
229 | mov DWORD PTR [ecx+edx*4], eax |
230 | jmp L36 |
230 | jmp L36 |
231 | L34: |
231 | L34: |
232 | inc ebx |
232 | inc ebx |
233 | L32: |
233 | L32: |
234 | cmp ebx, DWORD PTR [__exports+24] |
234 | cmp ebx, DWORD PTR [__exports+24] |
235 | jb L33 |
235 | jb L33 |
236 | L36: |
236 | L36: |
237 | cmp ebx, DWORD PTR [__exports+24] |
237 | cmp ebx, DWORD PTR [__exports+24] |
238 | jne L37 |
238 | jne L37 |
239 | 239 | ||
240 | mov esi, msg_unresolved |
240 | mov esi, msg_unresolved |
241 | call sys_msg_board_str |
241 | call sys_msg_board_str |
242 | lea esi, [edi+2] |
242 | lea esi, [edi+2] |
243 | call sys_msg_board_str |
243 | call sys_msg_board_str |
244 | mov esi, msg_CR |
244 | mov esi, msg_CR |
245 | call sys_msg_board_str |
245 | call sys_msg_board_str |
246 | 246 | ||
247 | mov DWORD PTR [esp+40], 1 |
247 | mov DWORD PTR [esp+40], 1 |
248 | jmp L37 |
248 | jmp L37 |
249 | L30: |
249 | L30: |
250 | movzx eax, WORD PTR [edi] |
250 | movzx eax, WORD PTR [edi] |
251 | mov esi, DWORD PTR [esp+44] |
251 | mov esi, DWORD PTR [esp+44] |
252 | mov edi, DWORD PTR [esp+52] |
252 | mov edi, DWORD PTR [esp+52] |
253 | mov edx, DWORD PTR [esp+28] |
253 | mov edx, DWORD PTR [esp+28] |
254 | mov eax, DWORD PTR [esi+eax*4] |
254 | mov eax, DWORD PTR [esi+eax*4] |
255 | add eax, OS_BASE |
255 | add eax, OS_BASE |
256 | mov DWORD PTR [edx+edi*4], eax |
256 | mov DWORD PTR [edx+edi*4], eax |
257 | L37: |
257 | L37: |
258 | inc DWORD PTR [esp+52] |
258 | inc DWORD PTR [esp+52] |
259 | jmp L26 |
259 | jmp L26 |
260 | L27: |
260 | L27: |
261 | add DWORD PTR [esp+56], 20 |
261 | add DWORD PTR [esp+56], 20 |
262 | jmp L22 |
262 | jmp L22 |
263 | L25: |
263 | L25: |
264 | xor eax, eax |
264 | xor eax, eax |
265 | cmp DWORD PTR [esp+40], 0 |
265 | cmp DWORD PTR [esp+40], 0 |
266 | jne L40 |
266 | jne L40 |
267 | L20: |
267 | L20: |
268 | mov ecx, DWORD PTR [esp+32] |
268 | mov ecx, DWORD PTR [esp+32] |
269 | mov eax, ebp |
269 | mov eax, ebp |
270 | add eax, DWORD PTR [ecx+40] |
270 | add eax, DWORD PTR [ecx+40] |
271 | L40: |
271 | L40: |
272 | add esp, 60 |
272 | add esp, 60 |
273 | pop ebx |
273 | pop ebx |
274 | pop esi |
274 | pop esi |
275 | pop edi |
275 | pop edi |
276 | pop ebp |
276 | pop ebp |
277 | ret 8 |
277 | ret 8 |
278 | 278 | ||
279 | align 16 |
279 | align 16 |
280 | __exports: |
280 | __exports: |
281 | export 'KERNEL', \ |
281 | export 'KERNEL', \ |
282 | alloc_kernel_space, 'AllocKernelSpace', \ ; stdcall |
282 | alloc_kernel_space, 'AllocKernelSpace', \ ; stdcall |
283 | alloc_page, 'AllocPage', \ ; gcc ABI |
283 | alloc_page, 'AllocPage', \ ; gcc ABI |
284 | alloc_pages, 'AllocPages', \ ; stdcall |
284 | alloc_pages, 'AllocPages', \ ; stdcall |
285 | commit_pages, 'CommitPages', \ ; eax, ebx, ecx |
285 | commit_pages, 'CommitPages', \ ; eax, ebx, ecx |
286 | \ |
286 | \ |
287 | create_event, 'CreateEvent', \ ; ecx, esi |
287 | create_event, 'CreateEvent', \ ; ecx, esi |
288 | destroy_event, 'DestroyEvent', \ ; |
288 | destroy_event, 'DestroyEvent', \ ; |
289 | raise_event, 'RaiseEvent', \ ; eax, ebx, edx, esi |
289 | raise_event, 'RaiseEvent', \ ; eax, ebx, edx, esi |
290 | wait_event, 'WaitEvent', \ ; eax, ebx |
290 | wait_event, 'WaitEvent', \ ; eax, ebx |
291 | get_event_ex, 'GetEvent', \ ; edi |
291 | get_event_ex, 'GetEvent', \ ; edi |
292 | \ |
292 | \ |
293 | create_kernel_object, 'CreateObject', \ |
293 | create_kernel_object, 'CreateObject', \ |
294 | create_ring_buffer, 'CreateRingBuffer', \ ; stdcall |
294 | create_ring_buffer, 'CreateRingBuffer', \ ; stdcall |
295 | destroy_kernel_object, 'DestroyObject', \ |
295 | destroy_kernel_object, 'DestroyObject', \ |
296 | free_kernel_space, 'FreeKernelSpace', \ ; stdcall |
296 | free_kernel_space, 'FreeKernelSpace', \ ; stdcall |
297 | free_page, 'FreePage', \ ; eax |
297 | free_page, 'FreePage', \ ; eax |
298 | kernel_alloc, 'KernelAlloc', \ ; stdcall |
298 | kernel_alloc, 'KernelAlloc', \ ; stdcall |
299 | kernel_free, 'KernelFree', \ ; stdcall |
299 | kernel_free, 'KernelFree', \ ; stdcall |
300 | malloc, 'Kmalloc', \ |
300 | malloc, 'Kmalloc', \ |
301 | free, 'Kfree', \ |
301 | free, 'Kfree', \ |
302 | map_io_mem, 'MapIoMem', \ ; stdcall |
302 | map_io_mem, 'MapIoMem', \ ; stdcall |
303 | get_pg_addr, 'GetPgAddr', \ ; eax |
303 | get_pg_addr, 'GetPgAddr', \ ; eax |
304 | \ |
304 | \ |
305 | mutex_init, 'MutexInit', \ ; gcc fastcall |
305 | mutex_init, 'MutexInit', \ ; gcc fastcall |
306 | mutex_lock, 'MutexLock', \ ; gcc fastcall |
306 | mutex_lock, 'MutexLock', \ ; gcc fastcall |
307 | mutex_unlock, 'MutexUnlock', \ ; gcc fastcall |
307 | mutex_unlock, 'MutexUnlock', \ ; gcc fastcall |
308 | \ |
308 | \ |
309 | get_display, 'GetDisplay', \ |
309 | get_display, 'GetDisplay', \ |
310 | set_screen, 'SetScreen', \ |
310 | set_screen, 'SetScreen', \ |
311 | window._.get_rect, 'GetWindowRect', \ ; gcc fastcall |
311 | window._.get_rect, 'GetWindowRect', \ ; gcc fastcall |
312 | pci_api_drv, 'PciApi', \ |
312 | pci_api_drv, 'PciApi', \ |
313 | pci_read8, 'PciRead8', \ ; stdcall |
313 | pci_read8, 'PciRead8', \ ; stdcall |
314 | pci_read16, 'PciRead16', \ ; stdcall |
314 | pci_read16, 'PciRead16', \ ; stdcall |
315 | pci_read32, 'PciRead32', \ ; stdcall |
315 | pci_read32, 'PciRead32', \ ; stdcall |
316 | pci_write8, 'PciWrite8', \ ; stdcall |
316 | pci_write8, 'PciWrite8', \ ; stdcall |
317 | pci_write16, 'PciWrite16', \ ; stdcall |
317 | pci_write16, 'PciWrite16', \ ; stdcall |
318 | pci_write32, 'PciWrite32', \ ; stdcall |
318 | pci_write32, 'PciWrite32', \ ; stdcall |
319 | \ |
319 | \ |
320 | get_pid, 'GetPid', \ |
320 | get_pid, 'GetPid', \ |
321 | get_service, 'GetService', \ ; |
321 | get_service, 'GetService', \ ; |
322 | reg_service, 'RegService', \ ; stdcall |
322 | reg_service, 'RegService', \ ; stdcall |
323 | attach_int_handler, 'AttachIntHandler', \ ; stdcall |
323 | attach_int_handler, 'AttachIntHandler', \ ; stdcall |
324 | user_alloc, 'UserAlloc', \ ; stdcall |
324 | user_alloc, 'UserAlloc', \ ; stdcall |
325 | user_free, 'UserFree', \ ; stdcall |
325 | user_free, 'UserFree', \ ; stdcall |
326 | unmap_pages, 'UnmapPages', \ ; eax, ecx |
326 | unmap_pages, 'UnmapPages', \ ; eax, ecx |
327 | sys_msg_board_str, 'SysMsgBoardStr', \ |
327 | sys_msg_board_str, 'SysMsgBoardStr', \ |
328 | get_timer_ticks, 'GetTimerTicks', \ |
328 | get_timer_ticks, 'GetTimerTicks', \ |
329 | get_stack_base, 'GetStackBase', \ |
329 | get_stack_base, 'GetStackBase', \ |
330 | delay_hs, 'Delay', \ ; ebx |
330 | delay_hs, 'Delay', \ ; ebx |
331 | set_mouse_data, 'SetMouseData', \ ; |
331 | set_mouse_data, 'SetMouseData', \ ; |
332 | set_keyboard_data, 'SetKeyboardData', \ ; gcc fastcall |
332 | set_keyboard_data, 'SetKeyboardData', \ ; gcc fastcall |
333 | timer_hs, 'TimerHs' ; stdcall |
333 | timer_hs, 'TimerHs' ; stdcall |