From ccc4de1b67e34951ce0ee60ffcf5b7dfa675d83a Mon Sep 17 00:00:00 2001 From: superturbocat2001 Date: Mon, 14 Dec 2020 12:19:25 +0000 Subject: [PATCH] - Removed non existing functions from math.h. - Added "sys_change_window" function to kos32sys1.h. - Installed "pragma pack" for the structure in kolibrisys.h. git-svn-id: svn://kolibrios.org@8403 a494cfbc-eb01-0410-851d-a64ba20cac60 --- .../ktcc/trunk/libc/include/kolibrisys.h | 7 +- .../ktcc/trunk/libc/include/kos32sys1.h | 52 +++--- .../develop/ktcc/trunk/libc/include/math.h | 151 ------------------ 3 files changed, 36 insertions(+), 174 deletions(-) diff --git a/programs/develop/ktcc/trunk/libc/include/kolibrisys.h b/programs/develop/ktcc/trunk/libc/include/kolibrisys.h index 934cdda48e..cebe22b502 100644 --- a/programs/develop/ktcc/trunk/libc/include/kolibrisys.h +++ b/programs/develop/ktcc/trunk/libc/include/kolibrisys.h @@ -22,8 +22,8 @@ typedef unsigned short word; typedef unsigned int fpos_t; typedef unsigned int size_t; - -typedef struct process_table_entry{ +#pragma pack(push,1) +struct process_table_entry{ int cpu_usage; //+0 int window_pos_info; //+4 short int reserved1; //+8 @@ -43,7 +43,8 @@ typedef struct process_table_entry{ int clientheight; //+66 unsigned char window_state;//+70 char reserved3[1024-71]; //+71 -}__attribute__((packed)); +}; +#pragma pack(pop) //----------------------------------------------------------------------------------- //------------------------KolibriOS system acces to files---------------------------- diff --git a/programs/develop/ktcc/trunk/libc/include/kos32sys1.h b/programs/develop/ktcc/trunk/libc/include/kos32sys1.h index 918508e2f8..f8511d000d 100644 --- a/programs/develop/ktcc/trunk/libc/include/kos32sys1.h +++ b/programs/develop/ktcc/trunk/libc/include/kos32sys1.h @@ -156,6 +156,16 @@ void sys_create_window(int x, int y, int w, int h, const char *name, "S"(0) : "memory"); }; +static inline +void sys_change_window(int new_x, int new_y, int new_w, int new_h) +{ + __asm__ __volatile__( + "int $0x40" + ::"a"(67), "b"(new_x), "c"(new_y), "d"(new_w),"S"(new_h) + ); +} + + static inline void define_button(uint32_t x_w, uint32_t y_h, uint32_t id, uint32_t color) { @@ -208,6 +218,17 @@ void draw_text_sys(const char *text, int x, int y, int len, color_t color) "S"(len),"c"(color) :"memory"); } +static inline +void draw_text_sys_bg(const char *text, int x, int y, int len, color_t color, color_t bg) +{ + __asm__ __volatile__( + "int $0x40" + ::"a"(4),"d"(text), + "b"((x << 16) | y), + "S"(len),"c"(color), "D"(bg) + :"memory"); +} + static inline uint32_t get_skin_height(void) @@ -343,8 +364,7 @@ uint64_t get_ns_count(void) return val; }; -static inline -oskey_t get_key(void) +static inline oskey_t get_key(void) { oskey_t val; __asm__ __volatile__( @@ -608,6 +628,16 @@ static inline void draw_number_sys(int32_t number, int x, int y, int len, color_ :"a"(47), "b"(fmt), "c"(number), "d"((x << 16) | y), "S"(color)); } +static inline void draw_number_sys_bg(int32_t number, int x, int y, int len, color_t color, color_t bg){ + register uint32_t fmt; + fmt = len << 16 | 0x80000000; // no leading zeros + width +// fmt = len << 16 | 0x00000000; // leading zeros + width + __asm__ __volatile__( + "int $0x40" + : + :"a"(47), "b"(fmt), "c"(number), "d"((x << 16) | y), "S"(color), "D"(bg)); +} + static inline uint32_t get_mouse_eventstate(void) { @@ -712,24 +742,6 @@ int start_app(char *app_name, char *args){ return val; } - -/* -static inline char *getcwd(char *buf, size_t size) -{ - int rc = get_current_folder(buf, size); - if (rc > size) - { - errno = ERANGE; - return 0; - } - else - return buf; -} -*/ -// end section - - - //added nonstatic inline because incomfortabre stepping in in debugger void __attribute__ ((noinline)) debug_board_write_str(const char* str); void __attribute__ ((noinline)) debug_board_printf(const char *format,...); diff --git a/programs/develop/ktcc/trunk/libc/include/math.h b/programs/develop/ktcc/trunk/libc/include/math.h index 858a8517c8..1eb69f3005 100644 --- a/programs/develop/ktcc/trunk/libc/include/math.h +++ b/programs/develop/ktcc/trunk/libc/include/math.h @@ -1,11 +1,6 @@ -/* Copyright (C) 1999 DJ Delorie, see COPYING.DJ for details */ -/* Copyright (C) 1998 DJ Delorie, see COPYING.DJ for details */ -/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ #ifndef _MATH_H #define _MATH_H -//extern int stdcall integer(float number); - extern double acos(double _x); extern double asin(double _x); extern double atan(double _x); @@ -29,10 +24,6 @@ extern double sqrt(double _x); extern double tan(double _x); extern double tanh(double _x); -//#ifndef __STRICT_ANSI__ - -//#ifndef _POSIX_SOURCE - #define M_E 2.7182818284590452354 #define M_LOG2E 1.4426950408889634074 #define M_LOG10E 0.43429448190325182765 @@ -49,146 +40,4 @@ extern double tanh(double _x); #define PI M_PI #define PI2 M_PI_2 -extern double acosh(double); -extern double asinh(double); -extern double atanh(double); -extern double cbrt(double); -extern double exp10(double _x); -extern double exp2(double _x); -extern double expm1(double); -extern double hypot(double, double); -extern double log1p(double); -extern double log2(double _x); -extern long double modfl(long double _x, long double *_pint); -extern double pow10(double _x); -extern double pow2(double _x); -extern double powi(double, int); -extern void sincos(double *, double *, double); - -/* These are in libm.a (Cygnus). You must link -lm to get these */ -/* See libm/math.h for comments */ -/* -#ifndef __cplusplus -struct exception { - int type; - const char *name; - double arg1; - double arg2; - double retval; - int err; -}; #endif -*/ - -extern double erf(double); -extern double erfc(double); -extern double gamma(double); -extern int isinf(double); -extern int isnan(double); -extern int finite(double); -extern double j0(double); -extern double j1(double); -extern double jn(int, double); -extern double lgamma(double); -extern double nan(void); -extern double y0(double); -extern double y1(double); -extern double yn(int, double); -extern double logb(double); -extern double nextafter(double, double); -extern double remainder(double, double); -extern double scalb(double, double); -//#ifndef __cplusplus -//extern int matherr(struct exception *); -//#endif -extern double significand(double); -extern double copysign(double, double); -extern int ilogb(double); -extern double rint(double); -extern double scalbn(double, int); -extern double drem(double, double); -extern double gamma_r(double, int *); -extern double lgamma_r(double, int *); -extern float acosf(float); -extern float asinf(float); -extern float atanf(float); -extern float atan2f(float, float); -extern float cosf(float); -extern float sinf(float); -extern float tanf(float); -extern float coshf(float); -extern float sinhf(float); -extern float tanhf(float); -extern float expf(float); -extern float frexpf(float, int *); -extern float ldexpf(float, int); -extern float logf(float); -extern float log10f(float); -extern float modff(float, float *); -extern float powf(float, float); -extern float sqrtf(float); -extern float ceilf(float); -extern float fabsf(float); -extern float floorf(float); -extern float fmodf(float, float); -extern float erff(float); -extern float erfcf(float); -extern float gammaf(float); -extern float hypotf(float, float); -extern int isinff(float); -extern int isnanf(float); -extern int finitef(float); -extern float j0f(float); -extern float j1f(float); -extern float jnf(int, float); -extern float lgammaf(float); -extern float nanf(void); -extern float y0f(float); -extern float y1f(float); -extern float ynf(int, float); -extern float acoshf(float); -extern float asinhf(float); -extern float atanhf(float); -extern float cbrtf(float); -extern float logbf(float); -extern float nextafterf(float, float); -extern float remainderf(float, float); -extern float scalbf(float, float); -extern float significandf(float); -extern float copysignf(float, float); -extern int ilogbf(float); -extern float rintf(float); -extern float scalbnf(float, int); -extern float dremf(float, float); -extern float expm1f(float); -extern float log1pf(float); -extern float gammaf_r(float, int *); -extern float lgammaf_r(float, int *); - -double round (double x); -long double roundl (long double x); - -#ifndef NAN -# define NAN (__nan__) -#endif - -#ifndef INFINITY -# define INFINITY (__inf__) -#endif - - -//#endif /* !_POSIX_SOURCE */ -//#endif /* !__STRICT_ANSI__ */ -//#endif /* !__dj_ENFORCE_ANSI_FREESTANDING */ - -//#ifndef __dj_ENFORCE_FUNCTION_CALLS -//#endif /* !__dj_ENFORCE_FUNCTION_CALLS */ - -//#ifdef __cplusplus -//} -//#endif - -//#endif /* _USE_LIBM_MATH_H */ - -//#endif /* !__dj_include_math_h_ */ -#endif \ No newline at end of file