From f751b2ee25a4c3a2965ba5801a72298b2e5ba11b Mon Sep 17 00:00:00 2001
From: "Sergey Semyonov (Serge)" <ion2@mail.ru>
Date: Sat, 11 Sep 2010 22:21:05 +0000
Subject: [PATCH] 1)sysfn62 yet anothe fix 2)new exports

git-svn-id: svn://kolibrios.org@1612 a494cfbc-eb01-0410-851d-a64ba20cac60
---
 kernel/trunk/bus/pci/pci32.inc   | 8 +++++---
 kernel/trunk/core/exports.inc    | 8 ++++++++
 kernel/trunk/core/peload.inc     | 6 ++++++
 kernel/trunk/drivers/imports.inc | 4 ++++
 4 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/kernel/trunk/bus/pci/pci32.inc b/kernel/trunk/bus/pci/pci32.inc
index 2ce8d5deef..44cc4595c3 100644
--- a/kernel/trunk/bus/pci/pci32.inc
+++ b/kernel/trunk/bus/pci/pci32.inc
@@ -61,17 +61,19 @@ pci_api:
 	jne  pci_service_not_supported
 
 ;cross
+    push eax
 	mov	eax,ebx
 	mov	ebx,ecx
 	mov	ecx,edx
-	movzx	edx, al
+    pop edx
+	movzx	edx, dl
 ;;;;;;;;;;;;;;;;;;;
 
 if defined mmio_pci_addr
-	cmp al, 13
+    cmp dl, 13
 	ja pci_service_not_supported
 else
-	cmp al, 10
+    cmp dl, 10
 	ja pci_service_not_supported
 end if
 
diff --git a/kernel/trunk/core/exports.inc b/kernel/trunk/core/exports.inc
index 7b64cb4ae4..cc8c716e6f 100644
--- a/kernel/trunk/core/exports.inc
+++ b/kernel/trunk/core/exports.inc
@@ -22,6 +22,10 @@ iglobal
   szReservePortArea   db 'ReservePortArea',0
   szBoot_Log          db 'Boot_Log',0
 
+  szMutexInit         db 'MutexInit',0
+  szMutexLock         db 'MutexLock',0
+  szMutexUnlock       db 'MutexUnlock',0
+
   szPciApi            db 'PciApi', 0
   szPciRead32         db 'PciRead32', 0
   szPciRead16         db 'PciRead16', 0
@@ -91,6 +95,10 @@ kernel_export:
   dd szReservePortArea , r_f_port_area
   dd szBoot_Log        , boot_log
 
+  dd szMutexInit       , mutex_init            ;gcc fastcall
+  dd szMutexLock       , mutex_lock            ;gcc fastcall
+  dd szMutexUnlock     , mutex_unlock          ;gcc fastcall
+
   dd szPciApi          , pci_api
   dd szPciRead32       , pci_read32
   dd szPciRead16       , pci_read16
diff --git a/kernel/trunk/core/peload.inc b/kernel/trunk/core/peload.inc
index d1d40e6c0c..4b399a9e2f 100644
--- a/kernel/trunk/core/peload.inc
+++ b/kernel/trunk/core/peload.inc
@@ -283,6 +283,12 @@ __exports:
           alloc_page,            'AllocPage',          \      ; gcc ABI
           alloc_pages,           'AllocPages',         \      ; stdcall
           commit_pages,          'CommitPages',        \      ; eax, ebx, ecx
+\
+          create_event,          'CreateEvent',        \      ; ecx, esi
+          raise_event,           'RaiseEvent',         \      ; eax, ebx, edx, esi
+          wait_event,            'WaitEvent',          \      ; eax, ebx
+          get_event_ex,          'GetEvent',           \      ; edi
+\
           create_kernel_object,  'CreateObject',       \
           create_ring_buffer,    'CreateRingBuffer',   \      ; stdcall
           destroy_kernel_object, 'DestroyObject',      \
diff --git a/kernel/trunk/drivers/imports.inc b/kernel/trunk/drivers/imports.inc
index df1ee70f0c..9edd1bd7ba 100644
--- a/kernel/trunk/drivers/imports.inc
+++ b/kernel/trunk/drivers/imports.inc
@@ -26,6 +26,10 @@ kernel_export \
 	      FpuRestore,\
 	      ReservePortArea,\
 	      Boot_Log,\
+\
+          MutexInit,
+          MutexLock,
+          MutexUnlock,
 \
 	      PciApi,\
 	      PciRead32,\