Rev 387 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 387 | Rev 427 | ||
---|---|---|---|
Line 112... | Line 112... | ||
112 | mov ecx, 6 |
112 | mov ecx, 6 |
113 | cld |
113 | cld |
114 | rep movsd |
114 | rep movsd |
115 | @@: |
115 | @@: |
116 | mov ecx, [CURRENT_TASK] |
116 | mov ecx, [current_slot] |
117 | shl ecx,8 |
117 | add ecx, APP_OBJ_OFFSET |
118 | add ecx, SLOT_BASE+APP_OBJ_OFFSET |
- | |
119 | 118 | ||
Line 120... | Line 119... | ||
120 | pushfd |
119 | pushfd |
121 | cli |
120 | cli |
122 | mov edx, [ecx+APPOBJ.fd] |
121 | mov edx, [ecx+APPOBJ.fd] |
123 | mov [eax+APPOBJ.fd], edx |
122 | mov [eax+APPOBJ.fd], edx |
Line 215... | Line 214... | ||
215 | align 4 |
214 | align 4 |
216 | proc get_event_ex stdcall, p_ev:dword, timeout:dword |
215 | proc get_event_ex stdcall, p_ev:dword, timeout:dword |
Line 217... | Line 216... | ||
217 | 216 | ||
218 | .wait: |
217 | .wait: |
219 | mov edx,[CURRENT_TASK] |
- | |
220 | shl edx,8 |
218 | mov edx,[current_slot] |
221 | ; cmp [SLOT_BASE+edx+APPDATA.ev_count], 0 |
219 | ; cmp [SLOT_BASE+edx+APPDATA.ev_count], 0 |
Line 222... | Line 220... | ||
222 | ; je .switch |
220 | ; je .switch |
Line 223... | Line 221... | ||
223 | 221 | ||
224 | add edx, SLOT_BASE+APP_EV_OFFSET |
222 | add edx, APP_EV_OFFSET |
225 | 223 | ||
Line 298... | Line 296... | ||
298 | 296 | ||
Line 299... | Line 297... | ||
299 | test [eax+EVENT.state], MANUAL_RESET |
297 | test [eax+EVENT.state], MANUAL_RESET |
300 | jnz .done |
298 | jnz .done |
Line 301... | Line 299... | ||
301 | 299 | ||
302 | mov edx,[CURRENT_TASK] |
- | |
303 | shl edx,8 |
- | |
Line 304... | Line 300... | ||
304 | add edx, SLOT_BASE |
300 | mov edx,[current_slot] |
305 | 301 | ||
306 | pushfd |
302 | pushfd |
307 | cli ;remove event from events |
303 | cli ;remove event from events |
Line 573... | Line 569... | ||
573 | 569 | ||
574 | ;mov edi,[TASK_BASE] ; mouse event |
570 | ;mov edi,[TASK_BASE] ; mouse event |
575 | test [edi+TASKDATA.event_mask],dword 00100000b |
571 | test [edi+TASKDATA.event_mask],dword 00100000b |
576 | jz no_mouse_event |
572 | jz no_mouse_event |
577 | mov eax,[CURRENT_TASK] |
- | |
578 | shl eax,8 |
573 | mov eax,[current_slot] |
579 | test [eax+SLOT_BASE+APPDATA.event_mask],dword 00100000b |
574 | test [eax+APPDATA.event_mask],dword 00100000b |
580 | jz no_mouse_event |
575 | jz no_mouse_event |
581 | and [eax+SLOT_BASE+APPDATA.event_mask],dword 0xffffffff-00100000b |
576 | and [eax+APPDATA.event_mask],dword 0xffffffff-00100000b |
582 | popad |
577 | popad |
583 | mov eax,6 |
578 | mov eax,6 |
584 | ret |
579 | ret |
Line 597... | Line 592... | ||
597 | 592 | ||
Line 598... | Line 593... | ||
598 | ;mov edi,[TASK_BASE] ; IPC |
593 | ;mov edi,[TASK_BASE] ; IPC |
599 | test [edi+TASKDATA.event_mask],dword 01000000b |
594 | test [edi+TASKDATA.event_mask],dword 01000000b |
600 | jz no_ipc |
595 | jz no_ipc |
601 | mov eax,[CURRENT_TASK] |
596 | mov eax,[current_slot] |
602 | shl eax,8 |
- | |
603 | test [eax+SLOT_BASE+APPDATA.event_mask],dword 01000000b |
597 | test [eax+APPDATA.event_mask],dword 01000000b |
604 | jz no_ipc |
598 | jz no_ipc |
605 | and [eax+SLOT_BASE+APPDATA.event_mask],dword 0xffffffff-01000000b |
599 | and [eax+APPDATA.event_mask],dword 0xffffffff-01000000b |
606 | popad |
600 | popad |
607 | mov eax,7 |
601 | mov eax,7 |
608 | ret |
602 | ret |
609 | no_ipc: |
603 | no_ipc: |
Line 610... | Line 604... | ||
610 | 604 | ||
611 | 605 | ||
612 | ;mov edi,[TASK_BASE] ; STACK |
606 | ;mov edi,[TASK_BASE] ; STACK |
613 | test [edi+TASKDATA.event_mask],dword 10000000b |
607 | test [edi+TASKDATA.event_mask],dword 10000000b |
614 | jz no_stack_event |
- | |
615 | mov eax,[CURRENT_TASK] |
608 | jz no_stack_event |
616 | shl eax,8 |
609 | mov eax,[current_slot] |
617 | test [eax+SLOT_BASE+APPDATA.event_mask],dword 10000000b |
610 | test [eax+APPDATA.event_mask],dword 10000000b |
618 | jz no_stack_event |
611 | jz no_stack_event |
619 | and [eax+SLOT_BASE+APPDATA.event_mask],dword 0xffffffff-10000000b |
612 | and [eax+APPDATA.event_mask],dword 0xffffffff-10000000b |
620 | popad |
613 | popad |
621 | mov eax,8 |
614 | mov eax,8 |
Line 622... | Line 615... | ||
622 | ret |
615 | ret |
623 | no_stack_event: |
616 | no_stack_event: |
624 | 617 | ||
625 | test byte [edi+TASKDATA.event_mask+1], 1 ; DEBUG |
- | |
626 | jz .test_IRQ |
618 | test byte [edi+TASKDATA.event_mask+1], 1 ; DEBUG |
627 | mov eax, [CURRENT_TASK] |
619 | jz .test_IRQ |
628 | shl eax, 8 |
620 | mov eax, [current_slot] |
629 | test byte [eax+SLOT_BASE+APPDATA.event_mask+1], byte 1 |
621 | test byte [eax+APPDATA.event_mask+1], byte 1 |
630 | jz .test_IRQ |
622 | jz .test_IRQ |
631 | and byte [eax+SLOT_BASE+APPDATA.event_mask+1], not 1 |
623 | and byte [eax+APPDATA.event_mask+1], not 1 |
Line 632... | Line 624... | ||
632 | popad |
624 | popad |