/kernel/branches/Kolibri-F/blkdev/disk.inc |
---|
1291,15 → 1291,15 |
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 |
; 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 |
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 |
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 |
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 |
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 |
; 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 |
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 |
/kernel/branches/Kolibri-F/blkdev/rdsave.inc |
---|
27,7 → 27,7 |
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 |
/kernel/branches/Kolibri-F/boot/rdload.inc |
---|
97,7 → 97,7 |
read_image: |
mov ebx, read_image_fsinfo |
pushad |
call file_system_lfn_protected |
call syscall_file_system_lfn_protected |
popad |
ret |
/kernel/branches/Kolibri-F/boot/shutdown.inc |
---|
69,7 → 69,7 |
; 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 |
/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 |
/kernel/branches/Kolibri-F/bus/pci/pci32.inc |
---|
56,7 → 56,7 |
align 4 |
pci_api: |
syscall_pci_api: |
;cross |
mov eax, ebx |
499,7 → 499,7 |
endg |
;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= |
align 4 |
sys_pcibios: |
syscall_pcibios: |
cmp [pci_access_enabled], 1 |
jne .unsupported_func |
cmp [pci_bios_entry], 0 |
/kernel/branches/Kolibri-F/bus/usb/init.inc |
---|
205,7 → 205,7 |
; 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 |
/kernel/branches/Kolibri-F/core/clipboard.inc |
---|
10,7 → 10,7 |
;------------------------------------------------------------------------------ |
align 4 |
sys_clipboard: |
syscall_clipboard: |
xor eax, eax |
dec eax |
; check availability of main list |
/kernel/branches/Kolibri-F/core/debug.inc |
---|
9,15 → 9,15 |
; 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 |
/kernel/branches/Kolibri-F/core/dll.inc |
---|
388,7 → 388,7 |
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 |
pushad |
lea ebx, [cmd] |
call file_system_lfn_protected |
call syscall_file_system_lfn_protected |
popad |
ret |
endp |
/kernel/branches/Kolibri-F/core/exports.inc |
---|
75,11 → 75,11 |
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', \ |
/kernel/branches/Kolibri-F/core/memory.inc |
---|
906,7 → 906,7 |
ret |
endp |
sys_IPC: |
syscall_IPC: |
;input: |
; ebx=1 - set ipc buffer area |
; ecx=address of buffer |
1098,15 → 1098,15 |
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 |
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 |
/kernel/branches/Kolibri-F/core/sys32.inc |
---|
367,7 → 367,7 |
; 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 |
pushad |
xchg eax, ecx |
mov ebx, 2 |
call sys_system |
call syscall_system |
popad |
@@: |
inc eax |
813,7 → 813,7 |
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 |
/kernel/branches/Kolibri-F/core/syscall.inc |
---|
98,89 → 98,89 |
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 |
/kernel/branches/Kolibri-F/core/taskman.inc |
---|
873,8 → 873,8 |
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 |
/kernel/branches/Kolibri-F/core/v86.inc |
---|
685,7 → 685,7 |
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] |
@@: |
/kernel/branches/Kolibri-F/fdo.inc |
---|
23,7 → 23,7 |
_esp equ esp |
macro put_board { |
call sys_msg_board |
call syscall_msg_board |
} |
macro debug_func name { |
/kernel/branches/Kolibri-F/fs/fs_lfn.inc |
---|
90,7 → 90,7 |
; 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 |
; 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,15 → 115,15 |
; 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 |
130,13 → 130,13 |
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 |
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 |
/kernel/branches/Kolibri-F/gui/event.inc |
---|
326,7 → 326,7 |
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 |
ret |
;----------------------------------------------------------------------------- |
align 4 |
sys_sendwindowmsg: ;; f72 |
syscall_send_window_msg: ;; f72 |
dec ebx |
jnz .ret ;subfunction==1 ? |
pushfd |
475,7 → 475,7 |
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 |
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 |
/kernel/branches/Kolibri-F/gui/window.inc |
---|
69,7 → 69,7 |
.exit: |
ret |
;------------------------------------------------------------------------------ |
syscall_display_settings: ;///// system function 48 /////////////////////////// |
syscall_window_styles: ;///// system function 48 /////////////////////////// |
;------------------------------------------------------------------------------ |
cmp ebx, 13 |
ja .ret |
1008,8 → 1008,8 |
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 |
/kernel/branches/Kolibri-F/hid/set_dtc.inc |
---|
16,7 → 16,7 |
; 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 |
/kernel/branches/Kolibri-F/kernel.asm |
---|
1357,7 → 1357,7 |
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 |
mov [esp+20], eax |
ret |
display_number: |
syscall_putnumber: |
; add check pointers |
test bl, bl |
jz @f |
1624,7 → 1624,7 |
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 |
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 |
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 |
align 4 |
sys_midi: |
syscall_midi: |
cmp [mididp], 0 |
jnz sm0 |
mov [esp+36], dword 1 |
2079,7 → 2079,7 |
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
ret |
sys_end: |
syscall_end: |
;-------------------------------------- |
cmp [_display.select_cursor], 0 |
je @f |
2174,7 → 2174,7 |
sysfn_num = ($ - sys_system_table)/4 |
endg |
;------------------------------------------------------------------------------ |
sys_system: |
syscall_system: |
dec ebx |
cmp ebx, sysfn_num |
jae @f |
2303,8 → 2303,8 |
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 |
endg |
;------------------------------------------------------------------------------ |
align 4 |
sys_cachetodiskette: |
syscall_cachetodiskette: |
cmp ebx, 1 |
jb .no_floppy_save |
cmp ebx, 2 |
2692,7 → 2692,7 |
endg |
;------------------------------------------------------------------------------ |
align 4 |
sys_background: |
syscall_background: |
cmp ebx, 1 ; BACKGROUND SIZE |
jnz nosb1 |
test ecx, ecx |
3045,7 → 3045,7 |
ret |
;------------------------------------------------------------------------------ |
align 4 |
sys_getbackground: |
syscall_getbackground: |
; cmp eax,1 ; SIZE |
dec ebx |
jnz nogb1 |
3100,7 → 3100,7 |
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 |
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 |
ret |
;------------------------------------------------------------------------------ |
align 4 |
sys_cpuusage: |
syscall_thread_info: |
; RETURN: |
; |
3287,7 → 3287,7 |
ret |
align 4 |
sys_clock: |
syscall_clock: |
cli |
; Mikhail Lisovin xx Jan 2005 |
@@: |
3325,7 → 3325,7 |
align 4 |
sys_date: |
syscall_date: |
cli |
@@: |
3360,7 → 3360,7 |
; redraw status |
sys_redrawstat: |
syscall_redrawstat: |
cmp ebx, 1 |
jne no_widgets_away |
; buttons away |
3776,7 → 3776,7 |
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 |
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,9 → 4057,9 |
;----------------------------------------------------------------------------- |
; 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 |
4066,7 → 4066,7 |
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 |
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 |
; 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 |
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 |
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 |
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 |
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 |
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 |
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 |
; ----------------------------------------- |
align 4 |
undefined_syscall: ; Undefined system call |
syscall_undefined: ; Undefined system call |
mov [esp + 32], dword -1 |
ret |
/kernel/branches/Kolibri-F/network/socket.inc |
---|
245,7 → 245,7 |
; ; |
;-----------------------------------------------------------------; |
align 4 |
sys_socket: |
syscall_socket: |
mov dword[esp+20], 0 ; Set error code to 0 |
/kernel/branches/Kolibri-F/network/stack.inc |
---|
720,7 → 720,7 |
; ; |
;-----------------------------------------------------------------; |
align 4 |
sys_network: |
syscall_network: |
cmp bl, 255 |
jne @f |
847,7 → 847,7 |
; ; |
;-----------------------------------------------------------------; |
align 4 |
sys_protocols: |
syscall_protocols: |
cmp bh, NET_DEVICES_MAX ; Check if device number exists |
jae .doesnt_exist |
/kernel/branches/Kolibri-F/posix/posix.inc |
---|
47,17 → 47,17 |
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 |
/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. |
/kernel/branches/Kolibri-F/tools/kerpack |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/x-executable |
Property changes: |
Added: svn:executable |
+* |
\ No newline at end of property |
Added: svn:mime-type |
+application/x-executable |
\ No newline at end of property |
/kernel/branches/Kolibri-F/tools/kpack |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/x-executable |
Property changes: |
Added: svn:executable |
+* |
\ No newline at end of property |
Added: svn:mime-type |
+application/x-executable |
\ No newline at end of property |
/kernel/branches/Kolibri-F/video/blitter.inc |
---|
197,7 → 197,7 |
ret |
align 4 |
blit_32: |
syscall_blit_32: |
push ebp |
push edi |
push esi |