Rev 1161 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1161 | Rev 1198 | ||
---|---|---|---|
Line 89... | Line 89... | ||
89 | } |
89 | } |
Line 90... | Line 90... | ||
90 | 90 | ||
91 | align 4 |
91 | align 4 |
Line 92... | Line 92... | ||
92 | proc init_kernel_heap |
92 | proc init_kernel_heap |
93 | 93 | ||
94 | mov ecx, 64/4 |
94 | mov ecx, 64 |
95 | mov edi, mem_block_list |
95 | mov edi, mem_block_list |
96 | xor eax, eax |
96 | xor eax, eax |
Line 136... | Line 136... | ||
136 | mov [ebx+block_prev], eax |
136 | mov [ebx+block_prev], eax |
137 | mov [ebx+list_fd], eax |
137 | mov [ebx+list_fd], eax |
138 | mov [ebx+list_bk], eax |
138 | mov [ebx+list_bk], eax |
139 | mov [ebx+block_base], HEAP_BASE+4096*MEM_BLOCK_SIZE |
139 | mov [ebx+block_base], HEAP_BASE+4096*MEM_BLOCK_SIZE |
Line -... | Line 140... | ||
- | 140 | ||
140 | 141 | mov ecx, [pg_data.kernel_pages] |
|
141 | mov ecx, [MEM_AMOUNT] |
142 | shl ecx, 12 |
142 | sub ecx, (HEAP_BASE - OS_BASE + 4096*MEM_BLOCK_SIZE) |
143 | sub ecx, HEAP_BASE+4096*MEM_BLOCK_SIZE |
143 | mov [heap_size], ecx |
144 | mov [heap_size], ecx |
144 | mov [heap_free], ecx |
145 | mov [heap_free], ecx |
145 | mov [ebx+block_size], ecx |
146 | mov [ebx+block_size], ecx |
Line 150... | Line 151... | ||
150 | 151 | ||
151 | mov [mem_block_list+63*4], ebx |
152 | mov [mem_block_list+63*4], ebx |
152 | mov byte [mem_block_map], 0xFC |
153 | mov byte [mem_block_map], 0xFC |
153 | and [heap_mutex], 0 |
154 | and [heap_mutex], 0 |
154 | mov [heap_blocks], 4095 |
155 | mov [heap_blocks], 4095 |
155 | mov [free_blocks], 4095 |
156 | mov [free_blocks], 4094 |
156 | ret |
157 | ret |
Line 157... | Line 158... | ||
157 | endp |
158 | endp |
158 | 159 |