Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 6318 → Rev 6319

/kernel/branches/Kolibri-acpi/core/taskman.inc
50,7 → 50,6
rep stosd
}
 
 
_strlen:
mov ecx, 0xFFFFFFFF
xor eax, eax
59,7 → 58,6
sub eax, ecx
retn
 
 
fs_execute_from_sysdir:
xor ebx, ebx
fs_execute_from_sysdir_param:
94,29 → 92,16
 
endl
 
xchg bx, bx
mov eax, [ebp]
mov [flags], edx
mov [cmdline], ebx
mov [filename], eax
 
call lock_application_table
 
call alloc_thread_slot
mov esi, -0x20 ; too many processes
test eax, eax
jz .err_0
 
mov [slot], eax
shl eax, 8
add eax, SLOT_BASE
mov [slot_base], eax
 
mov eax, [filename]
stdcall load_file, eax
mov esi, -ERROR_FILE_NOT_FOUND
test eax, eax
jz .err_0
jz .err_file
 
mov [file_base], eax
mov [file_size], ebx
127,21 → 112,31
test eax, eax
jz .err_hdr
 
call lock_application_table
 
call alloc_thread_slot
mov esi, -0x20 ; too many processes
test eax, eax
jz .err_0
 
mov [slot], eax
shl eax, 8
lea edi, [SLOT_BASE+eax]
mov [slot_base], edi
 
;clean extended information about process
mov edi, [slot_base]
mov ecx, 265/4
mov ecx, 256/4
xor eax, eax
cld
rep stosd
 
; write application name
lea eax, [filename]
stdcall strrchr, eax, '/' ; now eax points to name without path
stdcall strrchr, [filename], '/' ; now eax points to name without path
 
lea esi, [eax+1]
test eax, eax
jnz @F
lea esi, [filename]
mov esi, [filename]
@@:
mov ecx, 11 ; 11 chars for name! 8 - is old value!
mov edi, [slot_base]
216,10 → 211,12
call unlock_application_table
ret
 
.err_0:
call unlock_application_table
 
.err_hdr:
stdcall kernel_free, [file_base]
.err_0:
call unlock_application_table
.err_file:
mov eax, esi
ret
endp
318,7 → 315,6
popfd
ret
 
 
align 4
proc create_process stdcall, app_size:dword
locals
381,8 → 377,6
or eax, PG_SWR
mov [edi-4096+(page_tabs shr 20)], eax
 
xchg bx, bx
 
lea edx, [edi-4096]
mov esi, [app_tabs]
 
403,6 → 397,7
dec esi
jnz .alloc_page_dir
 
stdcall map_page, [tmp_task_ptab], 0, PG_UNMAP
mov eax, [process]
 
pop edi
409,11 → 404,11
pop esi
pop ebx
ret
.fail:
mov ecx, [process]
jcxz @F
 
.fail:
cmp [process], 0
je @f
;; stdcall destroy_app_space, [dir_addr], 0
call destroy_process
@@:
xor eax, eax
pop edi
423,18 → 418,6
endp
 
align 4
set_cr3:
pushfd
cli
mov ebx, [current_slot]
mov [current_process], eax
mov [ebx+APPDATA.process], eax
mov eax, [eax+PROC.pdt_0_phys]
mov cr3, eax
popfd
ret
 
align 4
proc destroy_page_table stdcall, pg_tab:dword
 
push esi
693,7 → 676,6
mov ecx, 0x8000
@@:
mov ebx, [offset]
; add ebx, new_app_base
push ecx
stdcall map_memEx, [proc_mem_map], \
[slot], ebx, ecx, PG_SWR
861,7 → 843,6
align 4
common_app_entry:
 
xchg bx, bx
mov ebp, [current_slot]
mov ebp, [ebp+APPDATA.exec_params]
test ebp, ebp
885,8 → 866,8
stosb
 
.copy_cmdline:
mov edi, [ebx+APP_HDR.cmdline]
mov ecx, [ebx+APP_HDR.cmdline_size]
mov edi, [ebp+APP_HDR.cmdline]
mov ecx, [ebp+APP_HDR.cmdline_size]
test edi, edi
jz .check_tls_header
 
917,24 → 898,6
popad
iretd
 
align 4
tls_app_entry:
 
call init_heap
stdcall user_alloc, 4096
 
mov edx, [current_slot]
mov [edx+APPDATA.tls_base], eax
mov [tls_data_l+2], ax
shr eax, 16
mov [tls_data_l+4], al
mov [tls_data_l+7], ah
mov dx, app_tls
mov fs, dx
popad
iretd
 
 
EFL_IF equ 0x0200
EFL_IOPL1 equ 0x1000
EFL_IOPL2 equ 0x2000
1009,11 → 972,6
shl ebx, 5
lea ecx, [draw_data+ebx];ecx - pointer to draw data
 
; mov edx, common_app_entry
; cmp [ebx*8+SLOT_BASE+APPDATA.tls_base], -1
; jne @F
; mov edx, tls_app_entry
;@@:
; set window state to 'normal' (non-minimized/maximized/rolled-up) state
mov [ebx+window_data+WDATA.fl_wstate], WSTATE_NORMAL
mov [ebx+window_data+WDATA.fl_redraw], 1
/kernel/branches/Kolibri-acpi/core/v86.inc
37,7 → 37,7
; allocate tables
mov ebx, eax
 
stdcall create_process, 4096, eax, 4096 ;FIXME
stdcall create_process, 4096
test eax, eax
jz .fail2
 
51,7 → 51,6
 
mov [ebx+V86_machine.iopm], eax
 
 
; initialize tables
push edi
mov edi, eax
66,7 → 65,6
cli
mov cr3, eax
 
 
; now V86 specific: initialize known addresses in first Mb
 
; first page - BIOS data (shared between all machines!)
109,10 → 107,8
add eax, edx
loop @b
 
mov eax, sys_proc
push ebx
call set_cr3
pop ebx
mov eax, [sys_proc+PROC.pdt_0_phys]
mov cr3, eax
popfd
 
pop edi
/kernel/branches/Kolibri-acpi/kernel.asm
761,7 → 761,7
mov esi, boot_v86machine
call boot_log
; Initialize system V86 machine
; call init_sys_v86
call init_sys_v86
 
mov esi, boot_inittimer
call boot_log