Subversion Repositories Kolibri OS

Rev

Rev 166 | Rev 170 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 166 Rev 168
Line 2... Line 2...
2
 
2
 
Line 3... Line 3...
3
align 4
3
align 4
4
proc mem_test
4
proc mem_test
5
           mov eax, cr0
5
           mov eax, cr0
6
           or eax, 0x60000000   ;disable caching
6
           or eax, (CR0_CD+CR0_NW);disable caching
7
           mov cr0, eax
7
           mov cr0, eax
8
           wbinvd               ;invalidate cache
8
           wbinvd                 ;invalidate cache
Line 9... Line 9...
9
 
9
 
10
           xor     edi, edi
10
           xor     edi, edi
Line 15... Line 15...
15
           cmp dword [edi], 'TEST'
15
           cmp dword [edi], 'TEST'
16
           xchg ebx, dword [edi]
16
           xchg ebx, dword [edi]
17
           je @b
17
           je @b
18
 
18
 
Line 19... Line 19...
19
           and eax, 0x21
19
           and eax, not (CR0_CD+CR0_NW)
20
           mov cr0, eax
20
           mov cr0, eax
21
           mov eax, edi
21
           mov eax, edi
22
           ret
22
           ret
23
endp
23
endp
Line 38... Line 38...
38
           bt [cpu_caps], CAPS_PGE
38
           bt [cpu_caps], CAPS_PGE
39
           jnc @F
39
           jnc @F
40
           or eax, PG_GLOBAL
40
           or eax, PG_GLOBAL
41
           or ebx, CR4_PGE
41
           or ebx, CR4_PGE
42
@@:
42
 
-
 
43
@@:
43
           mov dword [sys_pgdir], eax
44
           mov cr4, ebx
-
 
45
 
-
 
46
           mov dword [sys_pgdir], eax
44
           add eax, 0x00400000
47
           add eax, 0x00400000
45
           mov dword [sys_pgdir+4], eax
48
           mov dword [sys_pgdir+4], eax
46
           add eax, 0x00400000
49
           add eax, 0x00400000
47
           mov dword [sys_pgdir+8], eax
50
           mov dword [sys_pgdir+8], eax
48
           add eax, 0x00400000
51
           add eax, 0x00400000
Line 50... Line 53...
50
 
53
 
Line 51... Line 54...
51
           mov dword [sys_pgdir+0x600], sys_master_tab+PG_SW
54
           mov dword [sys_pgdir+0x600], sys_master_tab+PG_SW
52
           mov dword [sys_master_tab+0x600], sys_master_tab+PG_SW
55
           mov dword [sys_master_tab+0x600], sys_master_tab+PG_SW
Line 53... Line -...
53
 
-
 
54
           mov cr4, ebx
-
 
55
 
56
 
56
           mov ecx, [pg_data.kernel_tables]
57
           mov ecx, [pg_data.kernel_tables]
57
           sub ecx, 4
58
           sub ecx, 4
58
           mov eax, tmp_page_tab+PG_SW
59
           mov eax, tmp_page_tab+PG_SW
59
           mov edi, sys_pgdir+16
60
           mov edi, sys_pgdir+16
Line 1100... Line 1101...
1100
           ja @f
1101
           ja @f
1101
           stdcall srv_handlerEx, ebx
1102
           stdcall srv_handlerEx, ebx
1102
           mov [esp+36], eax
1103
           mov [esp+36], eax
1103
           ret
1104
           ret
1104
 
1105
@@:
-
 
1106
           cmp eax, 18
-
 
1107
           ja @f
-
 
1108
           mov ecx, [CURRENT_TASK]
-
 
1109
           shl ecx, 8
-
 
1110
           mov eax, [ecx+PROC_BASE+APPDATA.sse_handler]
-
 
1111
           mov [ecx+PROC_BASE+APPDATA.sse_handler], ebx
-
 
1112
           mov [esp+36], eax
-
 
1113
           ret
-
 
1114
 
Line 1105... Line 1115...
1105
@@:
1115
@@:
1106
.fail:
1116
.fail:
1107
           xor eax, eax
1117
           xor eax, eax
1108
           mov [esp+36], eax
1118
           mov [esp+36], eax