From 631f5b8e1e1c61018ad04a4510568c4cd6da9074 Mon Sep 17 00:00:00 2001
From: turbocat <turbocat@kolibrios.org>
Date: Sat, 3 Jul 2021 14:13:18 +0000
Subject: [PATCH] Kolibri-F: - Added syscall_ common name for system call
 functions. - Fixed not logical names of system calls of functions.

git-svn-id: svn://kolibrios.org@8986 a494cfbc-eb01-0410-851d-a64ba20cac60
---
 kernel/branches/Kolibri-F/blkdev/disk.inc    |  22 +--
 kernel/branches/Kolibri-F/blkdev/rdsave.inc  |   2 +-
 kernel/branches/Kolibri-F/boot/rdload.inc    |   2 +-
 kernel/branches/Kolibri-F/boot/shutdown.inc  |   2 +-
 kernel/branches/Kolibri-F/build.sh           |  18 +-
 kernel/branches/Kolibri-F/bus/pci/pci32.inc  |   4 +-
 kernel/branches/Kolibri-F/bus/usb/init.inc   |   2 +-
 kernel/branches/Kolibri-F/core/clipboard.inc |   2 +-
 kernel/branches/Kolibri-F/core/debug.inc     |   6 +-
 kernel/branches/Kolibri-F/core/dll.inc       |   4 +-
 kernel/branches/Kolibri-F/core/exports.inc   |   4 +-
 kernel/branches/Kolibri-F/core/memory.inc    |  50 +++---
 kernel/branches/Kolibri-F/core/sys32.inc     |   6 +-
 kernel/branches/Kolibri-F/core/syscall.inc   | 166 +++++++++----------
 kernel/branches/Kolibri-F/core/taskman.inc   |   4 +-
 kernel/branches/Kolibri-F/core/v86.inc       |   2 +-
 kernel/branches/Kolibri-F/fdo.inc            |   2 +-
 kernel/branches/Kolibri-F/fs/fs_lfn.inc      |  18 +-
 kernel/branches/Kolibri-F/gui/event.inc      |  10 +-
 kernel/branches/Kolibri-F/gui/window.inc     |   6 +-
 kernel/branches/Kolibri-F/hid/set_dtc.inc    |   2 +-
 kernel/branches/Kolibri-F/kernel.asm         |  86 +++++-----
 kernel/branches/Kolibri-F/network/socket.inc |   2 +-
 kernel/branches/Kolibri-F/network/stack.inc  |   4 +-
 kernel/branches/Kolibri-F/posix/posix.inc    |   8 +-
 kernel/branches/Kolibri-F/sound/playnote.inc |   2 +-
 kernel/branches/Kolibri-F/tools/kerpack      | Bin 0 -> 35856 bytes
 kernel/branches/Kolibri-F/tools/kpack        | Bin 0 -> 39336 bytes
 kernel/branches/Kolibri-F/video/blitter.inc  |   2 +-
 29 files changed, 214 insertions(+), 224 deletions(-)
 create mode 100755 kernel/branches/Kolibri-F/tools/kerpack
 create mode 100755 kernel/branches/Kolibri-F/tools/kpack

diff --git a/kernel/branches/Kolibri-F/blkdev/disk.inc b/kernel/branches/Kolibri-F/blkdev/disk.inc
index 03bccc899b..f2a0a4ccd4 100644
--- a/kernel/branches/Kolibri-F/blkdev/disk.inc
+++ b/kernel/branches/Kolibri-F/blkdev/disk.inc
@@ -1291,15 +1291,15 @@ default_fs_functions:
         dd      0       ; no user functions
 endg
 
-; This function is called from file_system_lfn.
+; This function is called from syscall_file_system_lfn.
 ; This handler gets the control each time when fn 70 is called
 ; with unknown item of root subdirectory.
 ; in: esi = ebp -> path string
-; out: if the handler processes path, it must not return in file_system_lfn,
+; out: if the handler processes path, it must not return in syscall_file_system_lfn,
 ;      but instead pop return address and return directly to the caller
 ;      otherwise simply return
 dyndisk_handler:
-        push    ebx edi         ; save registers used in file_system_lfn
+        push    ebx edi         ; save registers used in syscall_file_system_lfn
 ; 1. Acquire the mutex.
         mov     ecx, disk_list_mutex
         call    mutex_lock
@@ -1340,7 +1340,7 @@ dyndisk_handler:
 ; 3. Release the mutex.
         call    mutex_unlock
 ; 4. Return normally.
-        pop     edi ebx         ; restore registers used in file_system_lfn
+        pop     edi ebx         ; restore registers used in syscall_file_system_lfn
         ret
 ; part of 2d: the name matches partially, but we must check that this is full
 ; equality.
@@ -1383,7 +1383,7 @@ dyndisk_handler:
         jz      @f
         mov     esi, fs_dyndisk_next
 @@: ; Let the procedure from fs_lfn.inc do the job.
-        jmp     file_system_lfn.maindir_noesi
+        jmp     syscall_file_system_lfn.maindir_noesi
 
 .root:
         pop     ecx edx
@@ -1547,7 +1547,7 @@ dyndisk_handler:
         jmp     @b
 
 ; This is a callback for enumerating partitions called from
-; file_system_lfn.maindir in the case of inserted media.
+; syscall_file_system_lfn.maindir in the case of inserted media.
 ; It just increments eax until DISK.NumPartitions reached and then
 ; cleans up.
 fs_dyndisk_next:
@@ -1567,7 +1567,7 @@ fs_dyndisk_next:
         ret
 
 ; This is a callback for enumerating partitions called from
-; file_system_lfn.maindir in the case of missing media.
+; syscall_file_system_lfn.maindir in the case of missing media.
 ; In this case we create one pseudo-partition.
 fs_dyndisk_next_nomedia:
         cmp     eax, 1
@@ -1584,7 +1584,7 @@ fs_dyndisk_next_nomedia:
         stc
         ret
 
-; This function is called from file_system_lfn.
+; This function is called from syscall_file_system_lfn.
 ; This handler is called when virtual root is enumerated
 ; and must return all items which can be handled by this.
 ; It is called several times, first time with eax=0
@@ -1592,7 +1592,7 @@ fs_dyndisk_next_nomedia:
 ; out: eax = 0 => no more items
 ;      eax != 0 => buffer pointed to by edi contains name of item
 dyndisk_enum_root:
-        push    edx             ; save register used in file_system_lfn
+        push    edx             ; save register used in syscall_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
@@ -1615,11 +1615,11 @@ dyndisk_enum_root:
         jnz     @b
         pop     esi eax
 ; 5. Return with eax = item.
-        pop     edx             ; restore register used in file_system_lfn
+        pop     edx             ; restore register used in syscall_file_system_lfn
         ret
 .last:
 ; 6. Release the mutex and return with eax = 0.
         call    mutex_unlock
         xor     eax, eax
-        pop     edx             ; restore register used in file_system_lfn
+        pop     edx             ; restore register used in syscall_file_system_lfn
         ret
