Subversion Repositories Kolibri OS

Rev

Rev 164 | Rev 172 | Go to most recent revision | Show entire file | Regard 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