Deleted cross order of registers in functions 44, 45. Some optimizations of them.
git-svn-id: svn://kolibrios.org@765 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
70dc0ef970
commit
8d83c4684d
@ -145,10 +145,10 @@ iglobal
|
|||||||
dd sys_getbackground ; 39-GetBackgroundSize,ReadBgrData,.
|
dd sys_getbackground ; 39-GetBackgroundSize,ReadBgrData,.
|
||||||
dd 0
|
dd 0
|
||||||
dd 0
|
dd 0
|
||||||
dd 0 ; 42-ReadIrqData
|
dd 0
|
||||||
dd sys_outport ; 43-SendDeviceData
|
dd sys_outport ; 43-SendDeviceData
|
||||||
dd sys_programirq ; 44-ProgramIrqs
|
dd 0
|
||||||
dd reserve_free_irq ; 45-ReserveIrq and FreeIrq
|
dd 0
|
||||||
dd syscall_reserveportarea ; 46-ReservePortArea and FreePortArea
|
dd syscall_reserveportarea ; 46-ReservePortArea and FreePortArea
|
||||||
dd display_number ; 47-WriteNum
|
dd display_number ; 47-WriteNum
|
||||||
dd display_settings ; 48-SetRedrawType and SetButtonType
|
dd display_settings ; 48-SetRedrawType and SetButtonType
|
||||||
@ -227,8 +227,8 @@ iglobal
|
|||||||
dd syscall_getirqowner ; 41-GetIrqOwner
|
dd syscall_getirqowner ; 41-GetIrqOwner
|
||||||
dd get_irq_data ; 42-ReadIrqData
|
dd get_irq_data ; 42-ReadIrqData
|
||||||
dd cross_order ; 43-SendDeviceData
|
dd cross_order ; 43-SendDeviceData
|
||||||
dd cross_order ; 44-ProgramIrqs
|
dd sys_programirq ; 44-ProgramIrqs
|
||||||
dd cross_order ; 45-ReserveIrq and FreeIrq
|
dd reserve_free_irq ; 45-ReserveIrq and FreeIrq
|
||||||
dd cross_order ; 46-ReservePortArea and FreePortArea
|
dd cross_order ; 46-ReservePortArea and FreePortArea
|
||||||
dd cross_order ; 47-WriteNum
|
dd cross_order ; 47-WriteNum
|
||||||
dd cross_order ; 48-SetRedrawType and SetButtonType
|
dd cross_order ; 48-SetRedrawType and SetButtonType
|
||||||
|
@ -3888,28 +3888,29 @@ align 4
|
|||||||
|
|
||||||
sys_programirq:
|
sys_programirq:
|
||||||
|
|
||||||
mov edi,[TASK_BASE]
|
mov eax, [TASK_BASE]
|
||||||
add eax,[edi+TASKDATA.mem_start]
|
add ebx, [eax + TASKDATA.mem_start]
|
||||||
|
|
||||||
cmp ebx,16
|
cmp ecx, 16
|
||||||
jae .not_owner
|
jae .not_owner
|
||||||
mov edi,[TASK_BASE]
|
mov edi, [eax + TASKDATA.pid]
|
||||||
mov edi,[edi+TASKDATA.pid]
|
cmp edi, [irq_owner + 4 * ecx]
|
||||||
cmp edi,[irq_owner+ebx*4]
|
je .spril1
|
||||||
je spril1
|
|
||||||
.not_owner:
|
.not_owner:
|
||||||
mov [esp+36],dword 1
|
xor ecx, ecx
|
||||||
ret
|
jmp .end
|
||||||
spril1:
|
.spril1:
|
||||||
|
|
||||||
|
shl ecx, 6
|
||||||
|
mov esi, ebx
|
||||||
|
lea edi, [irq00read + ecx]
|
||||||
|
push 16
|
||||||
|
pop ecx
|
||||||
|
|
||||||
mov esi,eax
|
|
||||||
shl ebx,6
|
|
||||||
add ebx,irq00read
|
|
||||||
mov edi,ebx
|
|
||||||
mov ecx,16
|
|
||||||
cld
|
cld
|
||||||
rep movsd
|
rep movsd
|
||||||
mov [esp+36],dword 0
|
.end:
|
||||||
|
mov [esp+32], ecx
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
||||||
@ -4173,35 +4174,34 @@ free_port_area:
|
|||||||
|
|
||||||
reserve_free_irq:
|
reserve_free_irq:
|
||||||
|
|
||||||
mov ecx, 1
|
xor esi, esi
|
||||||
cmp ebx, 16
|
inc esi
|
||||||
jae fril1
|
cmp ecx, 16
|
||||||
test eax,eax
|
jae ril1
|
||||||
jz reserve_irq
|
|
||||||
|
|
||||||
lea edi,[irq_owner+ebx*4]
|
lea ecx, [irq_owner + 4 * ecx]
|
||||||
mov edx,[edi]
|
mov edx, [ecx]
|
||||||
mov eax,[TASK_BASE]
|
mov eax, [TASK_BASE]
|
||||||
cmp edx,[eax+TASKDATA.pid]
|
mov edi, [eax + TASKDATA.pid]
|
||||||
jne fril1
|
dec ebx
|
||||||
dec ecx
|
jnz reserve_irq
|
||||||
mov [edi],ecx
|
|
||||||
fril1:
|
cmp edx, edi
|
||||||
mov [esp+36],ecx ; return in eax
|
jne ril1
|
||||||
ret
|
dec esi
|
||||||
|
mov [ecx], esi
|
||||||
|
|
||||||
|
jmp ril1
|
||||||
|
|
||||||
reserve_irq:
|
reserve_irq:
|
||||||
|
|
||||||
lea edi,[irq_owner+ebx*4]
|
cmp dword [ecx], 0
|
||||||
cmp dword [edi], 0
|
jne ril1
|
||||||
jnz ril1
|
|
||||||
|
|
||||||
mov edx,[TASK_BASE]
|
mov [ecx], edi
|
||||||
mov edx,[edx+TASKDATA.pid]
|
dec esi
|
||||||
mov [edi],edx
|
|
||||||
dec ecx
|
|
||||||
ril1:
|
ril1:
|
||||||
mov [esp+36],ecx ; return in eax
|
mov [esp+32], esi ; return in eax
|
||||||
ret
|
ret
|
||||||
|
|
||||||
drawbackground:
|
drawbackground:
|
||||||
|
Loading…
Reference in New Issue
Block a user