Subversion Repositories Kolibri OS

Rev

Rev 740 | Rev 748 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 740 Rev 742
Line 53... Line 53...
53
;;
53
;;
54
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
54
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Line 55... Line 55...
55
 
55
 
Line 56... Line 56...
56
include 'macros.inc'
56
include 'macros.inc'
Line 57... Line 57...
57
 
57
 
Line 58... Line 58...
58
$Revision: 740 $
58
$Revision: 742 $
Line 3932... Line 3932...
3932
 
3932
 
Line 3933... Line 3933...
3933
 
3933
 
3934
align 4
3934
align 4
3935
 
3935
 
3936
get_irq_data:
-
 
3937
     cmp   eax,16
-
 
3938
     jae   .not_owner
3936
get_irq_data:
3939
     mov   edx,eax           ; check for correct owner
-
 
-
 
3937
     cmp   ebx,16
3940
     shl   edx,2
3938
     jae   .not_owner
-
 
3939
     mov   eax, [4 * ebx + irq_owner]
3941
     add   edx,irq_owner
3940
 
3942
     mov   edx,[edx]
-
 
3943
     mov   edi,[TASK_BASE]
3941
     mov   edi,[TASK_BASE]
3944
     mov   edi,[edi+TASKDATA.pid]
3942
 
3945
     cmp   edx,edi
3943
     cmp   eax,[edi+TASKDATA.pid]
3946
     je    gidril1
3944
     je    gidril1
Line 3947... Line 3945...
3947
.not_owner:
3945
.not_owner:
Line 3948... Line -...
3948
     mov   [esp+32],dword 2     ; ecx=2
-
 
3949
     ret
3946
     mov   [esp+28],dword 2	; ecx=2
3950
 
-
 
3951
  gidril1:
-
 
3952
 
3947
     ret
-
 
3948
 
-
 
3949
  gidril1:
3953
     mov   ebx,eax
3950
 
3954
     shl   ebx,12
3951
     shl   ebx,12
Line 3955... Line 3952...
3955
     add   ebx,IRQ_SAVE
3952
     mov   ecx,1
3956
     mov   eax,[ebx]
-
 
3957
     mov   ecx,1
-
 
-
 
3953
     lea   eax,[ebx + IRQ_SAVE + 0x10]
3958
     test  eax,eax
3954
     mov   edx,[eax - 0x10]
-
 
3955
     test  edx,edx
3959
     jz    gid1
3956
     jz    gid1
3960
 
3957
 
3961
     dec   eax
3958
     dec   dword [eax - 0x10]
-
 
3959
 
3962
     mov   esi,ebx
3960
     movzx ebx,byte [eax]
3963
     mov   [ebx],eax
3961
 
3964
     movzx ebx,byte [ebx+0x10]
3962
     mov   edi, eax
3965
     add   esi,0x10
3963
     xchg  esi, eax
-
 
3964
     inc   esi
3966
     mov   edi,esi
3965
 
3967
     inc   esi
3966
     mov   ecx,4000 / 4
3968
     mov   ecx,4000 / 4
3967
     cld
3969
     cld
3968
     rep   movsd
3970
     rep   movsd
3969
;     xor   ecx,ecx     ; as result of 'rep' ecx=0
Line 3971... Line 3970...
3971
;     xor   ecx,ecx     ; as result of 'rep' ecx=0
3970
     dec   edx
Line 5101... Line 5100...
5101
	jmp	[draw_line]
5100
	jmp	[draw_line]
Line 5102... Line 5101...
5102
 
5101
 
Line 5103... Line 5102...
5103
align 4
5102
align 4
-
 
5103
 
5104
 
5104
syscall_getirqowner:			; GetIrqOwner
5105
syscall_getirqowner:                    ; GetIrqOwner
5105
 
5106
     cmp   eax,16
-
 
-
 
5106
     cmp   ebx,16
5107
     jae   .err
5107
     jae   .err
5108
     shl   eax,2
-
 
5109
     add   eax,irq_owner
5108
 
-
 
5109
     mov   eax,[4 * ebx + irq_owner]
5110
     mov   eax,[eax]
5110
     mov   [esp+32],eax
5111
     mov   [esp+36],eax
5111
 
5112
     ret
5112
     ret
5113
.err:
5113
.err:
Line 5114... Line 5114...
5114
     or    dword [esp+36], -1
5114
     or    dword [esp+32], -1
Line 5115... Line 5115...
5115
     ret
5115
     ret