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 |