From 7ab5be6d84917fb4348b5ec0a3995ca5845e497d Mon Sep 17 00:00:00 2001 From: Ashish Gupta Date: Sat, 10 Jun 2017 08:21:40 +0200 Subject: Move sys_uptime() inside kolibrios dir --- frontends/kolibrios/Makefile | 2 +- frontends/kolibrios/kolibri_os.c | 11 + frontends/kolibrios/kos32sys.h | 570 --------------------------------------- 3 files changed, 12 insertions(+), 571 deletions(-) create mode 100644 frontends/kolibrios/kolibri_os.c delete mode 100644 frontends/kolibrios/kos32sys.h (limited to 'frontends') diff --git a/frontends/kolibrios/Makefile b/frontends/kolibrios/Makefile index c1496de48..cc508933c 100644 --- a/frontends/kolibrios/Makefile +++ b/frontends/kolibrios/Makefile @@ -112,7 +112,7 @@ $(eval $(foreach V,$(filter KOLIBRI_IMAGE_%,$(.VARIABLES)),$(call convert_image, # $(eval $(call pkg_config_find_and_add_enabled,JS,mozilla-js,JavaScript)) #S_KOLIBRIOS := main.c kolibri_misc.c kolibri_debug.c kolibri_filesystem.c kolibri_regex.c -S_KOLIBRIOS := kolibri_http.c +S_KOLIBRIOS := kolibri_http.c kolibri_os.c S_FRAMEBUFFER := gui.c framebuffer.c schedule.c bitmap.c fetch.c findfile.c localhistory.c clipboard.c font_freetype.c S_FRAMEBUFFER_FBTK := fbtk.c event.c fill.c bitmap.c user.c window.c text.c scroll.c osk.c diff --git a/frontends/kolibrios/kolibri_os.c b/frontends/kolibrios/kolibri_os.c new file mode 100644 index 000000000..52972269a --- /dev/null +++ b/frontends/kolibrios/kolibri_os.c @@ -0,0 +1,11 @@ +unsigned int sys_uptime(void) +{ + unsigned int uptime; + + __asm__ __volatile__( + "int $0x40 \n\t" + :"=a"(uptime) + :"a"(26),"b"(9)); + + return uptime / 100; +} diff --git a/frontends/kolibrios/kos32sys.h b/frontends/kolibrios/kos32sys.h deleted file mode 100644 index 18ac3fa22..000000000 --- a/frontends/kolibrios/kos32sys.h +++ /dev/null @@ -1,570 +0,0 @@ -#ifndef __KOS_32_SYS_H__ -#define __KOS_32_SYS_H__ - -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -//#ifdef CONFIG_DEBUF -// #define DBG(format,...) printf(format,##__VA_ARGS__) -//#else -// #define DBG(format,...) -//#endif - -#define TYPE_3_BORDER_WIDTH 5 -#define WIN_STATE_MINIMIZED 0x02 -#define WIN_STATE_ROLLED 0x04 - -typedef unsigned int color_t; - -typedef union __attribute__((packed)) -{ - uint32_t val; - struct - { - short x; - short y; - }; -}pos_t; - -typedef union __attribute__((packed)) -{ - uint32_t val; - struct - { - uint8_t state; - uint8_t code; - uint16_t ctrl_key; - }; -}oskey_t; - -typedef struct -{ - unsigned handle; - unsigned io_code; - void *input; - int inp_size; - void *output; - int out_size; -}ioctl_t; - - -static inline -void define_button(uint32_t x_w, uint32_t y_h, uint32_t id, uint32_t color) -{ - __asm__ __volatile__( - "int $0x40" - ::"a"(8), - "b"(x_w), - "c"(y_h), - "d"(id), - "S"(color)); -}; -static inline void DefineButton(void) __attribute__ ((alias ("define_button"))); - -static inline -uint32_t get_skin_height(void) -{ - uint32_t height; - - __asm__ __volatile__( - "int $0x40 \n\t" - :"=a"(height) - :"a"(48),"b"(4)); - return height; -}; -static inline uint32_t GetSkinHeight(void) __attribute__ ((alias ("get_skin_height"))); - -static inline -void BeginDraw(void) -{ - __asm__ __volatile__( - "int $0x40" ::"a"(12),"b"(1)); -}; - -static inline -void EndDraw(void) -{ - __asm__ __volatile__( - "int $0x40" ::"a"(12),"b"(2)); -}; - -static inline void DrawWindow(int x, int y, int w, int h, const char *name, - color_t workcolor, uint32_t style) -{ - - __asm__ __volatile__( - "int $0x40" - ::"a"(0), - "b"((x << 16) | ((w-1) & 0xFFFF)), - "c"((y << 16) | ((h-1) & 0xFFFF)), - "d"((style << 24) | (workcolor & 0xFFFFFF)), - "D"(name), - "S"(0) : "memory"); -}; - -#define POS_SCREEN 0 -#define POS_WINDOW 1 - -static inline -pos_t get_mouse_pos(int origin) -{ - pos_t val; - - __asm__ __volatile__( - "int $0x40 \n\t" - "rol $16, %%eax" - :"=a"(val) - :"a"(37),"b"(origin)); - return val; -} -static inline pos_t GetMousePos(int origin) __attribute__ ((alias ("get_mouse_pos"))); - -static inline -uint32_t get_mouse_buttons(void) -{ - uint32_t val; - - __asm__ __volatile__( - "int $0x40" - :"=a"(val) - :"a"(37),"b"(2)); - return val; -}; -static inline uint32_t GetMouseButtons(void) __attribute__ ((alias ("get_mouse_buttons"))); - -static inline -uint32_t get_mouse_wheels(void) -{ - uint32_t val; - - __asm__ __volatile__( - "int $0x40 \n\t" - :"=a"(val) - :"a"(37),"b"(7)); - return val; -}; -static inline uint32_t GetMouseWheels(void) __attribute__ ((alias ("get_mouse_wheels"))); - -static inline -uint32_t wait_for_event(uint32_t time) -{ - uint32_t val; - __asm__ __volatile__( - "int $0x40" - :"=a"(val) - :"a"(23), "b"(time)); - return val; -}; - -static inline uint32_t check_os_event() -{ - uint32_t val; - __asm__ __volatile__( - "int $0x40" - :"=a"(val) - :"a"(11)); - return val; -}; - -static inline uint32_t get_os_event() -{ - uint32_t val; - __asm__ __volatile__( - "int $0x40" - :"=a"(val) - :"a"(10)); - return val; -}; -static inline uint32_t GetOsEvent(void) __attribute__ ((alias ("get_os_event"))); - -static inline -uint32_t get_tick_count(void) -{ - uint32_t val; - __asm__ __volatile__( - "int $0x40" - :"=a"(val) - :"a"(26),"b"(9)); - return val; -}; - -static inline -uint64_t get_ns_count(void) -{ - uint64_t val; - __asm__ __volatile__( - "int $0x40" - :"=A"(val) - :"a"(26), "b"(10)); - return val; -}; - -static inline -oskey_t get_key(void) -{ - oskey_t val; - __asm__ __volatile__( - "int $0x40" - :"=a"(val) - :"a"(2)); - return val; -} - -static inline -uint32_t get_os_button() -{ - uint32_t val; - __asm__ __volatile__( - "int $0x40" - :"=a"(val) - :"a"(17)); - return val>>8; -}; - -static inline uint32_t get_service(char *name) -{ - uint32_t retval = 0; - __asm__ __volatile__( - "int $0x40" - :"=a"(retval) - :"a"(68),"b"(16),"c"(name) - :"memory"); - - return retval; -}; - -static inline int call_service(ioctl_t *io) -{ - int retval; - - __asm__ __volatile__( - "int $0x40" - :"=a"(retval) - :"a"(68),"b"(17),"c"(io) - :"memory","cc"); - - return retval; -}; - - -static inline -void draw_line(int xs, int ys, int xe, int ye, color_t color) -{ - __asm__ __volatile__( - "int $0x40" - ::"a"(38), "d"(color), - "b"((xs << 16) | xe), - "c"((ys << 16) | ye)); -} - - - -static inline -void draw_bar(int x, int y, int w, int h, color_t color) -{ - __asm__ __volatile__( - "int $0x40" - ::"a"(13), "d"(color), - "b"((x << 16) | w), - "c"((y << 16) | h)); -} - -static inline -void draw_bitmap(void *bitmap, int x, int y, int w, int h) -{ - __asm__ __volatile__( - "int $0x40" - ::"a"(7), "b"(bitmap), - "c"((w << 16) | h), - "d"((x << 16) | y)); -} - -static inline -void draw_text_sys(const char *text, int x, int y, int len, color_t color) -{ - __asm__ __volatile__( - "int $0x40" - ::"a"(4),"d"(text), - "b"((x << 16) | y), - "S"(len),"c"(color) - :"memory"); -} - -static inline void yield(void) -{ - __asm__ __volatile__( - "int $0x40" - ::"a"(68), "b"(1)); -}; - -static inline void delay(uint32_t time) -{ - __asm__ __volatile__( - "int $0x40" - ::"a"(5), "b"(time) - :"memory"); -}; - -static inline -void *user_alloc(size_t size) -{ - void *val; - __asm__ __volatile__( - "int $0x40" - :"=a"(val) - :"a"(68),"b"(12),"c"(size)); - return val; -} -static inline void *UserAlloc(size_t size) __attribute__ ((alias ("user_alloc"))); - -static inline -int user_free(void *mem) -{ - int val; - __asm__ __volatile__( - "int $0x40" - :"=a"(val) - :"a"(68),"b"(13),"c"(mem)); - return val; -} -static inline int UserFree(void *mem) __attribute__ ((alias ("user_free"))); - -static inline -int *user_unmap(void *base, size_t offset, size_t size) -{ - int *val; - __asm__ __volatile__( - "int $0x40" - :"=a"(val) - :"a"(68),"b"(26),"c"(base),"d"(offset),"S"(size)); - return val; -}; -static inline int *UserUnmap(void *base, size_t offset, size_t size) __attribute__ ((alias ("user_unmap"))); - -typedef union -{ - struct - { - void *data; - size_t size; - }; - unsigned long long raw; -}ufile_t; - - -static inline ufile_t load_file(const char *path) -{ - ufile_t uf; - - __asm__ __volatile__ ( - "int $0x40" - :"=A"(uf.raw) - :"a" (68), "b"(27),"c"(path)); - - return uf; -}; -static inline ufile_t LoadFile(const char *path) __attribute__ ((alias ("load_file"))); - -static inline int GetScreenSize() -{ - int retval; - - __asm__ __volatile__( - "int $0x40" - :"=a"(retval) - :"a"(61), "b"(1)); - return retval; -} - -static inline -uint32_t load_cursor(void *path, uint32_t flags) -{ - uint32_t val; - __asm__ __volatile__( - "int $0x40" - :"=a"(val) - :"a"(37), "b"(4), "c"(path), "d"(flags)); - return val; -} -static inline -uint32_t LoadCursor(void *path, uint32_t flags) __attribute__ ((alias ("load_cursor"))); - -static inline -uint32_t set_cursor(uint32_t cursor) -{ - uint32_t old; - __asm__ __volatile__( - "int $0x40" - :"=a"(old) - :"a"(37), "b"(5), "c"(cursor)); - return old; -}; -static inline uint32_t SetCursor(uint32_t cursor) __attribute__ ((alias ("set_cursor"))); - -static inline -int destroy_cursor(uint32_t cursor) -{ - int ret; - __asm__ __volatile__( - "int $0x40" - :"=a"(ret) - :"a"(37), "b"(6), "c"(cursor) - :"memory"); - return ret; -}; -static inline int DestroyCursor(uint32_t cursor) __attribute__ ((alias ("destroy_cursor"))); - -static inline void get_proc_info(char *info) -{ - __asm__ __volatile__( - "int $0x40" - : - :"a"(9), "b"(info), "c"(-1)); -}; -static inline void GetProcInfo(char *info) __attribute__ ((alias ("get_proc_info"))); - -static inline -void* user_realloc(void *mem, size_t size) -{ - void *val; - __asm__ __volatile__( - "int $0x40" - :"=a"(val) - :"a"(68),"b"(20),"c"(size),"d"(mem) - :"memory"); - - return val; -}; -static inline void* UserRealloc(void *mem, size_t size) __attribute__ ((alias ("user_realloc"))); - -/*--------------------------------------------------------------------------*/ -/* Added by ashmew2 when experimenting with newlib and how the binary will be created finally using i586-kos32-* builders */ - -/* struct dll_proc_entry */ -/* { */ -/* char *proc_name; */ -/* void *proc_address; */ -/* }; */ - -/* typedef struct dll_proc_entry* dll_proc_table; */ - -/* static inline dll_proc_table dll_load(char *path) */ -/* { */ -/* void *dll_table; */ -/* __asm__ __volatile__( */ -/* "int $0x40" */ -/* :"=a"(dll_table) */ -/* :"a"(68), "b"(19), "c"(path)); */ - -/* return (dll_proc_table) dll_table; */ -/* }; */ -/* static inline dll_proc_table LoadDLL(char *path) __attribute__ ((alias ("dll_load"))); */ - -/* void *dll_find_proc(dll_proc_table table, char *proc_name) */ -/* { */ -/* int i; */ - -/* if(table == NULL) */ -/* return NULL; */ - -/* for(i = 0; table[i].proc_name && strcmp(proc_name, table[i].proc_name); i++); */ - -/* if(table[i].proc_name) */ -/* return table[i].proc_address; */ -/* else */ -/* return NULL; */ -/* } */ - -/* static inline void * DLLFindProc(dll_proc_table table, char *proc_name) __attribute__ ((alias ("dll_find_proc"))); */ - -/* static inline void board_write_byte(const char ch){ */ -/* __asm__ __volatile__( */ -/* "int $0x40" */ -/* : */ -/* :"a"(63), "b"(1), "c"(ch)); */ -/* } */ - -/* void board_write_str(const char* str){ */ -/* while(*str) */ -/* board_write_byte(*str++); */ -/* } */ - -/*--------------------------------------------------------------------------*/ - -void *get_resource(void *data, uint32_t id); - -struct blit_call -{ - int dstx; - int dsty; - int w; - int h; - - int srcx; - int srcy; - int srcw; - int srch; - - void *bitmap; - int stride; -}; - -static inline void Blit(void *bitmap, int dst_x, int dst_y, - int src_x, int src_y, int w, int h, - int src_w, int src_h, int stride) -{ - volatile struct blit_call bc; - - bc.dstx = dst_x; - bc.dsty = dst_y; - bc.w = w; - bc.h = h; - bc.srcx = src_x; - bc.srcy = src_y; - bc.srcw = src_w; - bc.srch = src_h; - bc.stride = stride; - bc.bitmap = bitmap; - - __asm__ __volatile__( - "int $0x40" - ::"a"(73),"b"(0),"c"(&bc.dstx)); -}; - -static inline uint32_t sys_uptime(void) -{ - uint32_t uptime; - - __asm__ __volatile__( - "int $0x40 \n\t" - :"=a"(uptime) - :"a"(26),"b"(9)); - - return uptime / 100; -} - - -void* load_library(const char *name); - -void* get_proc_address(void *handle, const char *proc_name); - -void enumerate_libraries(int (*callback)(void *handle, const char* name, - uint32_t base, uint32_t size, void *user_data), - void *user_data); - -#ifdef __cplusplus -} -#endif - - -#endif - - - - - -- cgit v1.2.3