Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 1055 → Rev 1043

/kernel/trunk/kernel.asm
725,11 → 725,11
mov esi,boot_tsc
call boot_log
cli
rdtsc ;call _rdtsc
call _rdtsc
mov ecx,eax
mov esi,250 ; wait 1/4 a second
call delay_ms
rdtsc ;call _rdtsc
call _rdtsc
sti
sub eax,ecx
shl eax,2
1013,27 → 1013,57
 
checkidle:
pushad
mov ebx,[timer_ticks]
 
cmp [check_idle_semaphore],0
jne no_idle_state
 
call change_task
jmp idle_loop_entry
mov eax,[idlemem]
mov ebx,[timer_ticks] ;[0xfdf0]
cmp eax,ebx
jnz idle_exit
call _rdtsc
mov ecx,eax
idle_loop:
cmp ebx,[timer_ticks]
jne idle_exit
rdtsc ;call _rdtsc
mov ecx,eax
hlt
rdtsc ;call _rdtsc
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
add [idleuse],eax
idle_loop_entry:
cmp [check_idle_semaphore],0
je idle_loop
dec [check_idle_semaphore]
mov ebx,[idleuse]
add ebx,eax
mov [idleuse],ebx
 
popad
ret
 
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
1137,6 → 1167,7
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
4638,7 → 4669,7
 
ret
 
if used _rdtsc
 
_rdtsc:
bt [cpu_caps], CAPS_TSC
jnc ret_rdtsc
4648,7 → 4679,6
mov edx,0xffffffff
mov eax,0xffffffff
ret
end if
 
rerouteirqs:
 
5591,3 → 5621,4
 
uglobals_size = $ - endofcode
diff16 "end of kernel code",0,$