rename IRQ_EOI(irq) -> __fastcall irq_eoi(irq)

git-svn-id: svn://kolibrios.org@2166 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Sergey Semyonov (Serge) 2011-09-10 10:52:59 +00:00
parent cb9e74fce8
commit 6252cd9a99
8 changed files with 26 additions and 31 deletions

View File

@ -339,17 +339,19 @@ IRQ_mask_all:
ret ret
; ----------------------------------------- ; -----------------------------------------
; End Of Interrupt ; End Of Interrupt
; al - IRQ number ; cl - IRQ number
align 16 align 16
IRQ_EOI: irq_eoi: ; __fastcall
test dword[APIC], 0xffffffff test dword[APIC], 0xffffffff
jnz .APIC jnz .APIC
cmp al, 8 cmp cl, 8
mov al, 0x20 mov al, 0x20
jb @f jb @f
out 0xa0, al out 0xa0, al
@@: out 0x20, al @@:
out 0x20, al
ret ret
.APIC: .APIC:
mov eax, [LAPIC_BASE] mov eax, [LAPIC_BASE]
mov dword [eax + APIC_EOI], 0 ; EOI mov dword [eax + APIC_EOI], 0 ; EOI

View File

@ -7,7 +7,6 @@
$Revision$ $Revision$
HASH_IT = 1
struc MEM_BLOCK struc MEM_BLOCK
{ {
@ -279,8 +278,6 @@ align 4
proc alloc_kernel_space stdcall, size:dword proc alloc_kernel_space stdcall, size:dword
local block_ind:DWORD local block_ind:DWORD
; xchg bx, bx
push ebx push ebx
push esi push esi
push edi push edi
@ -386,8 +383,6 @@ endp
align 4 align 4
proc free_kernel_space stdcall uses ebx ecx edx esi edi, base:dword proc free_kernel_space stdcall uses ebx ecx edx esi edi, base:dword
; xchg bx, bx
mov ecx, heap_mutex mov ecx, heap_mutex
call mutex_lock call mutex_lock
@ -566,7 +561,8 @@ proc kernel_free stdcall, base:dword
call mutex_unlock call mutex_unlock
mov ecx, [esi+block_size]; mov eax, [esi+block_base]
mov ecx, [esi+block_size]
shr ecx, 12 shr ecx, 12
call release_pages ;eax, ecx call release_pages ;eax, ecx
stdcall free_kernel_space, [base] stdcall free_kernel_space, [base]

View File

@ -184,8 +184,9 @@ align 16
.exit: .exit:
mov [check_idle_semaphore],5 mov [check_idle_semaphore],5
mov eax, ebp mov ecx, ebp
call IRQ_EOI call irq_eoi
restore_ring3_context restore_ring3_context
add esp, 4 add esp, 4
iret iret
@ -196,8 +197,8 @@ irqD:
push ecx push ecx
xor eax,eax xor eax,eax
out 0xf0,al out 0xf0,al
mov eax, 13 mov cl, 13
call IRQ_EOI call irq_eoi
pop ecx pop ecx
pop eax pop eax
iret iret

View File

@ -314,6 +314,7 @@ __exports:
pci_write16, 'PciWrite16', \ ; stdcall pci_write16, 'PciWrite16', \ ; stdcall
pci_write32, 'PciWrite32', \ ; stdcall pci_write32, 'PciWrite32', \ ; stdcall
\ \
get_pid, 'GetPid', \
get_service, 'GetService', \ ; get_service, 'GetService', \ ;
reg_service, 'RegService', \ ; stdcall reg_service, 'RegService', \ ; stdcall
attach_int_handler, 'AttachIntHandler', \ ; stdcall attach_int_handler, 'AttachIntHandler', \ ; stdcall

View File

@ -27,8 +27,8 @@ irq0:
add [next_usage_update],100 add [next_usage_update],100
call updatecputimes call updatecputimes
.nocounter: .nocounter:
mov al, 0 ; send End Of Interrupt signal xor ecx, ecx ; send End Of Interrupt signal
call IRQ_EOI call irq_eoi
btr dword[DONT_SWITCH], 0 btr dword[DONT_SWITCH], 0
jc .return jc .return
call find_next_task call find_next_task

View File

@ -128,7 +128,7 @@ exc_c: ;
reg_edi equ esp+0x00 reg_edi equ esp+0x00
mov ax, app_data ;исключение mov ax, app_data ;исключение
mov ds, ax ;загрузим правильные значени mov ds, ax ;загрузим правильные значения
mov es, ax ;в регистры mov es, ax ;в регистры
cld ; и приводим DF к стандарту cld ; и приводим DF к стандарту
movzx ebx,bl movzx ebx,bl

View File

@ -127,7 +127,7 @@ proc fs_execute
@@: @@:
lea eax, [filename] lea eax, [filename]
stdcall load_file, eax stdcall load_file, eax
mov ecx, -ERROR_FILE_NOT_FOUND mov esi, -ERROR_FILE_NOT_FOUND
test eax, eax test eax, eax
jz .err_file jz .err_file
@ -136,13 +136,10 @@ proc fs_execute
lea ebx, [hdr_cmdline] lea ebx, [hdr_cmdline]
call test_app_header call test_app_header
mov ecx, -0x1F mov esi, -0x1F
test eax, eax test eax, eax
jz .err_hdr jz .err_hdr
;mov esi, new_process_loading
;call sys_msg_board_str ; write message to message board
.wait_lock: .wait_lock:
cmp [application_table_status],0 cmp [application_table_status],0
je .get_lock je .get_lock
@ -159,7 +156,7 @@ proc fs_execute
call get_new_process_place call get_new_process_place
test eax, eax test eax, eax
mov ecx, -0x20 ; too many processes mov esi, -0x20 ; too many processes
jz .err jz .err
mov [slot], eax mov [slot], eax
@ -194,7 +191,7 @@ proc fs_execute
mov [save_cr3], ebx mov [save_cr3], ebx
stdcall create_app_space,[hdr_mem],[file_base],[file_size] stdcall create_app_space,[hdr_mem],[file_base],[file_size]
mov ecx, -30 ; no memory mov esi, -30 ; no memory
test eax, eax test eax, eax
jz .failed jz .failed
@ -250,7 +247,7 @@ end if
.err_file: .err_file:
xor eax, eax xor eax, eax
mov [application_table_status],eax mov [application_table_status],eax
mov eax, ecx mov eax, esi
ret ret
endp endp

View File

@ -898,10 +898,8 @@ v86_irq2:
pop ecx pop ecx
.cont: .cont:
loop .scan loop .scan
mov ecx, edi
mov eax, edi call irq_eoi
call IRQ_EOI
popad popad
iretd iretd
.found: .found: