Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 1043 → Rev 1055

/kernel/trunk/kernel.asm
725,11 → 725,11
mov esi,boot_tsc
call boot_log
cli
call _rdtsc
rdtsc ;call _rdtsc
mov ecx,eax
mov esi,250 ; wait 1/4 a second
call delay_ms
call _rdtsc
rdtsc ;call _rdtsc
sti
sub eax,ecx
shl eax,2
1013,57 → 1013,27
 
checkidle:
pushad
 
cmp [check_idle_semaphore],0
jne no_idle_state
 
mov ebx,[timer_ticks]
call change_task
mov eax,[idlemem]
mov ebx,[timer_ticks] ;[0xfdf0]
cmp eax,ebx
jnz idle_exit
call _rdtsc
jmp idle_loop_entry
idle_loop:
cmp ebx,[timer_ticks]
jne idle_exit
rdtsc ;call _rdtsc
mov ecx,eax
idle_loop:
hlt
rdtsc ;call _rdtsc
sub eax,ecx
add [idleuse],eax
idle_loop_entry:
cmp [check_idle_semaphore],0
jne idle_loop_exit
mov eax,[timer_ticks] ;[0xfdf0]
cmp ebx,eax
jz idle_loop
idle_loop_exit:
mov [idlemem],eax
call _rdtsc
sub eax,ecx
mov ebx,[idleuse]
add ebx,eax
mov [idleuse],ebx
 
popad
ret
 
je idle_loop
dec [check_idle_semaphore]
idle_exit:
 
mov ebx,[timer_ticks] ;[0xfdf0]
mov [idlemem],ebx
call change_task
 
popad
ret
 
no_idle_state:
 
dec [check_idle_semaphore]
 
mov ebx,[timer_ticks] ;[0xfdf0]
mov [idlemem],ebx
call change_task
 
popad
ret
 
uglobal
idlemem dd 0x0
idleuse dd 0x0
idleusesec dd 0x0
check_idle_semaphore dd 0x0
1167,7 → 1137,6
mov [BTN_ADDR],dword BUTTON_INFO ; address of button list
 
;!! IP 04.02.2005:
mov [next_usage_update], 100
mov byte [DONT_SWITCH], 0 ; change task if possible
 
ret
4669,7 → 4638,7
 
ret
 
 
if used _rdtsc
_rdtsc:
bt [cpu_caps], CAPS_TSC
jnc ret_rdtsc
4679,6 → 4648,7
mov edx,0xffffffff
mov eax,0xffffffff
ret
end if
 
rerouteirqs:
 
5621,4 → 5591,3
 
uglobals_size = $ - endofcode
diff16 "end of kernel code",0,$