diff --git a/kernel/branches/Kolibri-F/blkdev/rdsave.inc b/kernel/branches/Kolibri-F/blkdev/rdsave.inc
index 722aa49efb..b7a722b283 100644
--- a/kernel/branches/Kolibri-F/blkdev/rdsave.inc
+++ b/kernel/branches/Kolibri-F/blkdev/rdsave.inc
@@ -27,7 +27,7 @@ sysfn_saveramdisk:      ; 18.6 = SAVE FLOPPY IMAGE (HD version only)
         shl     eax, 9
         mov     [ebx+12], eax
         pushad
-        call    file_system_lfn_protected ;in ebx
+        call    syscall_file_system_lfn_protected ;in ebx
         popad
         mov     [esp+32], eax
         ret
diff --git a/kernel/branches/Kolibri-F/boot/rdload.inc b/kernel/branches/Kolibri-F/boot/rdload.inc
index fd3650efbb..bad0ba7158 100644
--- a/kernel/branches/Kolibri-F/boot/rdload.inc
+++ b/kernel/branches/Kolibri-F/boot/rdload.inc
@@ -97,7 +97,7 @@ endg
 read_image:
         mov     ebx, read_image_fsinfo
         pushad
-        call    file_system_lfn_protected
+        call    syscall_file_system_lfn_protected
         popad
         ret
 
diff --git a/kernel/branches/Kolibri-F/boot/shutdown.inc b/kernel/branches/Kolibri-F/boot/shutdown.inc
index ff5388db14..bd7f46dfe8 100644
--- a/kernel/branches/Kolibri-F/boot/shutdown.inc
+++ b/kernel/branches/Kolibri-F/boot/shutdown.inc
@@ -69,7 +69,7 @@ yes_shutdown_param:
 ; load kernel.mnt to _CLEAN_ZONE
         mov     ebx, kernel_file_load
         pushad
-        call    file_system_lfn
+        call    syscall_file_system_lfn
         popad
 @@:
         mov     esi, OS_BASE+restart_code_start ; move kernel re-starter to 0x5000:0
diff --git a/kernel/branches/Kolibri-F/build.sh b/kernel/branches/Kolibri-F/build.sh
index bdd23245b1..2cf03e6637 100755
--- a/kernel/branches/Kolibri-F/build.sh
+++ b/kernel/branches/Kolibri-F/build.sh
@@ -2,21 +2,11 @@
 # Compile the KolibriOS kernel on Linux
 # 2017, The KolibriOS team
 
-KERPACK=$HOME/kolibrios/programs/other/kpack/kerpack_linux/kerpack
-KOLIBRI_IMG=$HOME/nightly/kolibri.img
+KERPACK=./tools/kerpack
+KOLIBRI_IMG=kolibri.img
 
-replace=0; # Replace kernel in the image file?
 echo 'lang fix en' > lang.inc
 fasm -m 65536 bootbios.asm bootbios.bin
-fasm -m 65536 kernel.asm kernel.mnt
+fasm -m 65536 -s kernel.fas kernel.asm kernel.mnt
 $KERPACK kernel.mnt kernel.mnt
-
-[[ $replace -eq 1 ]] && {
-    mntpt=$(mktemp -d)
-
-    sudo mount -o loop $KOLIBRI_IMG $mntpt
-    sudo mount -o remount,rw $mntpt
-    sudo cp kernel.mnt ${mntpt}/KERNEL.MNT
-    sudo umount $mntpt
-    rmdir $mntpt
-}
+mcopy -D o -i $KOLIBRI_IMG kernel.mnt ::kernel.mnt
\ No newline at end of file
diff --git a/kernel/branches/Kolibri-F/bus/pci/pci32.inc b/kernel/branches/Kolibri-F/bus/pci/pci32.inc
index 132cc92b20..a20929ebba 100644
--- a/kernel/branches/Kolibri-F/bus/pci/pci32.inc
+++ b/kernel/branches/Kolibri-F/bus/pci/pci32.inc
@@ -56,7 +56,7 @@ endg
 
 align 4
 
-pci_api:
+syscall_pci_api:
 
 ;cross
         mov     eax, ebx
@@ -499,7 +499,7 @@ pci_emu_dat:
 endg
 ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 align 4
-sys_pcibios:
+syscall_pcibios:
         cmp     [pci_access_enabled], 1
         jne     .unsupported_func
         cmp     [pci_bios_entry], 0
diff --git a/kernel/branches/Kolibri-F/bus/usb/init.inc b/kernel/branches/Kolibri-F/bus/usb/init.inc
index fa438437a1..b1ddf80126 100644
--- a/kernel/branches/Kolibri-F/bus/usb/init.inc
+++ b/kernel/branches/Kolibri-F/bus/usb/init.inc
@@ -205,7 +205,7 @@ proc usb_thread_proc
 ; If failed, set [usb_event] to -1 and terminate myself.
         dbgstr 'cannot create event for USB thread'
         or      [usb_event], -1
-        jmp     sys_end
+        jmp     syscall_end
 @@:
         mov     [usb_event], eax
         push    -1              ; initial timeout: infinite
diff --git a/kernel/branches/Kolibri-F/core/clipboard.inc b/kernel/branches/Kolibri-F/core/clipboard.inc
index 99f1fa4aca..da46c93233 100644
--- a/kernel/branches/Kolibri-F/core/clipboard.inc
+++ b/kernel/branches/Kolibri-F/core/clipboard.inc
@@ -10,7 +10,7 @@ $Revision$
 
 ;------------------------------------------------------------------------------
 align 4
-sys_clipboard:
+syscall_clipboard:
         xor     eax, eax
         dec     eax
 ; check availability of main list
diff --git a/kernel/branches/Kolibri-F/core/debug.inc b/kernel/branches/Kolibri-F/core/debug.inc
index 35a1345fca..219d366355 100644
--- a/kernel/branches/Kolibri-F/core/debug.inc
+++ b/kernel/branches/Kolibri-F/core/debug.inc
@@ -9,15 +9,15 @@ $Revision$
 
 
 ; diamond, 2006
-sys_debug_services:
+syscall_debug_services:
         cmp     ebx, 9
         ja      @f
-        jmp     dword [sys_debug_services_table+ebx*4]
+        jmp     dword [syscall_debug_service_services_table+ebx*4]
 @@:
         ret
 iglobal
 align 4
-sys_debug_services_table:
+syscall_debug_service_services_table:
         dd      debug_set_event_data
         dd      debug_getcontext
         dd      debug_setcontext
diff --git a/kernel/branches/Kolibri-F/core/dll.inc b/kernel/branches/Kolibri-F/core/dll.inc
index d273727b06..8f1f62f495 100644
--- a/kernel/branches/Kolibri-F/core/dll.inc
+++ b/kernel/branches/Kolibri-F/core/dll.inc
@@ -388,7 +388,7 @@ proc get_fileinfo stdcall, file_name:dword, info:dword
         pushad
         cld
         call    protect_from_terminate
