From aff0b28356bf5094bb18dced2ea44ed6738da71c Mon Sep 17 00:00:00 2001 From: Egor00f Date: Thu, 15 Aug 2024 13:28:51 +0200 Subject: [PATCH 1/2] Fix sys/ksys.h -Wextra warnings just fix warnings: just added parentheses and fix Wunused-param offset --- contrib/sdk/sources/newlib/libc/include/sys/ksys.h | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/contrib/sdk/sources/newlib/libc/include/sys/ksys.h b/contrib/sdk/sources/newlib/libc/include/sys/ksys.h index 12565de0e7..a9c7281e44 100644 --- a/contrib/sdk/sources/newlib/libc/include/sys/ksys.h +++ b/contrib/sdk/sources/newlib/libc/include/sys/ksys.h @@ -516,7 +516,7 @@ KOSAPI void _ksys_define_button(uint32_t x, uint32_t y, uint32_t w, uint32_t h, KOSAPI void _ksys_delete_button(uint32_t id) { - asm_inline("int $0x40" ::"a"(8), "d"(id & 0x00FFFFFF | 0x80000000)); + asm_inline("int $0x40" ::"a"(8), "d"((id & 0x00FFFFFF) | 0x80000000)); } /*============ Function 9 - information on execution thread. ===========*/ @@ -1223,12 +1223,13 @@ KOSAPI void _ksys_debug_puts(const char* s) KOSAPI void ksys_draw_bitmap_palette(void* bitmap, int x, int y, int w, int h, int bpp, void* palette, int offset) { asm_inline( - "pushl %%ebp\n\t" // save EBP register - "movl 0x24(%%ebp), %%ebp\n\t" // 0x24 - "offset" param + "pushl %%ebp\n\t" // save EBP register + "movl %0, %%ebp\n\t" // 0x24 - "offset" param "int $0x40\n\t" "popl %%ebp" // restore EBP register - : - : "a"(65), + :: + "X"(offset), + "a"(65), "b"(bitmap), "c"((w << 16) + h), "d"((x << 16) + y), -- 2.45.2 From 98256c25bc2f290c443f368076e7912bb6615c2d Mon Sep 17 00:00:00 2001 From: Egor00f Date: Sun, 17 Nov 2024 08:53:46 +0000 Subject: [PATCH 2/2] update comments for ksys_draw_bitmap_palette && add .vscode dir to .gitignore && fix -Wsign-conversion and some -Wcasst-qual Yes, I use vscode. --- .gitignore | 3 + .../sources/newlib/libc/include/sys/ksys.h | 69 +++++++++++-------- 2 files changed, 42 insertions(+), 30 deletions(-) diff --git a/.gitignore b/.gitignore index 668346f52f..111e2100d4 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,6 @@ ehthumbs_vista.db ### macOS ### .DS_Store ._* + +# vscode folder +.vscode/ diff --git a/contrib/sdk/sources/newlib/libc/include/sys/ksys.h b/contrib/sdk/sources/newlib/libc/include/sys/ksys.h index a9c7281e44..a651096d16 100644 --- a/contrib/sdk/sources/newlib/libc/include/sys/ksys.h +++ b/contrib/sdk/sources/newlib/libc/include/sys/ksys.h @@ -24,6 +24,10 @@ #include #ifdef __cplusplus + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wold-style-cast" + extern "C" { #endif @@ -1075,17 +1079,21 @@ KOSAPI void _ksys_draw_line(int xs, int ys, int xe, int ye, ksys_color_t color) KOSAPI void _ksys_draw_number(int number, int x, int y, int len, ksys_color_t color) { unsigned fmt; - fmt = len << 16 | 0x80000000; // no leading zeros + width + fmt = (((unsigned int) len) << 16) | 0x80000000; // no leading zeros + width asm_inline( "int $0x40" : - : "a"(47), "b"(fmt), "c"(number), "d"((x << 16) | y), "S"(color)); + : "a"(47), + "b"(fmt), + "c"(number), + "d"((x << 16) | y), + "S"(color)); } KOSAPI void _ksys_draw_number_bg(unsigned number, int x, int y, int len, ksys_color_t color, ksys_color_t bg) { unsigned fmt; - fmt = len << 16 | 0x80000000; // no leading zeros + width + fmt = (((unsigned int) len) << 16) | 0x80000000; // no leading zeros + width asm_inline( "int $0x40" : @@ -1141,7 +1149,7 @@ enum KSYS_CLIP_TYPES { KOSAPI int _ksys_clip_num(void) { - unsigned val; + int val; asm_inline( "int $0x40" : "=a"(val) @@ -1167,7 +1175,7 @@ KOSAPI char* _ksys_clip_get(int n) // returned buffer must be freed by _ksys_fre KOSAPI int _ksys_clip_set(int n, char* buffer) { - unsigned val; + int val; asm_inline( "int $0x40" : "=a"(val) @@ -1181,7 +1189,7 @@ KOSAPI int _ksys_clip_set(int n, char* buffer) KOSAPI int _ksys_clip_pop() { - unsigned val; + int val; asm_inline( "int $0x40" : "=a"(val) @@ -1194,7 +1202,7 @@ KOSAPI int _ksys_clip_pop() KOSAPI int _ksys_clip_unlock() { - unsigned val; + int val; asm_inline( "int $0x40" : "=a"(val) @@ -1223,10 +1231,10 @@ KOSAPI void _ksys_debug_puts(const char* s) KOSAPI void ksys_draw_bitmap_palette(void* bitmap, int x, int y, int w, int h, int bpp, void* palette, int offset) { asm_inline( - "pushl %%ebp\n\t" // save EBP register - "movl %0, %%ebp\n\t" // 0x24 - "offset" param - "int $0x40\n\t" - "popl %%ebp" // restore EBP register + "pushl %%ebp\n\t" // save EBP register + "movl %0, %%ebp\n\t" // mov offset to EBP register + "int $0x40\n\t" // system call + "popl %%ebp" // restore EBP register :: "X"(offset), "a"(65), @@ -1554,7 +1562,7 @@ KOSAPI ksys_file_status_t _ksys_file_read(const char* name, uint64_t offset, uin f.data_size = size; f.data = buf; f.zero = 0; - f.path_ptr = (char*)name; + f.path_ptr = (char*) name; return _ksys_file(&f); } @@ -1568,7 +1576,7 @@ KOSAPI ksys_file_status_t _ksys_file_read_dir(const char* name, uint32_t offset, f.data_size = blocks; f.data = buff; f.zero = 0; - f.path_ptr = (char*)name; + f.path_ptr = (char*) name; return _ksys_file(&f); } @@ -1583,7 +1591,7 @@ KOSAPI ksys_file_status_t _ksys_file_create(const char* name) f.data_size = 0; f.data = NULL; f.zero = 0; - f.path_ptr = (char*)name; + f.path_ptr = (char*) name; return _ksys_file(&f); } @@ -1596,9 +1604,9 @@ KOSAPI ksys_file_status_t _ksys_file_write(const char* name, uint64_t offset, ui f.func_num = KSYS_FILE_WRITE; f.offset64 = offset; f.data_size = size; - f.data = (void*)buf; + f.data = (void*) buf; f.zero = 0; - f.path_ptr = (char*)name; + f.path_ptr = (char*) name; return _ksys_file(&f); } @@ -1612,8 +1620,8 @@ KOSAPI int _ksys_file_set_size(const char* name, uint64_t size) f.data_size = 0; f.data = NULL; f.zero = 0; - f.path_ptr = (char*)name; - return _ksys_file(&f).status; + f.path_ptr = (char*) name; + return (int) _ksys_file(&f).status; } /*========== Function 70, subfunction 5 - get information on file/folder. =====*/ @@ -1633,10 +1641,10 @@ KOSAPI int _ksys_file_info(const char* name, ksys_file_info_t* info) f.func_num = KSYS_FILE_GET_INFO; f.offset64 = 0; f.data_size = 0; - f.data = (void*)info; + f.data = (void*) info; f.zero = 0; - f.path_ptr = (char*)name; - return _ksys_file(&f).status; + f.path_ptr = (char*) name; + return (int) _ksys_file(&f).status; } #define _ksys_dir_info _ksys_file_info @@ -1659,8 +1667,8 @@ KOSAPI int _ksys_exec(const char* path, char* args, bool debug) f.debug = debug; f.args = args; f.zero = 0; - f.path_ptr = (char*)path; - return _ksys_file(&f).status; + f.path_ptr = (char*) path; + return (int) _ksys_file(&f).status; } /*========== Function 70, subfunction 8 - delete file/folder. ==========*/ @@ -1673,8 +1681,8 @@ KOSAPI int _ksys_file_delete(const char* path) f.data_size = 0; f.data = NULL; f.zero = 0; - f.path_ptr = (char*)path; - return _ksys_file(&f).status; + f.path_ptr = (char*) path; + return (int) _ksys_file(&f).status; } #define _ksys_rmdir(x) _ksys_file_delete(x) @@ -1689,8 +1697,8 @@ KOSAPI int _ksys_mkdir(const char* path) f.data_size = 0; f.data = NULL; f.zero = 0; - f.path_ptr = (char*)path; - return _ksys_file(&f).status; + f.path_ptr = (char*) path; + return (int) _ksys_file(&f).status; } /*============= Function 70, subfunction 10 - rename/move. =============*/ @@ -1699,11 +1707,11 @@ KOSAPI int _ksys_file_rename(const char* name, const char* new_name) { ksys_file_t f; f.func_num = KSYS_FILE_REMOVE; - f.data = (void*)new_name; + f.data = (void*) new_name; f.data_size = 0; f.zero = 0; - f.path_ptr = (char*)name; - return _ksys_file(&f).status; + f.path_ptr = (char*) name; + return (int) _ksys_file(&f).status; } #define _ksys_dir_rename _ksys_file_rename @@ -1811,6 +1819,7 @@ KOSAPI int _ksys_posix_pipe2(int pipefd[2], int flags) #ifdef __cplusplus } +#pragma GCC diagnostic pop #endif #endif // _KSYS_H_ -- 2.45.2