Rev 170 | Rev 188 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 170 | Rev 172 | ||
---|---|---|---|
Line 380... | Line 380... | ||
380 | mov [new_size], edi |
380 | mov [new_size], edi |
381 | 381 | ||
Line 382... | Line 382... | ||
382 | mov edx,[CURRENT_TASK] |
382 | mov edx,[CURRENT_TASK] |
383 | shl edx,8 |
383 | shl edx,8 |
- | 384 | cmp [PROC_BASE+APPDATA.heap_base+edx],0 |
|
- | 385 | jne .exit |
|
- | 386 | ||
384 | mov esi, [PROC_BASE+0x8c+edx] |
387 | mov esi, [PROC_BASE+APPDATA.mem_size+edx] |
385 | add esi, 4095 |
388 | add esi, 4095 |
386 | and esi, not 4095 |
389 | and esi, not 4095 |
Line 387... | Line 390... | ||
387 | 390 | ||
388 | cmp edi, esi |
391 | cmp edi, esi |
Line 520... | Line 523... | ||
520 | pushad |
523 | pushad |
521 | 524 | ||
Line 522... | Line 525... | ||
522 | mov ebp, esp |
525 | mov ebp, esp |
523 | mov eax, cr2 |
526 | mov eax, cr2 |
524 | sub esp, 4 |
527 | push eax |
525 | mov [esp], eax |
- | |
526 | push ds |
528 | push ds |
Line 527... | Line 529... | ||
527 | 529 | ||
528 | mov ax, 0x10 |
530 | mov ax, 0x10 |
Line 529... | Line -... | ||
529 | mov ds, ax |
- | |
530 | - | ||
531 | ; mov edx, 0x400 ;bocsh |
- | |
532 | ; mov al,0xff ;bocsh |
- | |
533 | ; out dx, al ;bocsh |
- | |
534 | ; nop ;bocsh fix |
- | |
535 | 531 | mov ds, ax |
|
Line 536... | Line 532... | ||
536 | 532 | ||
537 | mov ebx, [ebp-4] |
533 | mov ebx, [ebp-4] |
Line 550... | Line 546... | ||
550 | .user_space: |
546 | .user_space: |
551 | inc [pg_data.pages_faults] |
547 | inc [pg_data.pages_faults] |
Line 552... | Line 548... | ||
552 | 548 | ||
553 | shr ebx, 12 |
549 | shr ebx, 12 |
554 | mov eax, [pages_tab+ebx*4] |
- | |
555 | 550 | mov ecx, ebx |
|
556 | shr ebx, 10 |
551 | shr ecx, 10 |
- | 552 | mov edx, [master_tab+ecx*4] |
|
- | 553 | test edx, 1 |
|
Line -... | Line 554... | ||
- | 554 | jz .fail |
|
557 | mov edx, [master_tab+ebx*4] |
555 | |
558 | 556 | mov eax, [pages_tab+ebx*4] |
|
Line 559... | Line 557... | ||
559 | test eax, 2 |
557 | test eax, 2 |
560 | jz .exit |
558 | jz .fail |
561 | 559 | ||
Line 579... | Line 577... | ||
579 | mov esp, ebp |
577 | mov esp, ebp |
580 | popad |
578 | popad |
581 | add esp, 4 |
579 | add esp, 4 |
582 | iretd |
580 | iretd |
583 | 581 | .fail: |
|
- | 582 | pop ds |
|
- | 583 | mov esp, ebp |
|
- | 584 | popad |
|
- | 585 | add esp, 4 |
|
- | 586 | ||
- | 587 | save_ring3_context ;debugger support |
|
- | 588 | ||
- | 589 | mov bl, 14 |
|
- | 590 | jmp exc_c |
|
- | 591 | iretd |
|
- | 592 | ||
Line 584... | Line 593... | ||
584 | .kernel_space: |
593 | .kernel_space: |
585 | shr ebx, 12 |
594 | shr ebx, 12 |
586 | mov eax, [pages_tab+ebx*4] |
595 | mov eax, [pages_tab+ebx*4] |
587 | shr ebx, 10 |
596 | shr ebx, 10 |
Line 900... | Line 909... | ||
900 | align 4 |
909 | align 4 |
901 | sysfn_meminfo: |
910 | sysfn_meminfo: |
Line 902... | Line 911... | ||
902 | 911 | ||
- | 912 | add ebx, new_app_base |
|
- | 913 | cmp ebx, new_app_base |
|
- | 914 | jb .fail |
|
903 | add ebx, new_app_base |
915 | |
904 | mov eax, [pg_data.pages_count] |
916 | mov eax, [pg_data.pages_count] |
- | 917 | mov [ebx], eax |
|
- | 918 | shl eax, 12 |
|
905 | mov [ebx], eax |
919 | mov [esp+36], eax |
906 | mov ecx, [pg_data.pages_free] |
920 | mov ecx, [pg_data.pages_free] |
907 | mov [ebx+4], ecx |
921 | mov [ebx+4], ecx |
908 | mov edx, [pg_data.pages_faults] |
922 | mov edx, [pg_data.pages_faults] |
909 | mov [ebx+8], edx |
923 | mov [ebx+8], edx |
Line 914... | Line 928... | ||
914 | mov eax, [heap_blocks] |
928 | mov eax, [heap_blocks] |
915 | mov [ebx+20], eax |
929 | mov [ebx+20], eax |
916 | mov ecx, [free_blocks] |
930 | mov ecx, [free_blocks] |
917 | mov [ebx+24], ecx |
931 | mov [ebx+24], ecx |
918 | 932 | ret |
|
- | 933 | .fail: |
|
919 | ret |
934 | mov dword [esp+36], -1 |
- | 935 | ret |
|
920 | 936 | ||
Line 921... | Line 937... | ||
921 | align 4 |
937 | align 4 |
922 | new_services: |
938 | new_services: |
Line 927... | Line 943... | ||
927 | cmp eax, 11 |
943 | cmp eax, 11 |
928 | jb .fail |
944 | jb .fail |
929 | ja @f |
945 | ja @f |
Line 930... | Line -... | ||
930 | - | ||
931 | ; add ebx, new_app_base |
- | |
932 | ; stdcall get_mem_info, ebx |
- | |
933 | ; mov [esp+36], eax |
- | |
934 | ; ret |
- | |
935 | ;@@: |
- | |
936 | ; cmp eax, 11 |
- | |
937 | ; ja @f |
- | |
938 | 946 | ||
939 | stdcall init_heap, ebx |
947 | stdcall init_heap, ebx |
940 | mov [esp+36], eax |
948 | mov [esp+36], eax |
941 | ret |
949 | ret |
942 | @@: |
950 | @@: |
Line 956... | Line 964... | ||
956 | @@: |
964 | @@: |
957 | cmp eax, 14 |
965 | cmp eax, 14 |
958 | ja @f |
966 | ja @f |
959 | add ebx,new_app_base |
967 | add ebx,new_app_base |
960 | stdcall get_notify, ebx |
968 | cmp ebx, new_app_base |
- | 969 | jb .fail |
|
- | 970 | stdcall get_notify, ebx |
|
961 | ret |
971 | ret |
962 | @@: |
972 | @@: |
963 | cmp eax, 15 |
973 | cmp eax, 15 |
964 | ja @f |
974 | ja @f |
965 | mov ecx, [CURRENT_TASK] |
975 | mov ecx, [CURRENT_TASK] |
Line 972... | Line 982... | ||
972 | cmp eax, 16 |
982 | cmp eax, 16 |
973 | ja @f |
983 | ja @f |
974 | 984 | ||
Line 975... | Line 985... | ||
975 | add ebx, new_app_base |
985 | add ebx, new_app_base |
- | 986 | cmp ebx, new_app_base |
|
- | 987 | jb .fail |
|
976 | stdcall get_service, ebx |
988 | stdcall get_service, ebx |
977 | mov [esp+36], eax |
989 | mov [esp+36], eax |
978 | ret |
990 | ret |
979 | @@: |
991 | @@: |
980 | cmp eax, 17 |
992 | cmp eax, 17 |
Line 1233... | Line 1245... | ||
1233 | wrmsr |
1245 | wrmsr |
1234 | ret |
1246 | ret |
1235 | endp |
1247 | endp |
1236 | 1248 | ||
Line -... | Line 1249... | ||
- | 1249 | align 4 |
|
- | 1250 | proc stall stdcall, delay:dword |
|
- | 1251 | push ecx |
|
- | 1252 | push edx |
|
- | 1253 | push ebx |
|
- | 1254 | push eax |
|
- | 1255 | ||
- | 1256 | mov eax, [delay] |
|
- | 1257 | mul [stall_mcs] |
|
- | 1258 | mov ebx, eax ;low |
|
- | 1259 | mov ecx, edx ;high |
|
- | 1260 | rdtsc |
|
- | 1261 | add ebx, eax |
|
- | 1262 | adc ecx,edx |
|
- | 1263 | @@: |
|
- | 1264 | rdtsc |
|
- | 1265 | sub eax, ebx |
|
- | 1266 | sbb edx, ecx |
|
- | 1267 | jb @B |
|
- | 1268 | ||
- | 1269 | pop eax |
|
- | 1270 | pop ebx |
|
- | 1271 | pop edx |
|
- | 1272 | pop ecx |
|
- | 1273 | ret |
|
- | 1274 | endp |
|
- | 1275 | ||
1237 | iglobal |
1276 | iglobal |
1238 | align 4 |
1277 | align 4 |
1239 | intel_str db "GenuineIntel",0 |
1278 | intel_str db "GenuineIntel",0 |
1240 | AMD_str db "AuthenticAMD",0 |
1279 | AMD_str db "AuthenticAMD",0 |
1241 | endg |
1280 | endg |
Line 1263... | Line 1302... | ||
1263 | 1302 | ||
Line 1264... | Line 1303... | ||
1264 | fpu_data rd 1 |
1303 | fpu_data rd 1 |
1265 | fdd_buff rd 1 |
1304 | fdd_buff rd 1 |
Line -... | Line 1305... | ||
- | 1305 | ||
1266 | 1306 | stall_mcs rd 1 |
|
Line 1267... | Line 1307... | ||
1267 | ;;CPUID information |
1307 | ;;CPUID information |
1268 | 1308 | ||
1269 | cpu_vendor rd 3 |
1309 | cpu_vendor rd 3 |