-        call    file_system_lfn
+        call    syscall_file_system_lfn
         call    unprotect_from_terminate
         popad
         ret
@@ -423,7 +423,7 @@ proc read_file stdcall,file_name:dword, buffer:dword, off:dword,\
 
         pushad
         lea     ebx, [cmd]
-        call    file_system_lfn_protected
+        call    syscall_file_system_lfn_protected
         popad
         ret
 endp
diff --git a/kernel/branches/Kolibri-F/core/exports.inc b/kernel/branches/Kolibri-F/core/exports.inc
index a2d14c2d15..41e4f00aa8 100644
--- a/kernel/branches/Kolibri-F/core/exports.inc
+++ b/kernel/branches/Kolibri-F/core/exports.inc
@@ -75,11 +75,11 @@ __exports:
           user_free,             'UserFree',           \      ; stdcall
           unmap_pages,           'UnmapPages',         \      ; eax, ecx
           sys_msg_board_str,     'SysMsgBoardStr',     \
-          sys_msg_board,         'SysMsgBoard',        \
+          syscall_msg_board,         'SysMsgBoard',        \
           get_clock_ns,          'GetClockNs',         \      ;retval edx:eax 64-bit value
           get_timer_ticks,       'GetTimerTicks',      \
           get_stack_base,        'GetStackBase',       \
-          delay_hs,              'Delay',              \      ; ebx
+          sys_delay_hs,              'Delay',              \      ; ebx
           set_mouse_data,        'SetMouseData',       \      ;
           set_keyboard_data,     'SetKeyboardData',    \      ; gcc fastcall
           register_keyboard,     'RegKeyboard',        \
diff --git a/kernel/branches/Kolibri-F/core/memory.inc b/kernel/branches/Kolibri-F/core/memory.inc
index fa42757764..86a6a95011 100644
--- a/kernel/branches/Kolibri-F/core/memory.inc
+++ b/kernel/branches/Kolibri-F/core/memory.inc
@@ -906,7 +906,7 @@ proc safe_map_page stdcall, slot:dword, req_access:dword, ofs:dword
         ret
 endp
 
-sys_IPC:
+syscall_IPC:
 ;input:
 ;  ebx=1 - set ipc buffer area
 ;    ecx=address of buffer
@@ -1098,15 +1098,15 @@ sysfn_meminfo:
         ret
 
 align 4
-f68:
+syscall_some_intrenal_services:
         cmp     ebx, 4
         jbe     sys_sheduler
         cmp     ebx, 11
-        jb      undefined_syscall
+        jb      syscall_undefined
         cmp     ebx, 29
-        ja      undefined_syscall
+        ja      syscall_undefined
         xor     eax, eax
-        jmp     dword [f68call+ebx*4-11*4]
+        jmp     dword [syscall_some_intrenal_servicescall+ebx*4-11*4]
 .11:
         call    init_heap
         mov     [esp+SYSCALL_STACK._eax], eax
@@ -1230,27 +1230,27 @@ f68:
         ret
 
 align 4
-f68call:   ; keep this table closer to main code
+syscall_some_intrenal_servicescall:   ; keep this table closer to main code
 
-           dd f68.11   ; init_heap
-           dd f68.12   ; user_alloc
-           dd f68.13   ; user_free
-           dd f68.14   ; get_event_ex
-           dd f68.fail ; moved to f68.24
-           dd f68.16   ; get_service
-           dd f68.17   ; call_service
-           dd f68.18   ; loadLibUnicode
-           dd f68.19   ; load_dll
-           dd f68.20   ; user_realloc
-           dd f68.21   ; load_driver
-           dd f68.22   ; shmem_open
-           dd f68.23   ; shmem_close
-           dd f68.24   ; set exception handler
-           dd f68.25   ; unmask exception
-           dd f68.26   ; user_unmap
-           dd f68.27   ; load_file_umode
-           dd f68.28   ; loadFileUnicode
-           dd f68.29   ; user_ring
+           dd syscall_some_intrenal_services.11   ; init_heap
+           dd syscall_some_intrenal_services.12   ; user_alloc
+           dd syscall_some_intrenal_services.13   ; user_free
+           dd syscall_some_intrenal_services.14   ; get_event_ex
+           dd syscall_some_intrenal_services.fail ; moved to syscall_some_intrenal_services.24
+           dd syscall_some_intrenal_services.16   ; get_service
+           dd syscall_some_intrenal_services.17   ; call_service
+           dd syscall_some_intrenal_services.18   ; loadLibUnicode
+           dd syscall_some_intrenal_services.19   ; load_dll
+           dd syscall_some_intrenal_services.20   ; user_realloc
+           dd syscall_some_intrenal_services.21   ; load_driver
+           dd syscall_some_intrenal_services.22   ; shmem_open
+           dd syscall_some_intrenal_services.23   ; shmem_close
+           dd syscall_some_intrenal_services.24   ; set exception handler
+           dd syscall_some_intrenal_services.25   ; unmask exception
+           dd syscall_some_intrenal_services.26   ; user_unmap
+           dd syscall_some_intrenal_services.27   ; load_file_umode
+           dd syscall_some_intrenal_services.28   ; loadFileUnicode
+           dd syscall_some_intrenal_services.29   ; user_ring
 
 align 4
 proc load_pe_driver stdcall, file:dword, cmdline:dword
diff --git a/kernel/branches/Kolibri-F/core/sys32.inc b/kernel/branches/Kolibri-F/core/sys32.inc
index 1309e9eca8..c6edd9e0df 100644
--- a/kernel/branches/Kolibri-F/core/sys32.inc
+++ b/kernel/branches/Kolibri-F/core/sys32.inc
@@ -367,7 +367,7 @@ unlock_application_table:
 
 ; sysfn 64 implementation
 align 4
-sys_resize_app_memory:
+syscall_resize_app_memory:
 ; in:   eax = 64 - function number
 ;       ebx = 1 - number of its only subfunction
 ;       ecx = new amount of memory
@@ -727,7 +727,7 @@ destroy_thread:
         pushad
         xchg    eax, ecx
         mov     ebx, 2
-        call    sys_system
+        call    syscall_system
         popad
 @@:
         inc     eax
@@ -813,7 +813,7 @@ proc unprotect_from_terminate
         lock dec [edx+APPDATA.terminate_protection]
 ; If the result of decrement is zero, somebody has requested termination,
 ; but at that moment we were inside a critical area; terminate now.
-        jz      sys_end
+        jz      syscall_end
 ; Otherwise, return to the caller.
         ret
 endp
diff --git a/kernel/branches/Kolibri-F/core/syscall.inc b/kernel/branches/Kolibri-F/core/syscall.inc
index d78bd2516b..4f0f4adc07 100644
--- a/kernel/branches/Kolibri-F/core/syscall.inc
+++ b/kernel/branches/Kolibri-F/core/syscall.inc
@@ -98,89 +98,89 @@ iglobal
   align 4
   servetable2:
 
