/kernel/trunk/core/sched.inc |
---|
40,7 → 40,6 |
mov ebx,[0x3000] |
xor esi,esi ;esi - should we change task? |
cmp [0xffff], byte 1 |
je .do_not_change_task |
66,20 → 65,11 |
mov [0x3000],ebx |
mov [0x3010],edi |
jmp @f |
.do_not_change_task: |
inc esi ;set don't change task flag |
@@: |
call _rdtsc |
mov [edi+0x18],eax |
cmp [0xffff],byte 0 |
je @f |
dec byte [0xffff] |
@@: |
shl ebx, 3 |
xor eax, eax |
add ebx, tss0 |
90,14 → 80,15 |
mov dx,0x20 |
out dx,al |
test esi,esi ; skip jmp to TSS if we aren't going to switch tasks |
jnz @f |
cmp [0xffff],byte 0 |
je .switch |
dec byte [0xffff] |
jmp @f |
.switch: |
jmp pword [0xB000] |
inc [context_counter] ;noname & halyavin |
jmp pword [0xB000] |
@@: |
@@: |
pop es ds |
popad |
iret |