From d7ea1d927006d2fbd811dbeb0c07c76675d9a910 Mon Sep 17 00:00:00 2001 From: "Sergey Semyonov (Serge)" Date: Sun, 4 Sep 2011 09:02:01 +0000 Subject: [PATCH] merge trunk 2149 git-svn-id: svn://kolibrios.org@2150 a494cfbc-eb01-0410-851d-a64ba20cac60 --- kernel/branches/Kolibri-acpi/blkdev/disk.inc | 6 +++--- kernel/branches/Kolibri-acpi/core/sched.inc | 2 +- kernel/branches/Kolibri-acpi/core/v86.inc | 4 ++-- kernel/branches/Kolibri-acpi/init.inc | 1 - kernel/branches/Kolibri-acpi/kernel.asm | 2 +- kernel/branches/Kolibri-acpi/network/socket.inc | 2 ++ 6 files changed, 9 insertions(+), 8 deletions(-) diff --git a/kernel/branches/Kolibri-acpi/blkdev/disk.inc b/kernel/branches/Kolibri-acpi/blkdev/disk.inc index a8b6ce1b39..f97ded8172 100644 --- a/kernel/branches/Kolibri-acpi/blkdev/disk.inc +++ b/kernel/branches/Kolibri-acpi/blkdev/disk.inc @@ -1225,7 +1225,7 @@ lock inc [edx+DISK.MediaRefCount] ; out: eax = 0 => no more items ; eax != 0 => buffer pointed to by edi contains name of item dyndisk_enum_root: - push ebx ; save register used in file_system_lfn + push edx ; save register used in file_system_lfn mov ecx, disk_list_mutex ; it will be useful ; 1. If this is the first call, acquire the mutex and initialize. test eax, eax @@ -1248,11 +1248,11 @@ dyndisk_enum_root: jnz @b pop esi eax ; 5. Return with eax = item. - pop ebx ; restore register used in file_system_lfn + pop edx ; restore register used in file_system_lfn ret .last: ; 6. Release the mutex and return with eax = 0. call mutex_unlock xor eax, eax - pop ebx ; restore register used in file_system_lfn + pop edx ; restore register used in file_system_lfn ret diff --git a/kernel/branches/Kolibri-acpi/core/sched.inc b/kernel/branches/Kolibri-acpi/core/sched.inc index c5e6ad6f17..03b23b594e 100644 --- a/kernel/branches/Kolibri-acpi/core/sched.inc +++ b/kernel/branches/Kolibri-acpi/core/sched.inc @@ -294,7 +294,7 @@ mutex_unlock: cli mov eax, [ecx+MUTEX.wait.next] - cmp eax, [ecx] + cmp eax, ecx mov [ecx+MUTEX.count], 1 je @F diff --git a/kernel/branches/Kolibri-acpi/core/v86.inc b/kernel/branches/Kolibri-acpi/core/v86.inc index 04ab2c15cb..d0fb5c34d9 100644 --- a/kernel/branches/Kolibri-acpi/core/v86.inc +++ b/kernel/branches/Kolibri-acpi/core/v86.inc @@ -842,14 +842,14 @@ end if align 4 v86_irq: ; push irq/pushad/jmp v86_irq -; eax = irq +; ebp = irq lea esi, [esp+1Ch] lea edi, [esi+4] mov ecx, 8 std rep movsd cld - mov edi, eax + mov edi, ebp pop eax v86_irq2: mov esi, [v86_irqhooks+edi*8] ; get VM handle diff --git a/kernel/branches/Kolibri-acpi/init.inc b/kernel/branches/Kolibri-acpi/init.inc index a1ad30fafe..6bf6bf8708 100644 --- a/kernel/branches/Kolibri-acpi/init.inc +++ b/kernel/branches/Kolibri-acpi/init.inc @@ -432,4 +432,3 @@ proc test_cpu endp - diff --git a/kernel/branches/Kolibri-acpi/kernel.asm b/kernel/branches/Kolibri-acpi/kernel.asm index fd32d27396..5153a316cc 100644 --- a/kernel/branches/Kolibri-acpi/kernel.asm +++ b/kernel/branches/Kolibri-acpi/kernel.asm @@ -226,7 +226,7 @@ B32: mov fs,ax mov gs,ax mov ss,ax - mov esp,0x3ec00 ; Set stack + mov esp,0x5ec00 ; Set stack ; CLEAR 0x280000 - HEAP_BASE diff --git a/kernel/branches/Kolibri-acpi/network/socket.inc b/kernel/branches/Kolibri-acpi/network/socket.inc index 9c4860e6ce..3136e8b7bc 100644 --- a/kernel/branches/Kolibri-acpi/network/socket.inc +++ b/kernel/branches/Kolibri-acpi/network/socket.inc @@ -766,8 +766,10 @@ proc socket_read_packet stdcall mov ebx, eax + push ecx edx lea ecx, [eax + SOCKET.lock] call mutex_lock + pop edx ecx mov eax, [ebx + SOCKET.rxDataCount] ; get count of bytes test eax, eax ; if count of bytes is zero..