-      dd syscall_draw_window     ; 0-DrawWindow
-      dd syscall_setpixel        ; 1-SetPixel
-      dd sys_getkey              ; 2-GetKey
-      dd sys_clock               ; 3-GetTime
-      dd syscall_writetext       ; 4-WriteText
-      dd delay_hs_unprotected    ; 5-DelayHs
-      dd undefined_syscall       ; 6-deprecated OpenRamdiskFile
-      dd syscall_putimage        ; 7-PutImage
-      dd syscall_button          ; 8-DefineButton
-      dd sys_cpuusage            ; 9-GetProcessInfo
-      dd sys_waitforevent        ; 10-WaitForEvent
-      dd sys_getevent            ; 11-CheckForEvent
-      dd sys_redrawstat          ; 12-BeginDraw and EndDraw
-      dd syscall_drawrect        ; 13-DrawRect
-      dd syscall_getscreensize   ; 14-GetScreenSize
-      dd sys_background          ; 15-bgr
-      dd sys_cachetodiskette     ; 16-FlushFloppyCache
-      dd sys_getbutton           ; 17-GetButton
-      dd sys_system              ; 18-System Services
-      dd paleholder              ; 19-reserved
-      dd sys_midi                ; 20-ResetMidi and OutputMidi
-      dd sys_setup               ; 21-SetMidiBase,SetKeymap,SetShiftKeymap,.
-      dd sys_settime             ; 22-setting date,time,clock and alarm-clock
-      dd sys_wait_event_timeout  ; 23-TimeOutWaitForEvent
-      dd syscall_cdaudio         ; 24-PlayCdTrack,StopCd and GetCdPlaylist
-      dd syscall_putarea_backgr  ; 25-Put Area to background
-      dd sys_getsetup            ; 26-GetMidiBase,GetKeymap,GetShiftKeymap,.
-      dd undefined_syscall       ; 27-reserved
-      dd undefined_syscall       ; 28-reserved
-      dd sys_date                ; 29-GetDate
-      dd sys_current_directory   ; 30-Get/SetCurrentDirectory
-      dd undefined_syscall       ; 31-reserved
-      dd undefined_syscall       ; 32-reserved
-      dd undefined_syscall       ; 33-reserved
-      dd syscall_getpixel_WinMap ; 34-GetPixel WinMap
-      dd syscall_getpixel        ; 35-GetPixel
-      dd syscall_getarea         ; 36-GetArea
-      dd readmousepos            ; 37-GetMousePosition_ScreenRelative,.
-      dd syscall_drawline        ; 38-DrawLine
-      dd sys_getbackground       ; 39-GetBackgroundSize,ReadBgrData,.
-      dd set_app_param           ; 40-WantEvents
-      dd undefined_syscall       ; 41- deprecated GetIrqOwner
-      dd undefined_syscall       ; 42- deprecated ReadIrqData
-      dd sys_outport             ; 43-SendDeviceData
-      dd undefined_syscall       ; 44- deprecated ProgramIrqs
-      dd undefined_syscall       ; 45- deprecated ReserveIrq and FreeIrq
-      dd syscall_reserveportarea ; 46-ReservePortArea and FreePortArea
-      dd display_number          ; 47-WriteNum
-      dd syscall_display_settings ; 48-SetRedrawType and SetButtonType
-      dd sys_apm                 ; 49-Advanced Power Management (APM)
-      dd syscall_set_window_shape ; 50-Window shape & scale
-      dd syscall_threads         ; 51-Threads
-      dd undefined_syscall       ; 52- deprecated Stack driver status
-      dd undefined_syscall       ; 53- deprecated Socket interface
-      dd sys_clipboard           ; 54-Custom clipboard
-      dd sound_interface         ; 55-Sound interface
-      dd undefined_syscall       ; 56-reserved
-      dd sys_pcibios             ; 57-PCI BIOS32
-      dd undefined_syscall       ; 58-deprecated Common file system interface
-      dd undefined_syscall       ; 59-reserved
-      dd sys_IPC                 ; 60-Inter Process Communication
-      dd sys_gs                  ; 61-Direct graphics access
-      dd pci_api                 ; 62-PCI functions
-      dd sys_msg_board           ; 63-System message board
-      dd sys_resize_app_memory   ; 64-Resize application memory usage
-      dd sys_putimage_palette    ; 65-PutImagePalette
-      dd sys_process_def         ; 66-Process definitions - keyboard
-      dd syscall_move_window     ; 67-Window move or resize
-      dd f68                     ; 68-Some internal services
-      dd sys_debug_services      ; 69-Debug
-      dd file_system_lfn         ; 70-Common file system interface, version 2
-      dd syscall_window_settings ; 71-Window settings
-      dd sys_sendwindowmsg       ; 72-Send window message
-      dd blit_32                 ; 73-blitter;
-      dd sys_network             ; 74-reserved for new stack
-      dd sys_socket              ; 75-reserved for new stack
-      dd sys_protocols           ; 76-reserved for new stack
-      dd sys_posix               ; posix support
-      dd undefined_syscall       ; 78-free
-      dd undefined_syscall       ; 79-free
-      dd fileSystemUnicode       ; 80-File system interface for different encodings
+      dd syscall_draw_window            ;  0 - define and draw the window;
+      dd syscall_setpixel               ;  1 - put pixel in the window;
+      dd syscall_getkey                 ;  2 - get the code of the pressed key;
+      dd syscall_clock                  ;  3 - get system time;
+      dd syscall_writetext              ;  4 - draw text string;
+      dd syscall_delay_hs_unprotected   ;  5 - delay;
+      dd syscall_undefined              ;  6 - system call undefined;
+      dd syscall_putimage               ;  7 - draw image in the window;
+      dd syscall_button                 ;  8 - define/delete the button;
+      dd syscall_thread_info            ;  9 - information on execution thread;
+      dd syscall_waitforevent           ; 10 - wait for event;
+      dd syscall_checkforevent          ; 11 - check for event, no wait;
+      dd syscall_redrawstat             ; 12 - begin/end window redraw;
+      dd syscall_drawrect               ; 13 - draw a rectangle in the window;
+      dd syscall_getscreensize          ; 14 - get screen size;
+      dd syscall_background             ; 15 - working with the background;
+      dd syscall_cachetodiskette        ; 16 - save ramdisk on a floppy;
+      dd syscall_getbutton              ; 17 - get the identifier of the pressed button;
+      dd syscall_system                 ; 18 - system services;
+      dd syscall_undefined              ; 19 - system call undefined;
+      dd syscall_midi                   ; 20 - reset MIDI and output MIDI;
+      dd syscall_setup                  ; 21 - setting system parameters;
+      dd syscall_settime                ; 22 - setting date, time, clock and alarm-clock;
+      dd syscall_wait_event_timeout     ; 23 - wait for event with timeout;
+      dd syscall_cdaudio                ; 24 - work with a CD player;
+      dd syscall_putarea_backgr         ; 25 - put area to background;
+      dd syscall_getsetup               ; 26 - get system parameters;
+      dd syscall_undefined              ; 27 - system call undefined;
+      dd syscall_undefined              ; 28 - system call undefined;
+      dd syscall_date                   ; 29 - get date;
+      dd syscall_current_directory      ; 30 - get/set current directory;
+      dd syscall_undefined              ; 31 - system call undefined;
+      dd syscall_undefined              ; 32 - system call undefined;
+      dd syscall_undefined              ; 33 - system call undefined;
+      dd syscall_getpixel_WinMap        ; 34 - find out who the screen point belongs to;
+      dd syscall_getpixel               ; 35 - read the color of the pixel on the screen;
+      dd syscall_getarea                ; 36 - read the screen area;
+      dd syscall_get_mouse_pos          ; 37 - work with the mouse;
+      dd syscall_drawline               ; 38 - draw a line;
+      dd syscall_getbackground          ; 39 - get background info;
+      dd syscall_set_eventmask          ; 40 - set event mask;
+      dd syscall_undefined              ; 41 - system call undefined;
+      dd syscall_undefined              ; 42 - system call undefined;
+      dd syscall_outport                ; 43 - input / output to the port;
+      dd syscall_undefined              ; 44 - system call undefined;
+      dd syscall_undefined              ; 45 - system call undefined;
+      dd syscall_reserveportarea        ; 46 - reserve port area and free port area;
+      dd syscall_putnumber              ; 47 - print a number to the window;
+      dd syscall_window_styles          ; 48 - window display styles;
+      dd syscall_apm                    ; 49 - Advanced Power Management (APM);
+      dd syscall_set_window_shape       ; 50 - window shape & scale;
+      dd syscall_threads                ; 51 - threads;
+      dd syscall_undefined              ; 52 - system call undefined;
+      dd syscall_undefined              ; 53 - system call undefined;
+      dd syscall_clipboard              ; 54 - working with the clipboard;
+      dd syscall_sound_interface        ; 55 - sound interface;
+      dd syscall_undefined              ; 56 - system call undefined;
+      dd syscall_pcibios                ; 57 - PCI BIOS32;
+      dd syscall_undefined              ; 58 - system call undefined; 
+      dd syscall_undefined              ; 59 - system call undefined;
+      dd syscall_IPC                    ; 60 - Inter Process Communication(IPC);
+      dd syscall_dga                    ; 61 - direct graphics access;
+      dd syscall_pci_api                ; 62 - PCI functions;
+      dd syscall_msg_board              ; 63 - system message board;
+      dd syscall_resize_app_memory      ; 64 - resize application memory usage;
+      dd syscall_putimage_palette       ; 65 - display an image with a palette in the window;
+      dd syscall_process_def            ; 66 - process definitions - keyboard;
+      dd syscall_move_window            ; 67 - window move or resize;
+      dd syscall_some_intrenal_services ; 68 - some internal services;
+      dd syscall_debug_services         ; 69 - debug services;
+      dd syscall_file_system_lfn        ; 70 - file system interface;
+      dd syscall_window_settings        ; 71 - window settings;
+      dd syscall_send_window_msg        ; 72 - send window message;
+      dd syscall_blit_32                ; 73 - graphic blitter;
+      dd syscall_network                ; 74 - work with network devices;
+      dd syscall_socket                 ; 75 - work with network sockets;
+      dd syscall_protocols              ; 76 - network options and statistics;
+      dd syscall_posix_subsystem        ; 77 - POSIX subsystem;
+      dd syscall_undefined              ; 78 - system call undefined;
+      dd syscall_undefined              ; 79 - system call undefined;
+      dd syscall_fs_diff_encodings      ; 80 - file system interface for different encodings;
 
