Rev 164 | Rev 172 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 164 | Rev 170 | ||
---|---|---|---|
Line -... | Line 1... | ||
- | 1 | GREEDY_KERNEL equ 0; 1 |
|
- | 2 | ||
Line 1... | Line 3... | ||
1 | struc APP_HEADER_00 |
3 | |
2 | { .banner dq ? |
4 | struc APP_HEADER_00 |
3 | .version dd ? ;+8 |
5 | { .banner dq ? |
4 | .start dd ? ;+12 |
6 | .version dd ? ;+8 |
Line 132... | Line 134... | ||
132 | mov [app_size], eax |
134 | and eax, NOT(4095) |
133 | mov ebx, eax |
135 | mov [app_size], eax |
134 | shr eax, 12 |
136 | mov ebx, eax |
135 | mov [app_pages], eax |
137 | shr eax, 12 |
136 | add ebx, 0x3FFFFF |
138 | mov [app_pages], eax |
- | 139 | ||
137 | and ebx, NOT(0x3FFFFF) |
140 | add ebx, 0x3FFFFF |
138 | shr ebx, 22 |
141 | and ebx, NOT(0x3FFFFF) |
139 | mov [app_tabs], ebx |
142 | shr ebx, 22 |
140 | 143 | mov [app_tabs], ebx |
|
Line 141... | Line 144... | ||
141 | mov eax, [img_size] |
144 | |
142 | add eax, 4095 |
145 | mov ecx, [img_size] |
143 | and eax, NOT(4095) |
146 | add ecx, 4095 |
Line 144... | Line 147... | ||
144 | 147 | and ecx, NOT(4095) |
|
145 | mov [img_size], eax |
148 | |
146 | shr eax, 12 |
149 | mov [img_size], ecx |
- | 150 | shr ecx, 12 |
|
- | 151 | mov [img_pages], ecx |
|
- | 152 | ||
- | 153 | if GREEDY_KERNEL |
|
- | 154 | lea eax, [ecx+ebx+2] ;only image size |
|
- | 155 | else |
|
- | 156 | lea eax, [eax+ebx+2] ;all requested memory |
|
- | 157 | end if |
|
Line 147... | Line 158... | ||
147 | mov [img_pages], eax |
158 | cmp eax, [pg_data.pages_free] |
148 | 159 | ja .fail |
|
149 | call alloc_page |
160 | |
150 | test eax, eax |
161 | call alloc_page |
Line 537... | Line 548... | ||
537 | mov al, ' ' |
548 | .copy_process_ext_done: |
538 | rep stosb |
549 | mov al, ' ' |
539 | 550 | rep stosb |
|
Line 540... | Line 551... | ||
540 | ; read header |
551 | |
541 | - | ||
542 | lea eax, [file_size] |
552 | ; read header |
- | 553 | lea eax, [file_size] |
|
- | 554 | mov ebx, [eax] |
|
543 | mov edi, TMP_BUFF |
555 | mov [img_size], ebx |
544 | call [fn_read] |
556 | mov edi, TMP_BUFF |
- | 557 | call [fn_read] |
|
545 | test eax, eax |
558 | |
546 | jnz .err |
559 | test eax, eax |
Line 547... | Line 560... | ||
547 | 560 | jnz .err |
|
Line 559... | Line 572... | ||
559 | jz .err |
572 | test eax, eax |
560 | 573 | jz .err |
|
Line 561... | Line 574... | ||
561 | mov eax, cr3 |
574 | |
562 | mov [save_cr3], eax |
575 | mov eax, cr3 |
- | 576 | mov [save_cr3], eax |
|
- | 577 | if GREEDY_KERNEL |
|
- | 578 | stdcall create_app_space,[app_mem],[img_size] |
|
563 | stdcall create_app_space,[app_mem], [app_mem];[file_size] |
579 | else |
- | 580 | stdcall create_app_space,[app_mem],[app_mem] |
|
564 | test eax, eax |
581 | end if |
565 | jz .failed |
582 | test eax, eax |
Line 566... | Line 583... | ||
566 | 583 | jz .failed |
|
567 | mov ebx,[slot] |
584 |