diff --git a/programs/KOSfuncs.inc b/programs/KOSfuncs.inc new file mode 100644 index 0000000000..d94defb56b --- /dev/null +++ b/programs/KOSfuncs.inc @@ -0,0 +1,287 @@ + +; KolibriOS system functions: +SF_TERMINATE_PROCESS=-1 +SF_CREATE_WINDOW=0 ; define and draw the window +SF_PUT_PIXEL=1 ; draw pixel to the window +SF_GET_KEY=2 ; get code of the pressed key +SF_GET_SYS_TIME=3 +SF_DRAW_TEXT=4 +SF_SLEEP=5 ; pause process +SF_PUT_IMAGE=7 ; draw image to the window +SF_DEFINE_BUTTON=8 ; define/delete the button +SF_THREAD_INFO=9 ; information on execution thread +SF_WAIT_EVENT=10 ; wait for event +SF_CHECK_EVENT=11 ; check for event and return +SF_REDRAW=12 + SSF_BEGIN_DRAW=1 + SSF_END_DRAW=2 +SF_DRAW_RECT=13 ; draw rectangle to the window +SF_GET_SCREEN_SIZE=14 ; get screen resolution +SF_BACKGROUND_SET=15 + SSF_SIZE_BG=1 + SSF_PIXEL_BG=2 + SSF_REDRAW_BG=3 + SSF_MODE_BG=4 + SSF_IMAGE_BG=5 + SSF_MAP_BG=6 ; map background image to the address space of the process + SSF_UNMAP_BG=7 + SSF_LAST_DRAW=8 ; get coordinates of the last draw to the background + SSF_REDRAW_RECT=9 ; redraws a rectangular part of the background +SF_RD_TO_FLOPPY=16 ; save ramdisk on the floppy +SF_GET_BUTTON=17 ; get ID of the pressed button +SF_SYSTEM=18 + SSF_UNFOCUS_WINDOW=1 ; take focus from the window of the given thread + SSF_TERMINATE_THREAD=2 ; terminate process/thread by the slot number + SSF_FOCUS_WINDOW=3 ; give focus to the window of the given thread + SSF_GET_IDLE_COUNT=4 ; get counter of idle cycles per second + SSF_GET_CPU_REQUENCY=5 ; get CPU clock rate + SSF_RD_TO_HDD=6 ; save ramdisk to the file on hard disk + SSF_GET_ACTIVE_WINDOW=7 ; get slot number of the active window + SSF_SPEAKER=8 + SSSF_GET_STATE=1 + SSSF_TOGGLE=2 + SSF_SHUTDOWN=9 ; system shutdown/reboot + SSF_MINIMIZE_WINDOW=10 ; minimize active window + SSF_INFO_DISC_SYS=11 ; get disk subsystem information + SSF_KERNEL_VERSION=13 ; get kernel version + SSF_WAIT_RETRACE=14 ; wait for screen retrace + SSF_CURSOR_CENTER=15 ; center mouse cursor on the screen + SSF_GET_FREE_RAM=16 ; get size of free RAM + SSF_GET_TOTAL_RAM=17 ; get total amount of RAM + SSF_TERMINATE_THREAD_ID=18 ; Terminate process/thread by the ID + SSF_MOUSE_SETTINGS=19 + SSSF_GET_SPEED=0 + SSSF_SET_SPEED=1 + SSSF_GET_SPEEDUP=2 + SSSF_SET_SPEEDUP=3 ; set mouse acceleration + SSSF_SET_POS=4 ; set mouse pointer position + SSSF_SET_BUTTON=5 ; simulate state of mouse buttons + SSSF_GET_DOUBLE_CLICK_DELAY=6 + SSSF_SET_DOUBLE_CLICK_DELAY=7 + SSF_GET_RAM_INFO=20 ; get information on RAM + SSF_GET_THREAD_SLOT=21 ; get slot number of process/thread by the ID + SSF_FOREIGN_WINDOW=22 ; operations with window of another thread by slot/ID + SSSF_MINIMIZE=0 + SSSF_MINIMIZE_ID=1 + SSSF_RESTORE=2 + SSSF_RESTORE_ID=3 + SSF_MINIMIZE_ALL=23 + SSF_SET_SCREEN_LIMITS=24 + SSF_WINDOW_BEHAVIOR=25 ; window focus relation with other windows + SSSF_GET_WB=1 + SSSF_SET_WB=2 +SF_MIDI=20 + SSF_RESET=1 + SSF_OUTPUT=2 +SF_SYSTEM_SET=21 + SSF_MPU_MIDI_BASE=1 + SSF_KEYBOARD_LAYOUT=2 + SSF_SYS_LANG=5 + SSF_ACCESS_HD_LBA=11 ; setting of low-level access to HD + SSF_ACCESS_PCI=12 ; setting of low-level access to PCI +SF_SET_TIME_DATE=22 +SF_WAIT_EVENT_TIMEOUT=23; wait for event with timeout +SF_CD=24 + SSF_EJECT_TRAY=4 + SSF_INSERT_TRAY=5 +SF_SCREEN_PUT_IMAGE=25 ; put image on the background layer +SF_SYSTEM_GET=26 + ; Same as SF_SYSTEM_SET, plus: + SSF_TIME_COUNT=9 + SSF_TIME_COUNT_PRO=10 ; get value of the high precision time counter +SF_GET_SYS_DATE=29 +SF_CURRENT_FOLDER=30 + SSF_SET_CF=1 ; set current folder for the thread + SSF_GET_CF=2 + SSF_ADD_SYS_FOLDER=3 ; install the add.system directory for the kernel +SF_GET_PIXEL_OWNER=34 ; get slot number of the screen pixel owner +SF_GET_PIXEL=35 ; read the screen pixel color +SF_GET_IMAGE=36 ; read the screen area +SF_MOUSE_GET=37 + SSF_SCREEN_POSITION=0 + SSF_WINDOW_POSITION=1 + SSF_BUTTON=2 ; states of the mouse buttons + SSF_BUTTON_EXT=3 ; states and events of the mouse buttons + SSF_LOAD_CURSOR=4 + SSF_SET_CURSOR=5 + SSF_DEL_CURSOR=6 + SSF_SCROLL_DATA=7 +SF_DRAW_LINE=38 +SF_BACKGROUND_GET=39 + ;SSF_SIZE_BG=1 + ;SSF_PIXEL_BG=2 + ;SSF_MODE_BG=4 +SF_SET_EVENTS_MASK=40 ; turn on/off desired events +SF_PORT_IN_OUT=43 ; input/output to a port +SF_SET_PORTS=46 ; reserve/free a group of input/output ports +SF_DRAW_NUMBER=47 ; draw number to the window +SF_STYLE_SETTINGS=48 + SSF_APPLY=0 ; apply screen settings + SSF_SET_BUTTON_STYLE=1 + SSF_SET_COLORS=2 + SSF_GET_COLORS=3 ; get standard window colors + SSF_GET_SKIN_HEIGHT=4 + SSF_GET_SCREEN_AREA=5 ; get screen working area + SSF_SET_SCREEN_AREA=6 + SSF_GET_SKIN_MARGINS=7 + SSF_SET_SKIN=8 + SSF_GET_FONT_SMOOTH=9 + SSF_SET_FONT_SMOOTH=10 + SSF_GET_FONT_SIZE=11 + SSF_SET_FONT_SIZE=12 +SF_APM=49 +SF_SET_WINDOW_SHAPE=50 +SF_CREATE_THREAD=51 +SF_CLIPBOARD=54 + SSF_GET_SLOT_COUNT=0 ; get the number of slots in the clipboard + SSF_READ_CB=1 + SSF_WRITE_CB=2 + SSF_DEL_SLOT=3 ; delete the last slot in the clipboard + SSF_UNLOCK_BUFFER=4 ; emergency buffer unlock +SF_SPEAKER_PLAY=55 +SF_PCI_BIOS=57 +SF_IPC=60 ; Inter Process Communication + SSF_SET_AREA=1 ; set area for IPC receiving + SSF_SEND_MESSAGE=2 +SF_GET_GRAPHICAL_PARAMS=61 + SSF_SCREEN_SIZE=1 + SSF_BITS_PER_PIXEL=2 + SSF_BYTES_PER_LINE=3 +SF_PCI=62 + SSF_GET_VERSION=0 ; get version of PCI-interface + SSF_GET_LAST_BUS=1 ; get number of the last PCI-bus + SSF_GET_ADRR_MODE=2 ; get addressing mode of the PCI configuration space + SSF_READ_BYTE=4 + SSF_READ_WORD=5 + SSF_READ_DWORD=6 + SSF_WRITE_BYTE=8 + SSF_WRITE_WORD=9 + SSF_WRITE_DWORD=10 +SF_BOARD=63 + SSF_DEBUG_WRITE=1 + SSF_DEBUG_READ=2 +SF_MEMORY_RESIZE=64 ; resize total application memory +SF_PUT_IMAGE_EXT=65 ; draw image with palette to the window +SF_KEYBOARD=66 + SSF_SET_INPUT_MODE=1 + SSF_GET_INPUT_MODE=2 + SSF_GET_CONTROL_KEYS=3; get status of control keys + SSF_SET_SYS_HOTKEY=4 + SSF_DEL_SYS_HOTKEY=5 + SSF_LOCK_INPUT=6 ; block normal input + SSF_UNLOCK_INPUT=7 ; restore normal input +SF_CHANGE_WINDOW=67 ; change position/sizes of the window +SF_SYS_MISC=68 + SSF_GET_TASK_SWITCH_COUNT=0 + SSF_SWITCH_TASK=1 + SSF_PERFORMANCE=2 + SSSF_ALLOW_RDPMC=0 + SSSF_CACHE_STATUS=1 + SSSF_CACHE_ON=2 + SSSF_CACHE_OFF=3 + SSF_READ_MSR=3 + SSF_WRITE_MSR=4 + SSF_HEAP_INIT=11 + SSF_MEM_ALLOC=12 + SSF_MEM_FREE=13 + SSF_WAIT_SIGNAL=14 ; wait for signal from another program/driver + SSF_LOAD_DRIVER=16 + SSF_CONTROL_DRIVER=17 + SSF_LOAD_DLL=19 + SSF_MEM_REALLOC=20 + SSF_LOAD_DRIVER_PE=21 + SSF_MEM_OPEN=22 ; open named memory area + SSF_MEM_CLOSE=23 + SSF_SET_EXCEPTION_HANDLER=24 + SSF_SET_EXCEPTION_STATE=25 + SSF_MEM_FREE_EXT=26 + SSF_LOAD_FILE=27 +SF_DEBUG=69 + SSF_SET_MESSAGE_AREA=0 + SSF_GET_REGISTERS=1 + SSF_SET_REGISTERS=2 + SSF_DETACH=3 + SSF_SUSPEND=4 + SSF_RESUME=5 + SSF_READ_MEMORY=6 + SSF_WRITE_MEMORY=7 + SSF_TERMINATE=8 + SSF_DEFINE_BREAKPOINT=9 +SF_FILE=70 + SSF_READ_FILE=0 + SSF_READ_FOLDER=1 + SSF_CREATE_FILE=2 + SSF_WRITE_FILE=3 + SSF_SET_END=4 + SSF_GET_INFO=5 + SSF_SET_INFO=6 + SSF_START_APP=7 + SSF_DELETE=8 + SSF_CREATE_FOLDER=9 +SF_SET_CAPTION=71 +SF_SEND_MESSAGE=72 +SF_BLITTER=73 +SF_NETWORK_GET=74 + SSF_DEVICE_COUNT=255 ; get number of active network devices + SSF_DEVICE_TYPE=0 + SSF_DEVICE_NAME=1 + SSF_RESET_DEVICE=2 + SSF_STOP_DEVICE=3 + SSF_DEVICE_POINER=4 + SSF_TX_PACKET_COUNT=6 + SSF_RX_PACKET_COUNT=7 + SSF_TX_BYTE_COUNT=8 + SSF_RX_BYTE_COUNT=9 + SSF_LINK_STATUS=10 +SF_NETWORK_SOCKET=75 + SSF_OPEN=0 + SSF_CLOSE=1 + SSF_BIND=2 + SSF_LISTEN=3 + SSF_CONNECT=4 + SSF_ACCEPT=5 + SSF_SEND=6 + SSF_RECEIVE=7 + SSF_SET_OPTIONS=8 + SSF_GET_OPTIONS=9 + SSF_GET_PAIR=10 +SF_NETWORK_PROTOCOL=76 + SSF_ETHERNET_READ_MAC=0 + SSF_IP4_PACKETS_SENT=10000h + SSF_IP4_PACKETS_RECEIVED=10001h + SSF_IP4_READ_IP=10002h + SSF_IP4_WRITE_IP=10003h + SSF_IP4_READ_DNS=10004h + SSF_IP4_WRITE_DNS=10005h + SSF_IP4_READ_SUBNET=10006h + SSF_IP4_WRITE_SUBNET=10007h + SSF_IP4_READ_GATEWAY=10008h + SSF_IP4_WRITE_GATEWAY=10009h + SSF_ICMP_PACKETS_SENT=20000h + SSF_ICMP_PACKETS_RECEIVED=20001h + SSF_ICMP_ECHO_REPLY=20003h + SSF_UDP_PACKETS_SENT=30000h + SSF_UDP_PACKETS_RECEIVED=30001h + SSF_TCP_PACKETS_SENT=40000h + SSF_TCP_PACKETS_RECEIVED=40001h + SSF_ARP_PACKETS_SENT=50000h + SSF_ARP_PACKETS_RECEIVED=50001h + SSF_ARP_GET_ENTRY_COUNT=50002h + SSF_ARP_READ_ENTRY=50003h + SSF_ARP_ADD_STATIC_ENTRY=50004h + SSF_ARP_DEL_ENTRY=50005h + SSF_ARP_SEND_ANNOUNCE=50006h + SSF_ARP_CONFLICTS_COUNT=50007h + +; File system errors: +FSERR_DISK_BASE=1 +FSERR_UNSUPPORTED=2 +FSERR_UNKNOWN=3 +FSERR_FILE_NOT_FOUND=5 +FSERR_END_OF_FILE=6 +FSERR_INVALID_BUFFER=7 +FSERR_DISK_FULL=8 +FSERR_FAIL=9 +FSERR_ACCESS_DENIED=10 +FSERR_DEVICE_FAIL=11 +FSERR_OUT_OF_MEMORY=12