-        times 255 - ( ($-servetable2) /4 )  dd undefined_syscall
-      dd sys_end                 ; -1-end application
+        times 255 - ( ($-servetable2) /4 )  dd syscall_undefined
+      dd syscall_end                    ; -1-end application
 
 endg
diff --git a/kernel/branches/Kolibri-F/core/taskman.inc b/kernel/branches/Kolibri-F/core/taskman.inc
index 7d9385e41c..fd375a41f2 100644
--- a/kernel/branches/Kolibri-F/core/taskman.inc
+++ b/kernel/branches/Kolibri-F/core/taskman.inc
@@ -873,8 +873,8 @@ common_app_entry:
         mov     ebx, dll_error_msg
         mov     ebp, notifyapp
         call    fs_execute_from_sysdir_param
-; Terminate process (TODO: Need jump to .cleanup after sys_end ?) 
-        call    sys_end
+; Terminate process (TODO: Need jump to .cleanup after syscall_end ?) 
+        call    syscall_end
         
 @@:       
 ; Find APP_STARTUP_THUNK in DLL.OBJ
diff --git a/kernel/branches/Kolibri-F/core/v86.inc b/kernel/branches/Kolibri-F/core/v86.inc
index 50da4cdd04..97cf3bee3b 100644
--- a/kernel/branches/Kolibri-F/core/v86.inc
+++ b/kernel/branches/Kolibri-F/core/v86.inc
@@ -685,7 +685,7 @@ v86_exc_c:
 if DEBUG_SHOW_IO
         mov     edx, ebx
         mov     ebx, 200
-        call    delay_hs
+        call    sys_delay_hs
         mov     esi, [esp+v86_regs.size+10h+4]
         mov     eax, [esi+V86_machine.iopm]
 @@:
