Rev 221 | Rev 233 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 221 | Rev 227 | ||
---|---|---|---|
Line 804... | Line 804... | ||
804 | mov edi, [dst_offset] |
804 | mov edi, [dst_offset] |
805 | add edi, [ipc_tmp] |
805 | add edi, [ipc_tmp] |
806 | cmp dword [edi], 0 |
806 | cmp dword [edi], 0 |
807 | jnz .ipc_blocked ;if dword [buffer]<>0 - ipc blocked now |
807 | jnz .ipc_blocked ;if dword [buffer]<>0 - ipc blocked now |
- | 808 | ||
808 | mov ebx, dword [edi+4] |
809 | mov ebx, dword [edi+4] |
809 | mov edx, ebx |
810 | mov edx, ebx |
810 | add ebx, 8 |
811 | add ebx, 8 |
811 | add ebx, [msg_size] |
812 | add ebx, [msg_size] |
812 | cmp ebx, [buf_size] |
813 | cmp ebx, [buf_size] |
813 | ja .buffer_overflow ;esi<0 - not enough memory in buffer |
814 | ja .buffer_overflow ;esi<0 - not enough memory in buffer |
- | 815 | ||
814 | mov dword [edi+4], ebx |
816 | mov dword [edi+4], ebx |
815 | mov eax,[TASK_BASE] |
817 | mov eax,[TASK_BASE] |
816 | mov eax, [eax+0x04] ;eax - our PID |
818 | mov eax, [eax+0x04] ;eax - our PID |
817 | mov edi, [dst_offset] |
819 | mov edi, [dst_offset] |
818 | add edi, [ipc_tmp] |
820 | add edi, [ipc_tmp] |
Line 938... | Line 940... | ||
938 | ja @f |
940 | ja @f |
939 | add ebx,new_app_base |
941 | add ebx, new_app_base |
940 | cmp ebx, new_app_base |
942 | cmp ebx, new_app_base |
941 | jb .fail |
943 | jb .fail |
942 | stdcall get_notify, ebx |
944 | stdcall get_event_ex, ebx, ecx |
943 | ret |
945 | mov [esp+36], eax |
- | 946 | ret |
|
944 | @@: |
947 | @@: |
945 | cmp eax, 15 |
948 | cmp eax, 15 |
946 | ja @f |
949 | ja @f |
947 | mov ecx, [CURRENT_TASK] |
950 | mov ecx, [CURRENT_TASK] |
948 | shl ecx, 8 |
951 | shl ecx, 8 |
Line 978... | Line 981... | ||
978 | mov [esp+36], eax |
981 | mov [esp+36], eax |
979 | ret |
982 | ret |
980 | @@: |
983 | @@: |
981 | cmp eax, 19 |
984 | cmp eax, 19 |
982 | ja @f |
985 | ja .fail |
983 | add ebx, new_app_base |
986 | add ebx, new_app_base |
984 | cmp ebx, new_app_base |
987 | cmp ebx, new_app_base |
985 | jb .fail |
988 | jb .fail |
986 | stdcall load_library, ebx |
989 | stdcall load_library, ebx |
987 | mov [esp+36], eax |
990 | mov [esp+36], eax |
988 | ret |
991 | ret |
989 | @@: |
992 | |
990 | .fail: |
993 | .fail: |
991 | xor eax, eax |
994 | xor eax, eax |
992 | mov [esp+36], eax |
995 | mov [esp+36], eax |
993 | ret |
996 | ret |
994 | 997 | ||
Line 1291... | Line 1294... | ||
1291 | endg |
1294 | endg |
Line 1292... | Line 1295... | ||
1292 | 1295 | ||
1293 | uglobal |
1296 | uglobal |
- | 1297 | align 16 |
|
1294 | align 16 |
1298 | |
1295 | dll_tab rb 32*32 |
1299 | dll_tab rb 32*32 |
- | 1300 | srv_tab rb 36*32 |
|
- | 1301 | mem_block_map rb 512 |
|
- | 1302 | event_map rb 128 |
|
- | 1303 | mem_block_list rd 64 |
|
- | 1304 | mem_block_mask rd 2 |
|
1296 | srv_tab rb 36*32 |
1305 | |
1297 | dll_map rd 1 |
1306 | dll_map rd 1 |
Line 1298... | Line 1307... | ||
1298 | srv_map rd 1 |
1307 | srv_map rd 1 |
1299 | - | ||
1300 | mem_used_list rd 1 |
- | |
1301 | mem_block_list rd 64 |
1308 | |
1302 | mem_block_map rb 512 |
1309 | mem_used_list rd 1 |
1303 | mem_block_arr rd 1 |
1310 | mem_block_arr rd 1 |
1304 | mem_block_start rd 1 |
- | |
1305 | mem_block_end rd 1 |
1311 | mem_block_start rd 1 |
1306 | mem_block_mask rd 2 |
1312 | mem_block_end rd 1 |
1307 | heap_size rd 1 |
1313 | heap_size rd 1 |
1308 | heap_free rd 1 |
1314 | heap_free rd 1 |
Line 1309... | Line 1315... | ||
1309 | heap_blocks rd 1 |
1315 | heap_blocks rd 1 |
1310 | free_blocks rd 1 |
1316 | free_blocks rd 1 |
- | 1317 | ||
- | 1318 | page_start rd 1 |
|
- | 1319 | page_end rd 1 |
|
- | 1320 | events rd 1 |
|
1311 | 1321 | event_start rd 1 |
|
1312 | page_start rd 1 |
- | |
1313 | page_end rd 1 |
1322 | event_end rd 1 |
Line 1314... | Line 1323... | ||
1314 | sys_page_map rd 1 |
1323 | |
1315 | ; app_load rd 1 |
1324 | sys_page_map rd 1 |