Subversion Repositories Kolibri OS

Rev

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

Rev 400 Rev 430
Line 13... Line 13...
13
 
13
 
Line 14... Line 14...
14
           xor edi, edi
14
           xor edi, edi
15
           mov ebx, 'TEST'
15
           mov ebx, 'TEST'
16
@@:
16
@@:
17
           add edi, 0x400000
17
           add edi, 0x100000
18
           xchg ebx, dword [edi]
18
           xchg ebx, dword [edi]
19
           cmp dword [edi], 'TEST'
19
           cmp dword [edi], 'TEST'
20
           xchg ebx, dword [edi]
20
           xchg ebx, dword [edi]
21
           je @b
21
           je @b
22
           mov [MEM_AMOUNT-OS_BASE], edi
22
           mov [MEM_AMOUNT-OS_BASE], edi
Line 30... Line 30...
30
align 4
30
align 4
31
proc init_mem
31
proc init_mem
32
           mov eax, [MEM_AMOUNT-OS_BASE]
32
           mov eax, [MEM_AMOUNT-OS_BASE]
33
           mov [pg_data.mem_amount-OS_BASE], eax
33
           mov [pg_data.mem_amount-OS_BASE], eax
34
           mov [pg_data.kernel_max-OS_BASE], eax
-
 
Line 35... Line 34...
35
 
34
 
36
           shr eax, 12
35
           shr eax, 12
37
           mov edx, eax
36
           mov edx, eax
38
           mov [pg_data.pages_count-OS_BASE], eax
-
 
39
           mov [pg_data.kernel_pages-OS_BASE], eax
-
 
40
 
37
           mov [pg_data.pages_count-OS_BASE], eax
41
           shr eax, 3
38
           shr eax, 3
Line 42... Line 39...
42
           mov [pg_data.pagemap_size-OS_BASE], eax
39
           mov [pg_data.pagemap_size-OS_BASE], eax
43
 
40
 
44
           shr edx, 10
41
           cmp edx, (OS_BASE/4096)
45
           cmp edx, 3
42
           jbe @F
46
           ja @f
43
           mov edx, (OS_BASE/4096)
-
 
44
           jmp .set
-
 
45
@@:
-
 
46
           cmp edx, (HEAP_MIN_SIZE/4096)
-
 
47
           jae .set
-
 
48
           mov edx, (HEAP_MIN_SIZE/4096)
-
 
49
.set:
47
           inc edx       ;at least 4Mb for kernel heap
50
           mov [pg_data.kernel_pages-OS_BASE], edx
Line 48... Line 51...
48
@@:
51
           shr edx, 10
49
           mov [pg_data.kernel_tables-OS_BASE], edx
52
           mov [pg_data.kernel_tables-OS_BASE], edx
50
 
53
 
Line 68... Line 71...
68
           or eax, PG_GLOBAL
71
           or eax, PG_GLOBAL
69
           or ebx, CR4_PGE
72
           or ebx, CR4_PGE
70
@@:
73
@@:
71
           mov cr4, ebx
74
           mov cr4, ebx
72
           sub [pg_data.kernel_tables-OS_BASE], 2
75
           sub [pg_data.kernel_tables-OS_BASE], 1
Line 73... Line 76...
73
 
76
 
74
           mov [edx], eax
77
           mov [edx], eax
75
           add eax, 0x00400000
78
           add eax, 0x00400000
76
           mov [edx+4], eax
79
;           mov [edx+4], eax
Line 77... Line 80...
77
           add edx, 8
80
           add edx, 4
78
 
81
 
79
           mov eax, 0x800000+PG_SW
82
           mov eax, 0x400000+PG_SW
80
           mov ecx, (tmp_page_tab-0x800000)/4096
83
           mov ecx, (tmp_page_tab-0x400000)/4096
81
           jmp .map_low
84
           jmp .map_low
82
.no_PSE:
85
.no_PSE:
83
           mov eax, PG_SW
86
           mov eax, PG_SW