diff --git a/kernel/branches/Kolibri-F/fdo.inc b/kernel/branches/Kolibri-F/fdo.inc
index 79068df888..9c0edc3104 100644
--- a/kernel/branches/Kolibri-F/fdo.inc
+++ b/kernel/branches/Kolibri-F/fdo.inc
@@ -23,7 +23,7 @@ $Revision$
 _esp equ esp
 
 macro put_board {
-        call    sys_msg_board
+        call    syscall_msg_board
 }
 
 macro debug_func name {
diff --git a/kernel/branches/Kolibri-F/fs/fs_lfn.inc b/kernel/branches/Kolibri-F/fs/fs_lfn.inc
index be38a520d0..bb5be64324 100644
--- a/kernel/branches/Kolibri-F/fs/fs_lfn.inc
+++ b/kernel/branches/Kolibri-F/fs/fs_lfn.inc
@@ -90,7 +90,7 @@ image_of_ebx EQU esp+20
 ;         ret
 ; endp
 
-; syscall_fileSystemUnicode: ; with user pointer correctness checking
+; syscall_syscall_fs_diff_encodings: ; with user pointer correctness checking
 ; ; in: ebx -> f.80 parameter structure
 ;         stdcall file_system_is_operation_safe, ebx
 ;         jnz     @f
@@ -99,13 +99,13 @@ image_of_ebx EQU esp+20
 ;         mov     dword [image_of_eax], ERROR_MEMORY_POINTER
 ;         ret
 ; @@:
-;         jmp     fileSystemUnicode
+;         jmp     syscall_fs_diff_encodings
 
 ; temporarily commented out cause acpi driver (drivers/devman) uses sysfn70 via 0x40
 ; so because drivers it kernel space, pointer checking fails
 ; TODO solution: add filesystem functions without pointer checking to kernel exports
 ; and make the driver use them, not int 0x40
-; syscall_fileSystemUnicode commented out for the same reason
+; syscall_syscall_fs_diff_encodings commented out for the same reason
 ; syscall_file_system_lfn: ; with user pointer correctness checking
 ; ; in: ebx -> f.70 parameter structure
 ;         stdcall file_system_is_operation_safe, ebx
@@ -115,28 +115,28 @@ image_of_ebx EQU esp+20
 ;         mov     dword [image_of_eax], ERROR_MEMORY_POINTER
 ;         ret
 ; @@:
-;         jmp     file_system_lfn
+;         jmp     syscall_file_system_lfn
 
 
 ; System function 70
 
-file_system_lfn_protected:
+syscall_file_system_lfn_protected:
         pushad
         call    protect_from_terminate
-        call    file_system_lfn
+        call    syscall_file_system_lfn
         call    unprotect_from_terminate
         popad
         mov     [image_of_eax], eax
         mov     [image_of_ebx], ebx
         ret
 
-fileSystemUnicode:
+syscall_fs_diff_encodings:
 ; in: ebx -> f.80 parameter structure
         mov     edi, [ebx+20]
         mov     esi, [ebx+24]
         jmp     @f
 
-file_system_lfn:
+syscall_file_system_lfn:
 ; in: ebx -> f.70 parameter structure
         xor     edi, edi
         lea     esi, [ebx+20]
@@ -512,7 +512,7 @@ uglobal
 addDirSeal db  ?
 endg
 
-sys_current_directory:  ; sysfunction 30
+syscall_current_directory:  ; sysfunction 30
         mov     eax, [current_slot]
         mov     edi, [eax+APPDATA.cur_dir]
         xor     eax, eax
diff --git a/kernel/branches/Kolibri-F/gui/event.inc b/kernel/branches/Kolibri-F/gui/event.inc
index 75e032732c..c8026f2981 100644
--- a/kernel/branches/Kolibri-F/gui/event.inc
+++ b/kernel/branches/Kolibri-F/gui/event.inc
@@ -326,7 +326,7 @@ wait_event_timeout:
         ret
 ;-----------------------------------------------------------------------------
 align 4
-get_event_ex:                                      ;; f68:14
+get_event_ex:                                      ;; syscall_some_intrenal_services:14
 ;info:
 ;   Waiting for any event in the EventList of the current slot
 ;   Code event data - copied to application memory (indirectly by edi)
@@ -431,7 +431,7 @@ align 4
         ret
 ;-----------------------------------------------------------------------------
 align 4
-sys_sendwindowmsg:                                 ;; f72
+syscall_send_window_msg:                                ;; f72
         dec     ebx
         jnz     .ret ;subfunction==1 ?
         pushfd
@@ -475,7 +475,7 @@ align 4
         ret
 ;-----------------------------------------------------------------------------
 align 4
-sys_getevent:                                      ;; f11
+syscall_checkforevent:                                      ;; f11
         mov     ebx, [current_slot]  ;now this is a question, what where to put......
         pushfd  ; this is a consequence of the general concept: let the test function have
         cli     ; the right to hope to disable interrupts, as when called from shed
@@ -485,11 +485,11 @@ sys_getevent:                                      ;; f11
         ret
 ;-----------------------------------------------------------------------------
 align 4
-sys_waitforevent:                                  ;; f10
+syscall_waitforevent:                                  ;; f10
         or      ebx, -1; infinite timeout
 ;--------------------------------------
 align 4
-sys_wait_event_timeout:                            ;; f23
+syscall_wait_event_timeout:                            ;; f23
         call    unprotect_from_terminate
         mov     edx, get_event_for_app; wait_test
         call    Wait_events_ex        ; ebx - timeout
diff --git a/kernel/branches/Kolibri-F/gui/window.inc b/kernel/branches/Kolibri-F/gui/window.inc
index 6b1e7e19b0..4ea86ebe6e 100644
--- a/kernel/branches/Kolibri-F/gui/window.inc
+++ b/kernel/branches/Kolibri-F/gui/window.inc
@@ -69,7 +69,7 @@ syscall_draw_window: ;///// system function 0 /////////////////////////////////
 .exit:
         ret
 ;------------------------------------------------------------------------------
-syscall_display_settings: ;///// system function 48 ///////////////////////////
+syscall_window_styles: ;///// system function 48 ///////////////////////////
 ;------------------------------------------------------------------------------
         cmp     ebx, 13
         ja      .ret
@@ -1008,8 +1008,8 @@ align 4
         jz      @f
 
         push    edx
-        call    syscall_display_settings.calculateScreen
-        call    syscall_display_settings.redrawScreen
+        call    syscall_window_styles.calculateScreen
+        call    syscall_window_styles.redrawScreen
         pop     edx
 ;--------------------------------------
 align 4
diff --git a/kernel/branches/Kolibri-F/hid/set_dtc.inc b/kernel/branches/Kolibri-F/hid/set_dtc.inc
index 3c2d527cd3..b25c31c647 100644
--- a/kernel/branches/Kolibri-F/hid/set_dtc.inc
+++ b/kernel/branches/Kolibri-F/hid/set_dtc.inc
@@ -16,7 +16,7 @@ $Revision$
 ; ebx =2 - set day of week ecx- 1-7
 ; ebx =3 - set alarm-clock ecx - 00SSMMHH
 ; out: 0 -Ok 1 -wrong format 2 -battery low
-sys_settime:
+syscall_settime:
       
         cli
         mov     al, 0x0d
diff --git a/kernel/branches/Kolibri-F/kernel.asm b/kernel/branches/Kolibri-F/kernel.asm
index cab36f16b7..f299750780 100644
--- a/kernel/branches/Kolibri-F/kernel.asm
+++ b/kernel/branches/Kolibri-F/kernel.asm
@@ -1357,7 +1357,7 @@ set_variables:
 
 align 4
 ;input  eax=43,bl-byte of output, ecx - number of port
-sys_outport:
+syscall_outport:
 
         mov     edi, ecx   ; separate flag for read / write
         and     ecx, 65535
@@ -1414,7 +1414,7 @@ sys_outport:
         mov     [esp+20], eax
         ret
 
-display_number:
+syscall_putnumber:
 ; add check pointers
         test    bl, bl
         jz      @f
@@ -1624,7 +1624,7 @@ midi_base dw 0
 endg
 ;-----------------------------------------------------------------------------
 align 4
-sys_setup:
+syscall_setup:
 ;  1 = roland mpu midi base , base io address
 ;  2 = keyboard   1, base kaybap 2, shift keymap, 9 country 1eng 2fi 3ger 4rus
 ;  3 = not used
@@ -1731,7 +1731,7 @@ sys_setup:
         ret
 ;-----------------------------------------------------------------------------
 align 4
-sys_getsetup:
+syscall_getsetup:
 ;  1 = roland mpu midi base , base io address
 ;  2 = keyboard   1, base kaybap 2, shift keymap, 9 country 1eng 2fi 3ger 4rus
 ;  3 = not used
@@ -1867,7 +1867,7 @@ get_timer_ticks:
         mov     eax, [timer_ticks]
         ret
 ;-----------------------------------------------------------------------------
-readmousepos:
+syscall_get_mouse_pos:
 ; eax=0 screen relative
 ; eax=1 window relative
 ; eax=2 buttons pressed
@@ -2021,7 +2021,7 @@ put_mpu_out:
 
 align 4
 
-sys_midi:
+syscall_midi:
         cmp     [mididp], 0
         jnz     sm0
         mov     [esp+36], dword 1
@@ -2079,7 +2079,7 @@ detect_devices:
 ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
         ret
 
-sys_end:
+syscall_end:
 ;--------------------------------------
         cmp     [_display.select_cursor], 0
         je      @f
@@ -2174,7 +2174,7 @@ sys_system_table:
 sysfn_num = ($ - sys_system_table)/4
 endg
 ;------------------------------------------------------------------------------
-sys_system:
+syscall_system:
         dec     ebx
         cmp     ebx, sysfn_num
         jae     @f
@@ -2303,8 +2303,8 @@ sysfn_deactivate:         ; 18.1 = DEACTIVATE WINDOW
         movzx   esi, word [WIN_STACK + ecx * 2]
         lea     esi, [WIN_POS + esi * 2]
         call    window._.window_deactivate
-        call    syscall_display_settings.calculateScreen
-        call    syscall_display_settings.redrawScreen
+        call    syscall_window_styles.calculateScreen
+        call    syscall_window_styles.redrawScreen
 .nowindowdeactivate:
         ret
 ;------------------------------------------------------------------------------
@@ -2672,7 +2672,7 @@ version_end:
 endg
 ;------------------------------------------------------------------------------
 align 4
-sys_cachetodiskette:
+syscall_cachetodiskette:
         cmp     ebx, 1
         jb      .no_floppy_save
         cmp     ebx, 2
@@ -2692,7 +2692,7 @@ bgrlock db 0
 endg
 ;------------------------------------------------------------------------------
 align 4
-sys_background:
+syscall_background:
         cmp     ebx, 1                     ; BACKGROUND SIZE
         jnz     nosb1
         test    ecx, ecx
@@ -3045,7 +3045,7 @@ force_redraw_background:
         ret
 ;------------------------------------------------------------------------------
 align 4
-sys_getbackground:
+syscall_getbackground:
 ;    cmp   eax,1                                  ; SIZE
         dec     ebx
         jnz     nogb1
@@ -3100,7 +3100,7 @@ nogb4:
         ret
 ;------------------------------------------------------------------------------
 align 4
-sys_getkey:
+syscall_getkey:
         mov     [esp + 32], dword 1
         ; test main buffer
         mov     ebx, [current_slot_idx]                          ; TOP OF WINDOW STACK
@@ -3157,7 +3157,7 @@ align 4
         jmp     .ret_eax
 ;------------------------------------------------------------------------------
 align 4
-sys_getbutton:
+syscall_getbutton:
         mov     ebx, [current_slot_idx]                         ; TOP OF WINDOW STACK
         mov     [esp + 32], dword 1
         movzx   ecx, word [WIN_STACK + ebx * 2]
@@ -3177,7 +3177,7 @@ align 4
         ret
 ;------------------------------------------------------------------------------
 align 4
-sys_cpuusage:
+syscall_thread_info:
 
 ;  RETURN:
 ;
@@ -3287,7 +3287,7 @@ sys_cpuusage:
         ret   
 
 align 4
-sys_clock:
+syscall_clock:
         cli
   ; Mikhail Lisovin  xx Jan 2005
   @@:
@@ -3325,7 +3325,7 @@ sys_clock:
 
 align 4
 
-sys_date:
+syscall_date:
 
         cli
   @@:
@@ -3360,7 +3360,7 @@ sys_date:
 
 ; redraw status
 
-sys_redrawstat:
+syscall_redrawstat:
         cmp     ebx, 1
         jne     no_widgets_away
         ; buttons away
@@ -3776,7 +3776,7 @@ redrawscreen:
         push    eax
 
 ;;;         mov   ebx,2
-;;;         call  delay_hs
+;;;         call  sys_delay_hs
 
          ;mov   ecx,0               ; redraw flags for apps
         xor     ecx, ecx
@@ -4048,7 +4048,7 @@ delay_ms:     ; delay in 1/1000 sec
         ret
 ;-----------------------------------------------------------------------------
 align 4
-set_app_param:
+syscall_set_eventmask:
         mov     edi, [TASK_BASE]
         mov     eax, ebx
         xchg    eax, [edi + TASKDATA.event_mask] ; set new event mask
@@ -4057,16 +4057,16 @@ set_app_param:
 ;-----------------------------------------------------------------------------
 
 ; this is for syscall
-proc delay_hs_unprotected
+proc syscall_delay_hs_unprotected
         call    unprotect_from_terminate
-        call    delay_hs
+        call    sys_delay_hs
         call    protect_from_terminate
         ret
 endp
 
 if 1
 align 4
-delay_hs:     ; delay in 1/100 secs
+sys_delay_hs:     ; delay in 1/100 secs
 ; ebx = delay time
 
         pushad
@@ -4093,7 +4093,7 @@ delay_hs:     ; delay in 1/100 secs
 else
 
 align 4
-delay_hs:     ; delay in 1/100 secs
+sys_delay_hs:     ; delay in 1/100 secs
 ; ebx = delay time
         push    ecx
         push    edx
@@ -4437,7 +4437,7 @@ sys_putimage_bpp:
 ;        jmp     [draw_pointer]
 ;-----------------------------------------------------------------------------
 align 4
-sys_putimage_palette:
+syscall_putimage_palette:
 ; ebx = pointer to image
 ; ecx = [xsize]*65536 + [ysize]
 ; edx = [xstart]*65536 + [ystart]
@@ -4842,7 +4842,7 @@ sys_msg_board_str:
         je      @f
         mov     ebx, 1
         movzx   ecx, byte [esi]
-        call    sys_msg_board
+        call    syscall_msg_board
         inc     esi
         jmp     @b
    @@:
@@ -4884,7 +4884,7 @@ sys_msg_board_dword:
         mov     cl, al
         xor     ebx, ebx
         inc     ebx
-        call    sys_msg_board
+        call    syscall_msg_board
         pop     eax
         pop     ecx
         loop    @b
@@ -4902,7 +4902,7 @@ iglobal
 msg_board_pos   dd  42*6*65536+10 ; for printing debug output on the screen
 endg
 
-sys_msg_board:
+syscall_msg_board:
 ; ebx=1 -> write, cl = byte to write
 ; ebx=2 -> read, ecx=0 -> no data, ecx=1 -> data in al
         push    eax ebx
@@ -5000,17 +5000,17 @@ end if
 iglobal
 align 4
 f66call:
-           dd sys_process_def.1   ; 1 = set keyboard mode
-           dd sys_process_def.2   ; 2 = get keyboard mode
-           dd sys_process_def.3   ; 3 = get keyboard ctrl, alt, shift
-           dd sys_process_def.4   ; 4 = set system-wide hotkey
-           dd sys_process_def.5   ; 5 = delete installed hotkey
-           dd sys_process_def.6   ; 6 = disable input, work only hotkeys
-           dd sys_process_def.7   ; 7 = enable input, opposition to f.66.6
+           dd syscall_process_def.1   ; 1 = set keyboard mode
+           dd syscall_process_def.2   ; 2 = get keyboard mode
+           dd syscall_process_def.3   ; 3 = get keyboard ctrl, alt, shift
+           dd syscall_process_def.4   ; 4 = set system-wide hotkey
+           dd syscall_process_def.5   ; 5 = delete installed hotkey
+           dd syscall_process_def.6   ; 6 = disable input, work only hotkeys
+           dd syscall_process_def.7   ; 7 = enable input, opposition to f.66.6
 endg
 ;-----------------------------------------------------------------------------
 align 4
-sys_process_def:
+syscall_process_def:
         dec     ebx
         cmp     ebx, 7
         jae     .not_support    ;if >=8 then or eax,-1
@@ -5150,15 +5150,15 @@ endg
 iglobal
 align 4
 f61call:
-           dd sys_gs.1   ; resolution
-           dd sys_gs.2   ; bits per pixel
-           dd sys_gs.3   ; bytes per scanline
+           dd syscall_dga.1   ; resolution
+           dd syscall_dga.2   ; bits per pixel
+           dd syscall_dga.3   ; bytes per scanline
 endg
 
 
 align 4
 
-sys_gs:                         ; direct screen access
+syscall_dga:                         ; direct screen access
         dec     ebx
         cmp     ebx, 2
         ja      .not_support
@@ -5691,7 +5691,7 @@ apm_vf          dd      0
 endg
 
 align 4
-sys_apm:
+syscall_apm:
         xor     eax, eax
         cmp     word [apm_vf], ax       ; Check APM BIOS enable
         jne     @f
@@ -5743,7 +5743,7 @@ sys_apm:
 ; -----------------------------------------
 
 align 4
-undefined_syscall:                      ; Undefined system call
+syscall_undefined:                      ; Undefined system call
         mov     [esp + 32], dword -1
         ret
 
diff --git a/kernel/branches/Kolibri-F/network/socket.inc b/kernel/branches/Kolibri-F/network/socket.inc
index 7cd567b420..24438e8d84 100644
--- a/kernel/branches/Kolibri-F/network/socket.inc
+++ b/kernel/branches/Kolibri-F/network/socket.inc
@@ -245,7 +245,7 @@ macro   socket_init {
 ;                                                                 ;
 ;-----------------------------------------------------------------;
 align 4
-sys_socket:
+syscall_socket:
 
         mov     dword[esp+20], 0        ; Set error code to 0
 
diff --git a/kernel/branches/Kolibri-F/network/stack.inc b/kernel/branches/Kolibri-F/network/stack.inc
index 4e7f99a43c..deeb4967ee 100644
--- a/kernel/branches/Kolibri-F/network/stack.inc
+++ b/kernel/branches/Kolibri-F/network/stack.inc
@@ -720,7 +720,7 @@ checksum_2:
 ;                                                                 ;
 ;-----------------------------------------------------------------;
 align 4
-sys_network:
+syscall_network:
 
         cmp     bl, 255
         jne     @f
@@ -847,7 +847,7 @@ sys_network:
 ;                                                                 ;
 ;-----------------------------------------------------------------;
 align 4
-sys_protocols:
+syscall_protocols:
         cmp     bh, NET_DEVICES_MAX             ; Check if device number exists
         jae     .doesnt_exist
 
diff --git a/kernel/branches/Kolibri-F/posix/posix.inc b/kernel/branches/Kolibri-F/posix/posix.inc
index a1e494d983..1b53edc139 100644
--- a/kernel/branches/Kolibri-F/posix/posix.inc
+++ b/kernel/branches/Kolibri-F/posix/posix.inc
@@ -47,17 +47,17 @@ sys_posix_call:
         dd sys_futex        ;5     reserved
         dd sys_futex        ;6     reserved
         dd sys_futex        ;7     reserved
-        dd sys_posix.fail   ;8     sys_open
-        dd sys_posix.fail   ;9     sys_close
+        dd syscall_posix_subsystem.fail   ;8     sys_open
+        dd syscall_posix_subsystem.fail   ;9     sys_close
         dd sys_read         ;10    read()
         dd sys_write        ;11    write()
-        dd sys_posix.fail   ;12    sys_dup3
+        dd syscall_posix_subsystem.fail   ;12    sys_dup3
         dd sys_pipe2        ;13
 .end:
 endg
 
 align 4
-sys_posix:
+syscall_posix_subsystem:
         cmp     ebx, (sys_posix_call.end-sys_posix_call)/4
         jae     .fail
 
diff --git a/kernel/branches/Kolibri-F/sound/playnote.inc b/kernel/branches/Kolibri-F/sound/playnote.inc
index cbcd344d27..2c4bf1b227 100644
--- a/kernel/branches/Kolibri-F/sound/playnote.inc
+++ b/kernel/branches/Kolibri-F/sound/playnote.inc
@@ -19,7 +19,7 @@
 $Revision$
 
 align 4
-sound_interface:
+syscall_sound_interface:
 
         cmp     eax, ebx                        ; this is subfunction #55 ?
         jne     retFunc55                       ; if no then return.
diff --git a/kernel/branches/Kolibri-F/tools/kerpack b/kernel/branches/Kolibri-F/tools/kerpack
new file mode 100755
index 0000000000000000000000000000000000000000..d4906ec02ae9a1fb2a43f0ad46e34e543fc159f8
GIT binary patch
literal 35856
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

literal 0
HcmV?d00001

diff --git a/kernel/branches/Kolibri-F/tools/kpack b/kernel/branches/Kolibri-F/tools/kpack
new file mode 100755
index 0000000000000000000000000000000000000000..08f10c27fee21377c35472d848300da0c0a3e6be
GIT binary patch
literal 39336
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

literal 0
HcmV?d00001

diff --git a/kernel/branches/Kolibri-F/video/blitter.inc b/kernel/branches/Kolibri-F/video/blitter.inc
index 2ee7366634..089c5392c5 100644
--- a/kernel/branches/Kolibri-F/video/blitter.inc
+++ b/kernel/branches/Kolibri-F/video/blitter.inc
@@ -197,7 +197,7 @@ purge .dy1
         ret
 
 align 4
-blit_32:
+syscall_blit_32:
         push    ebp
         push    edi
         push    esi