Rev 400 | 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 |