- Added SF 68.1 and SF 68.14 wrappers
 - Added SLOT_STATE enum.

git-svn-id: svn://kolibrios.org@9788 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
turbocat 2022-04-26 07:57:42 +00:00
parent 23d59ab1ad
commit d3e724b908

View File

@ -1,3 +1,6 @@
#ifndef _KSYS_H_
#define _KSYS_H_
/* Copyright (C) KolibriOS team 2004-2021. All rights reserved. */ /* Copyright (C) KolibriOS team 2004-2021. All rights reserved. */
/* Distributed under terms of the GNU General Public License */ /* Distributed under terms of the GNU General Public License */
@ -16,9 +19,6 @@
* They are for compatibility... Better not to use them. * They are for compatibility... Better not to use them.
*/ */
#ifndef _KSYS_H_
#define _KSYS_H_
#include <stddef.h> #include <stddef.h>
#include <stdint.h> #include <stdint.h>
@ -193,6 +193,14 @@ typedef struct {
char path[64]; char path[64];
} ksys_dir_key_t; } ksys_dir_key_t;
typedef union {
uint8_t raw_data[24];
struct {
uint32_t id;
uint8_t data[20];
};
} ksys_signal_info_t;
#pragma pack(pop) #pragma pack(pop)
typedef rgb_t ksys_bitmap_t; typedef rgb_t ksys_bitmap_t;
@ -354,6 +362,18 @@ KOSAPI void _ksys_delete_button(uint32_t id)
/*============ Function 9 - information on execution thread. ===========*/ /*============ Function 9 - information on execution thread. ===========*/
#define KSYS_THIS_SLOT -1
enum KSYS_SLOT_STATES {
KSYS_SLOT_STATE_RUNNING = 0,
KSYS_SLOT_STATE_SUSPENDED = 1,
KSYS_SLOT_STATE_SUSPENDED_WAIT_EVENT = 2,
KSYS_SLOT_STATE_NORMAL_TERM = 3,
KSYS_SLOT_STATE_EXCEPT_TERM = 4,
KSYS_SLOT_STATE_WAIT_EVENT = 5,
KSYS_SLOT_STATE_FREE = 6
};
KOSAPI int _ksys_thread_info(ksys_thread_t* table, int slot) KOSAPI int _ksys_thread_info(ksys_thread_t* table, int slot)
{ {
int val; int val;
@ -1080,6 +1100,13 @@ KOSAPI void _ksys_change_window(int new_x, int new_y, int new_w, int new_h)
"int $0x40" ::"a"(67), "b"(new_x), "c"(new_y), "d"(new_w), "S"(new_h)); "int $0x40" ::"a"(67), "b"(new_x), "c"(new_y), "d"(new_w), "S"(new_h));
} }
/*===== Function 68, subfunction 1 - switch to the next thread of execution ====*/
KOSAPI void _ksys_thread_yield(void)
{
asm_inline("int $0x40" :: "a"(68),"b"(1));
}
/*======== Function 68, subfunction 12 - allocate memory block. ========*/ /*======== Function 68, subfunction 12 - allocate memory block. ========*/
KOSAPI void* _ksys_alloc(size_t size) KOSAPI void* _ksys_alloc(size_t size)
@ -1104,6 +1131,13 @@ KOSAPI int _ksys_free(void* mem)
return val; return val;
} }
/*====== Function 68, subfunction 14 - Wait signal from other applications/drivers. =====*/
KOSAPI void _ksys_wait_signal(ksys_signal_info_t* signal)
{
asm_inline("int $0x40" :: "a"(68),"b"(14),"c"(signal) : "memory");
}
/*============= Function 68, subfunction 16 - load driver. =============*/ /*============= Function 68, subfunction 16 - load driver. =============*/
KOSAPI ksys_drv_hand_t _ksys_load_driver(char* driver_name) KOSAPI ksys_drv_hand_t _ksys_load_driver(char* driver_name)