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 |