diff --git a/src/debug/debug.c b/src/debug/debug.c index 28d46f5..bdb246b 100644 --- a/src/debug/debug.c +++ b/src/debug/debug.c @@ -37,9 +37,8 @@ int syscalls_SetMessageArea(lua_State* L) int syscalls_GetRegisters(lua_State* L) { - struct registers* r = syscalls_pushRegisters(L); - uint32_t pid = luaL_checkinteger(L, 1); + struct registers* r = syscalls_pushRegisters(L); asm_inline( "int $0x40" @@ -59,7 +58,7 @@ int syscalls_SetRegisters(lua_State* L) :: "a"(69), "b"(2), "c"(pid), "d"(sizeof(struct registers)), "S"(r) ); - return 1; + return 0; } int syscalls_Disconnect(lua_State* L) @@ -71,7 +70,7 @@ int syscalls_Disconnect(lua_State* L) :: "a"(69), "b"(3), "c"(pid) ); - return 1; + return 0; } int syscalls_Stop(lua_State* L) @@ -83,7 +82,7 @@ int syscalls_Stop(lua_State* L) :: "a"(69), "b"(4), "c"(pid) ); - return 1; + return 0; } int syscalls_Continue(lua_State* L) @@ -95,7 +94,7 @@ int syscalls_Continue(lua_State* L) :: "a"(69), "b"(5), "c"(pid) ); - return 1; + return 0; } int syscalls_ReadFromMem(lua_State* L) @@ -151,7 +150,7 @@ int syscalls_Done(lua_State* L) :: "a"(69), "b"(8), "c"(pid) ); - return 1; + return 0; } int syscalls_DefineBreakpoint(lua_State* L) diff --git a/src/debug/registers.c b/src/debug/registers.c index f153e05..bb52f4a 100644 --- a/src/debug/registers.c +++ b/src/debug/registers.c @@ -83,7 +83,7 @@ static int syscalls_newindexRegisters(lua_State* L) luaL_error(L, "wrong index: %s", index); } - return 1; + return 0; } static int syscalls_eqRegisters(lua_State* L) diff --git a/src/graphic.h b/src/graphic.h index 84574a2..df8dace 100644 --- a/src/graphic.h +++ b/src/graphic.h @@ -45,53 +45,37 @@ inline void syscalls_push_textSizes(lua_State* L) { lua_newtable(L); - lua_pushinteger(L, TextScale_SIZE_6x9); - lua_setfield(L, -2, "6x9"); + LUA_PUSH_INTEGER_FIELD(L, TextScale_SIZE_6x9, "6x9"); - lua_pushinteger(L, TextScale_SIZE_8x16); - lua_setfield(L, -2, "8x16"); + LUA_PUSH_INTEGER_FIELD(L, TextScale_SIZE_8x16, "8x16"); - lua_pushinteger(L, TextScale_SIZE_12x18); - lua_setfield(L, -2, "12x18"); + LUA_PUSH_INTEGER_FIELD(L, TextScale_SIZE_12x18, "12x18"); - lua_pushinteger(L, TextScale_SIZE_16x32); - lua_setfield(L, -2, "16x32"); + LUA_PUSH_INTEGER_FIELD(L, TextScale_SIZE_16x32, "16x32"); - lua_pushinteger(L, TextScale_SIZE_18x27); - lua_setfield(L, -2, "18x27"); + LUA_PUSH_INTEGER_FIELD(L, TextScale_SIZE_18x27, "18x27"); - lua_pushinteger(L, TextScale_SIZE_24x36); - lua_setfield(L, -2, "24x36"); + LUA_PUSH_INTEGER_FIELD(L, TextScale_SIZE_24x36, "24x36"); - lua_pushinteger(L, TextScale_SIZE_24x48); - lua_setfield(L, -2, "24x48"); + LUA_PUSH_INTEGER_FIELD(L, TextScale_SIZE_24x48, "24x48"); - lua_pushinteger(L, TextScale_SIZE_30x45); - lua_setfield(L, -2, "30x45"); + LUA_PUSH_INTEGER_FIELD(L, TextScale_SIZE_30x45, "30x45"); - lua_pushinteger(L, TextScale_SIZE_32x64); - lua_setfield(L, -2, "32x64"); + LUA_PUSH_INTEGER_FIELD(L, TextScale_SIZE_32x64, "32x64"); - lua_pushinteger(L, TextScale_SIZE_36x54); - lua_setfield(L, -2, "36x54"); + LUA_PUSH_INTEGER_FIELD(L, TextScale_SIZE_36x54, "36x54"); - lua_pushinteger(L, TextScale_SIZE_40x80); - lua_setfield(L, -2, "40x80"); + LUA_PUSH_INTEGER_FIELD(L, TextScale_SIZE_40x80, "40x80"); - lua_pushinteger(L, TextScale_SIZE_42x63); - lua_setfield(L, -2, "42x63"); + LUA_PUSH_INTEGER_FIELD(L, TextScale_SIZE_42x63, "42x63"); - lua_pushinteger(L, TextScale_SIZE_48x72); - lua_setfield(L, -2, "48x72"); + LUA_PUSH_INTEGER_FIELD(L, TextScale_SIZE_48x72, "48x72"); - lua_pushinteger(L, TextScale_SIZE_48x96); - lua_setfield(L, -2, "48x96"); + LUA_PUSH_INTEGER_FIELD(L, TextScale_SIZE_48x96, "48x96"); - lua_pushinteger(L, TextScale_SIZE_56x112); - lua_setfield(L, -2, "56x112"); + LUA_PUSH_INTEGER_FIELD(L, TextScale_SIZE_56x112, "56x112"); - lua_pushinteger(L, TextScale_SIZE_64x128); - lua_setfield(L, -2, "64x128"); + LUA_PUSH_INTEGER_FIELD(L, TextScale_SIZE_64x128, "64x128"); lua_setfield(L, -2, "textSize"); } @@ -100,21 +84,17 @@ inline void syscalls_push_Encoding(lua_State* L) { lua_newtable(L); - lua_pushinteger(L, cp866); - lua_setfield(L, -2, "cp866"); + LUA_PUSH_INTEGER_FIELD(L, cp866, "cp866"); - lua_pushinteger(L, cp866_8x16); - lua_setfield(L, -2, "cp866_8x16"); + LUA_PUSH_INTEGER_FIELD(L, cp866_8x16, "cp866_8x16"); - lua_pushinteger(L, utf8); - lua_setfield(L, -2, "utf8"); + LUA_PUSH_INTEGER_FIELD(L, utf8, "utf8"); - lua_pushinteger(L, utf16); - lua_setfield(L, -2, "utf16"); + LUA_PUSH_INTEGER_FIELD(L, utf16, "utf16"); lua_setfield(L, -2, "Encoding"); } #define syscalls_push_graphic(L) syscalls_push_textSizes(L); syscalls_push_Encoding(L); -#endif // __GRAPHIC_H__ +#endif // __GRAPHIC_H_ \ No newline at end of file diff --git a/src/scancodes.h b/src/scancodes.h index a582ab4..9d6f83e 100644 --- a/src/scancodes.h +++ b/src/scancodes.h @@ -8,270 +8,183 @@ static inline void syscalls_register_scancodes(lua_State* L) { - lua_newtable(L); + lua_newtable(L); - lua_pushinteger(L, KSYS_SCANCODE_0); - lua_setfield(L, -2, "0"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_0, "0"); - lua_pushinteger(L, KSYS_SCANCODE_1); - lua_setfield(L, -2, "1"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_1, "1"); - lua_pushinteger(L, KSYS_SCANCODE_2); - lua_setfield(L, -2, "2"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_2, "2"); - lua_pushinteger(L, KSYS_SCANCODE_3); - lua_setfield(L, -2, "3"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_3, "3"); - lua_pushinteger(L, KSYS_SCANCODE_4); - lua_setfield(L, -2, "4"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_4, "5"); - lua_pushinteger(L, KSYS_SCANCODE_5); - lua_setfield(L, -2, "6"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_5, "6"); - lua_pushinteger(L, KSYS_SCANCODE_7); - lua_setfield(L, -2, "7"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_7, "7"); - lua_pushinteger(L, KSYS_SCANCODE_8); - lua_setfield(L, -2, "8"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_8, "8"); - lua_pushinteger(L, KSYS_SCANCODE_9); - lua_setfield(L, -2, "9"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_9, "9"); - lua_pushinteger(L, KSYS_SCANCODE_A); - lua_setfield(L, -2, "A"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_A, "A"); - lua_pushinteger(L, KSYS_SCANCODE_B); - lua_setfield(L, -2, "B"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_B, "B"); - lua_pushinteger(L, KSYS_SCANCODE_C); - lua_setfield(L, -2, "C"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_C, "C"); - lua_pushinteger(L, KSYS_SCANCODE_D); - lua_setfield(L, -2, "D"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_D, "D"); - lua_pushinteger(L, KSYS_SCANCODE_E); - lua_setfield(L, -2, "E"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_E, "E"); - lua_pushinteger(L, KSYS_SCANCODE_F); - lua_setfield(L, -2, "F"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_F, "F"); - lua_pushinteger(L, KSYS_SCANCODE_G); - lua_setfield(L, -2, "G"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_G, "G"); - lua_pushinteger(L, KSYS_SCANCODE_H); - lua_setfield(L, -2, "H"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_H, "H"); - lua_pushinteger(L, KSYS_SCANCODE_J); - lua_setfield(L, -2, "J"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_J, "J"); - lua_pushinteger(L, KSYS_SCANCODE_K); - lua_setfield(L, -2, "K"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_K, "K"); - lua_pushinteger(L, KSYS_SCANCODE_L); - lua_setfield(L, -2, "L"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_L, "L"); - lua_pushinteger(L, KSYS_SCANCODE_M); - lua_setfield(L, -2, "M"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_M, "M"); - lua_pushinteger(L, KSYS_SCANCODE_N); - lua_setfield(L, -2, "N"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_N, "N"); - lua_pushinteger(L, KSYS_SCANCODE_O); - lua_setfield(L, -2, "O"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_O, "O"); - lua_pushinteger(L, KSYS_SCANCODE_P); - lua_setfield(L, -2, "P"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_P, "P"); - lua_pushinteger(L, KSYS_SCANCODE_Q); - lua_setfield(L, -2, "Q"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_Q, "Q"); - lua_pushinteger(L, KSYS_SCANCODE_R); - lua_setfield(L, -2, "R"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_R, "R"); - lua_pushinteger(L, KSYS_SCANCODE_S); - lua_setfield(L, -2, "S"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_S, "S"); - lua_pushinteger(L, KSYS_SCANCODE_T); - lua_setfield(L, -2, "T"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_T, "T"); - lua_pushinteger(L, KSYS_SCANCODE_U); - lua_setfield(L, -2, "U"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_U, "U"); - lua_pushinteger(L, KSYS_SCANCODE_V); - lua_setfield(L, -2, "V"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_V, "V"); - lua_pushinteger(L, KSYS_SCANCODE_W); - lua_setfield(L, -2, "W"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_W, "W"); - lua_pushinteger(L, KSYS_SCANCODE_X); - lua_setfield(L, -2, "X"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_X, "X"); - lua_pushinteger(L, KSYS_SCANCODE_Y); - lua_setfield(L, -2, "Y"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_Y, "Y"); - lua_pushinteger(L, KSYS_SCANCODE_Z); - lua_setfield(L, -2, "Z"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_Z, "Z"); - lua_pushinteger(L, KSYS_SCANCODE_F1); - lua_setfield(L, -2, "F1"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_F1, "F1"); - lua_pushinteger(L, KSYS_SCANCODE_F2); - lua_setfield(L, -2, "F2"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_F2, "F2"); - lua_pushinteger(L, KSYS_SCANCODE_F3); - lua_setfield(L, -2, "F3"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_F3, "F3"); - lua_pushinteger(L, KSYS_SCANCODE_F4); - lua_setfield(L, -2, "F4"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_F4, "F4"); - lua_pushinteger(L, KSYS_SCANCODE_F5); - lua_setfield(L, -2, "F5"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_F5, "F5"); - lua_pushinteger(L, KSYS_SCANCODE_F6); - lua_setfield(L, -2, "F6"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_F6, "F6"); - lua_pushinteger(L, KSYS_SCANCODE_F7); - lua_setfield(L, -2, "F7"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_F7, "F7"); - lua_pushinteger(L, KSYS_SCANCODE_F8); - lua_setfield(L, -2, "F8"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_F8, "F8"); - lua_pushinteger(L, KSYS_SCANCODE_F9); - lua_setfield(L, -2, "F9"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_F9, "F9"); - lua_pushinteger(L, KSYS_SCANCODE_F10); - lua_setfield(L, -2, "F10"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_F10, "F10"); - lua_pushinteger(L, KSYS_SCANCODE_F11); - lua_setfield(L, -2, "F11"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_F11, "F11"); - lua_pushinteger(L, KSYS_SCANCODE_F12); - lua_setfield(L, -2, "F12"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_F12, "F12"); - lua_pushinteger(L, KSYS_SCANCODE_LSHIFT); - lua_setfield(L, -2, "LeftShift"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_LSHIFT, "LeftShift"); - lua_pushinteger(L, KSYS_SCANCODE_RSHIFT); - lua_setfield(L, -2, "RightShift"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_RSHIFT, "RightShift"); - lua_pushinteger(L, KSYS_SCANCODE_BACKSLASH); - lua_setfield(L, -2, "Backslash"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_BACKSLASH, "Backslash"); - lua_pushinteger(L, KSYS_SCANCODE_COMMA); - lua_setfield(L, -2, "Comma"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_COMMA, "Comma"); - lua_pushinteger(L, KSYS_SCANCODE_SLASH); - lua_setfield(L, -2, "Slash"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_SLASH, "Slash"); - lua_pushinteger(L, KSYS_SCANCODE_LALT); - lua_setfield(L, -2, "LeftAlt"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_LALT, "LeftAlt"); - lua_pushinteger(L, KSYS_SCANCODE_EXT_RALT); - lua_setfield(L, -2, "RightAlt"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_EXT_RALT, "RightAlt"); - lua_pushinteger(L, KSYS_SCANCODE_LCTRL); - lua_setfield(L, -2, "LeftCtrl"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_LCTRL, "LeftCtrl"); - lua_pushinteger(L, KSYS_SCANCODE_EXT_RCTRL); - lua_setfield(L, -2, "RightCtrl"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_EXT_RCTRL, "RightCtrl"); - lua_pushinteger(L, KSYS_SCANCODE_CAPSLOCK); - lua_setfield(L, -2, "CapsLock"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_CAPSLOCK, "CapsLock"); - lua_pushinteger(L, KSYS_SCANCODE_NUMLOCK); - lua_setfield(L, -2, "NumLock"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_NUMLOCK, "NumLock"); - lua_pushinteger(L, KSYS_SCANCODE_POINT); - lua_setfield(L, -2, "Point"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_POINT, "Point"); - lua_pushinteger(L, KSYS_SCANCODE_ENTER); - lua_setfield(L, -2, "Enter"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_ENTER, "Enter"); - lua_pushinteger(L, KSYS_SCANCODE_ESC); - lua_setfield(L, -2, "Esc"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_ESC, "Esc"); - lua_pushinteger(L, KSYS_SCANCODE_TAB); - lua_setfield(L, -2, "Tab"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_TAB, "Tab"); - lua_pushinteger(L, KSYS_SCANCODE_EXT_HOME); - lua_setfield(L, -2, "Home"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_EXT_HOME, "Home"); - lua_pushinteger(L, KSYS_SCANCODE_EXT_PGUP); - lua_setfield(L, -2, "PageUp"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_EXT_PGUP, "PageUp"); - lua_pushinteger(L, KSYS_SCANCODE_EXT_PGDOWN); - lua_setfield(L, -2, "PageDown"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_EXT_PGDOWN, "PageDown"); - lua_pushinteger(L, KSYS_SCANCODE_EXT_END); - lua_setfield(L, -2, "End"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_EXT_END, "End"); - lua_pushinteger(L, KSYS_SCANCODE_EXT_UP); - lua_setfield(L, -2, "Up"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_EXT_UP, "Up"); - lua_pushinteger(L, KSYS_SCANCODE_EXT_DOWN); - lua_setfield(L, -2, "Down"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_EXT_DOWN, "Down"); - lua_pushinteger(L, KSYS_SCANCODE_EXT_LEFT); - lua_setfield(L, -2, "Left"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_EXT_LEFT, "Left"); - lua_pushinteger(L, KSYS_SCANCODE_EXT_RIGHT); - lua_setfield(L, -2, "Right"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_EXT_RIGHT, "Right"); - lua_pushinteger(L, KSYS_SCANCODE_EXT_DELETE); - lua_setfield(L, -2, "Delete"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_EXT_DELETE, "Delete"); - lua_pushinteger(L, KSYS_SCANCODE_EXT_INSERT); - lua_setfield(L, -2, "Insert"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_EXT_INSERT, "Insert"); - lua_pushinteger(L, KSYS_SCANCODE_MINUS); - lua_setfield(L, -2, "Minus"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_MINUS, "Minus"); - lua_pushinteger(L, KSYS_SCANCODE_EXT_NUMPAD_ENTER); - lua_setfield(L, -2, "NumpadEnter"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_EXT_NUMPAD_ENTER, "NumpadEnter"); - lua_pushinteger(L, KSYS_SCANCODE_EXT_NUMPAD_DIV); - lua_setfield(L, -2, "NumpadDiv"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_EXT_NUMPAD_DIV, "NumpadDiv"); - lua_pushinteger(L, KSYS_SCANCODE_NUMPAD_MULT); - lua_setfield(L, -2, "NumpadMult"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_NUMPAD_MULT, "NumpadMult"); - lua_pushinteger(L, KSYS_SCANCODE_NUMPAD_MINUS); - lua_setfield(L, -2, "NumpadMinus"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_NUMPAD_MINUS, "NumpadMinus"); - lua_pushinteger(L, KSYS_SCANCODE_NUMPAD_PLUS); - lua_setfield(L, -2, "NumpadPlus"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_NUMPAD_PLUS, "NumpadPlus"); - lua_pushinteger(L, KSYS_SCANCODE_NUMPAD_0); - lua_setfield(L, -2, "Numpad_0"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_NUMPAD_0, "Numpad_0"); - lua_pushinteger(L, KSYS_SCANCODE_NUMPAD_1); - lua_setfield(L, -2, "Numpad_1"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_NUMPAD_1, "Numpad_1"); - lua_pushinteger(L, KSYS_SCANCODE_NUMPAD_2); - lua_setfield(L, -2, "Numpad_2"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_NUMPAD_2, "Numpad_2"); - lua_pushinteger(L, KSYS_SCANCODE_NUMPAD_3); - lua_setfield(L, -2, "Numpad_3"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_NUMPAD_3, "Numpad_3"); - lua_pushinteger(L, KSYS_SCANCODE_NUMPAD_4); - lua_setfield(L, -2, "Numpad_4"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_NUMPAD_4, "Numpad_4"); - lua_pushinteger(L, KSYS_SCANCODE_NUMPAD_5); - lua_setfield(L, -2, "Numpad_5"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_NUMPAD_5, "Numpad_5"); - lua_pushinteger(L, KSYS_SCANCODE_NUMPAD_6); - lua_setfield(L, -2, "Numpad_6"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_NUMPAD_6, "Numpad_6"); - lua_pushinteger(L, KSYS_SCANCODE_NUMPAD_7); - lua_setfield(L, -2, "Numpad_7"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_NUMPAD_7, "Numpad_7"); - lua_pushinteger(L, KSYS_SCANCODE_NUMPAD_8); - lua_setfield(L, -2, "Numpad_8"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_NUMPAD_8, "Numpad_8"); - lua_pushinteger(L, KSYS_SCANCODE_NUMPAD_9); - lua_setfield(L, -2, "Numpad_9"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SCANCODE_NUMPAD_9, "Numpad_9"); - lua_setfield(L, -2, "scancode"); + lua_setfield(L, -2, "scancode"); } #endif // _SYSCALLS_ENUM_SCANCODES_ diff --git a/src/syscalls.c b/src/syscalls.c index 523e14a..640534a 100644 --- a/src/syscalls.c +++ b/src/syscalls.c @@ -96,6 +96,7 @@ static int syscalls_endRedraw(lua_State* L) static int syscalls_SetSkin(lua_State* L) { unsigned ret; + asm_inline( "int $0x40" : "=a"(ret) @@ -140,34 +141,39 @@ static int syscalls_SetWorkArea(lua_State* L) uint32_t bottom = luaL_checkinteger(L, 4); asm_inline( - "int $0x40" ::"a"(48), "b"(6), "c"(left * 65536 + right), "d"(top * 65536 + bottom)); + "int $0x40" :: + "a"(48), + "b"(6), + "c"((left << 16) | right), + "d"((top << 16) | bottom) + ); return 0; } static int syscalls_GetWorkArea(lua_State* L) { - ksys_pos_t leftlright; - ksys_pos_t toplbottom; + ksys_pos_t leftAndRight; + ksys_pos_t topAndBottom; asm_inline( "int $0x40" - :"=a"(leftlright), "=b"(toplbottom) + :"=a"(leftAndRight), "=b"(topAndBottom) : "a"(48), "b"(5) ); lua_createtable(L, 0, 4); - lua_pushinteger(L, leftlright.x); + lua_pushinteger(L, leftAndRight.x); lua_setfield(L, -2, "Left"); - lua_pushinteger(L, leftlright.y); + lua_pushinteger(L, leftAndRight.y); lua_setfield(L, -2, "Right"); - lua_pushinteger(L, toplbottom.x); + lua_pushinteger(L, topAndBottom.x); lua_setfield(L, -2, "Top"); - lua_pushinteger(L, toplbottom.y); + lua_pushinteger(L, topAndBottom.y); lua_setfield(L, -2, "Bottom"); return 1; @@ -196,6 +202,7 @@ static int syscalls_deleteButton(lua_State* L) static int syscalls_SetButtonsStyle(lua_State* L) { uint32_t style = luaL_checkinteger(L, 1); + asm_inline( "int $0x40" ::"a"(48), "b"(1), "c"(style)); @@ -229,7 +236,7 @@ static int syscalls_WindowMsg(lua_State* L) asm_inline( "int $0x40" - :"=a"(ret) + : "=a"(ret) : "a"(72), "b"(1), "c"(event), "d"(code) ); @@ -247,50 +254,49 @@ static int syscalls_threadInfo(lua_State* L) lua_createtable(L, 0, 13); lua_pushstring(L, t.name); - lua_setfield(L, -2, "name"); + lua_setfield(L, -2, "Name"); lua_pushinteger(L, t.cpu_usage); - lua_setfield(L, -2, "cpu_usage"); + lua_setfield(L, -2, "CpuUsage"); lua_pushinteger(L, t.memused); - lua_setfield(L, -2, "memused"); + lua_setfield(L, -2, "MemUsed"); lua_pushinteger(L, t.pid); - lua_setfield(L, -2, "pid"); + lua_setfield(L, -2, "PID"); lua_pushinteger(L, t.key_input_mode); - lua_setfield(L, -2, "keyInputMode"); + lua_setfield(L, -2, "KeyInputMode"); lua_pushinteger(L, t.pos_in_window_stack); - lua_setfield(L, -2, "posInWindowStack"); + lua_setfield(L, -2, "PosInWindowStack"); lua_pushinteger(L, t.slot_num_window_stack); - lua_setfield(L, -2, "slotNumWindowStack"); + lua_setfield(L, -2, "SlotNumWindowStack"); lua_pushinteger(L, t.slot_state); - lua_setfield(L, -2, "slotState"); + lua_setfield(L, -2, "SlotState"); lua_pushinteger(L, t.window_state); - lua_setfield(L, -2, "windowState"); + lua_setfield(L, -2, "WindowState"); lua_pushinteger(L, t.winx_size); - lua_setfield(L, -2, "winXSize"); + lua_setfield(L, -2, "WinXSize"); lua_pushinteger(L, t.winy_size); - lua_setfield(L, -2, "winYSize"); + lua_setfield(L, -2, "WinYSize"); lua_pushinteger(L, t.winx_start); - lua_setfield(L, -2, "winXPos"); + lua_setfield(L, -2, "WinXPos"); lua_pushinteger(L, t.winy_start); - lua_setfield(L, -2, "winYPos"); + lua_setfield(L, -2, "WinYPos"); return 1; } static int syscalls_KillBySlot(lua_State* L) { - _ksys_kill_by_slot( luaL_checkinteger(L, 1)); @@ -320,7 +326,10 @@ static int syscalls_checkEvent(lua_State* L) static int syscalls_waitEventTimeout(lua_State* L) { - lua_pushinteger(L, _ksys_wait_event_timeout(luaL_checkinteger(L, 1))); + lua_pushinteger( + L, + _ksys_wait_event_timeout(luaL_checkinteger(L, 1)) + ); return 1; } @@ -689,7 +698,7 @@ static int syscalls_getMouseEvents(lua_State* L) createMouseState(state, L); lua_pushboolean(L, state & (1 << 8)); - lua_setfield(L, -2, "getMouseEvents"); + lua_setfield(L, -2, "LeftButtonPressed"); lua_pushboolean(L, state & (1 << 9)); lua_setfield(L, -2, "RightButtonPressed"); @@ -757,13 +766,13 @@ static int syscalls_GetMouseSettings(lua_State* L) lua_createtable(L, 0, 3); lua_pushinteger(L, getMouseSettings(KSYS_MOUSE_GET_SPEED)); - lua_setfield(L, -2, "speed"); + lua_setfield(L, -2, "Speed"); lua_pushinteger(L, getMouseSettings(KSYS_MOUSE_GET_SENS)); - lua_setfield(L, -2, "sensitivity"); + lua_setfield(L, -2, "Sensitivity"); lua_pushinteger(L, getMouseSettings(KSYS_MOUSE_GET_DOUBLE_CLICK_DELAY)); - lua_setfield(L, -2, "doubleClickDelay"); + lua_setfield(L, -2, "DoubleClickDelay"); return 1; } @@ -826,7 +835,7 @@ static int syscalls_SetMouseSettings(lua_State* L) luaL_checktype(L, 1, LUA_TTABLE); lua_getfield(L, 1, "Speed"); - lua_getfield(L, 1, "Sens"); + lua_getfield(L, 1, "Sensitivity"); lua_getfield(L, 1, "DoubleClickDelay"); _ksys_set_mouse_settings(KSYS_MOUSE_GET_SPEED, luaL_checkinteger(L, -3)); @@ -986,10 +995,7 @@ static int syscalls_GetTXByteCount(lua_State* L) : "=a"(num), "=b"(NUM) : "a"(74), "b"(8 | device << 8)); - if (num == -1) - lua_pushnil(L); - else - lua_pushinteger(L, (uint64_t)(num | NUM << 31)); + syscalls_ReturnIntegerValueOrNil(num, num | NUM << 31, L); return 1; } @@ -1005,10 +1011,7 @@ static int syscalls_GetRXByteCount(lua_State* L) : "=a"(num), "=b"(NUM) : "a"(74), "b"(9 | device << 8)); - if (num == -1) - lua_pushnil(L); - else - lua_pushinteger(L, (uint64_t)(num | NUM << 31)); + syscalls_ReturnIntegerValueOrNil(num, num | NUM << 31, L); return 1; } @@ -1024,10 +1027,7 @@ static int syscalls_GetTXErrorPacketCount(lua_State* L) : "=a"(num), "=b"(NUM) : "a"(74), "b"(11 | device << 8)); - if (num == -1) - lua_pushnil(L); - else - lua_pushinteger(L, (uint64_t)(num | NUM << 31)); + syscalls_ReturnIntegerValueOrNil(num, num | NUM << 31, L); return 1; } @@ -1043,10 +1043,7 @@ static int syscalls_GetTXDropPacketCount(lua_State* L) : "=a"(num), "=b"(NUM) : "a"(74), "b"(12 | device << 8)); - if (num == -1) - lua_pushnil(L); - else - lua_pushinteger(L, (uint64_t)(num | NUM << 31)); + syscalls_ReturnIntegerValueOrNil(num, num | NUM << 31, L); return 1; } @@ -1062,10 +1059,7 @@ static int syscalls_GetTXMissPacketCount(lua_State* L) : "=a"(num), "=b"(NUM) : "a"(74), "b"(13 | device << 8)); - if (num == -1) - lua_pushnil(L); - else - lua_pushinteger(L, (uint64_t)(num | NUM << 31)); + syscalls_ReturnIntegerValueOrNil(num, num | NUM << 31, L); return 1; } @@ -1081,10 +1075,7 @@ static int syscalls_GetRXErrorPacketCount(lua_State* L) : "=a"(num), "=b"(NUM) : "a"(74), "b"(14 | device << 8)); - if (num == -1) - lua_pushnil(L); - else - lua_pushinteger(L, (uint64_t)(num | NUM << 31)); + syscalls_ReturnIntegerValueOrNil(num, num | NUM << 31, L); return 1; } @@ -1125,10 +1116,10 @@ enum ConnectionStatus { NoConnect = 0, Unknown = 1, - Mb10 = 4, // 10Mb - Mb100 = 5, // 100Mb - Gb = 6, // 1Gb - FullDuplex = 0b10 // + Mb10 = 4, // 10Mb + Mb100 = 5, // 100Mb + Gb = 6, // 1Gb + FullDuplex = 0b10 // }; static int syscalls_GetConnectionStatus(lua_State* L) @@ -1145,6 +1136,7 @@ static int syscalls_GetConnectionStatus(lua_State* L) lua_pushnil(L); else lua_pushinteger(L, num & 0x101); + lua_pushinteger(L, (num & FullDuplex) != 0); return 2; @@ -1421,7 +1413,7 @@ static int syscalls_ReadARPEntry(lua_State* L) if (eax == -1) lua_pushnil(L); else - memcpy(syscalls_pushARPEntry(L), &buffer, sizeof(struct ARP_entry)); + memcpy(syscalls_pushARPEntry(L), &buffer, sizeof(struct ARP_entry)); // не самый лучший вариант реализации, но если если запушить в луа это раньше то как потом запушить nil? хз может потому будут идеи более адекватной реализации return 1; } @@ -1540,8 +1532,8 @@ static const luaL_Reg syscallsLib[] = { /* keyboard funcs */ {"SetKeyInputMode", syscalls_setKeyInputMode}, {"GetKeyInputMode", syscalls_getKeyInputMode}, - {"getKey", syscalls_getKey}, - {"getControlKeyState", syscalls_getControlKeyState}, + {"GetKey", syscalls_getKey}, + {"GetControlKeyState", syscalls_getControlKeyState}, {"SetHotkey", syscalls_SetHotkey}, {"DeleteHotkey", syscalls_DeleteHotkey}, {"LockNormalInput", syscalls_LockNormalInput}, @@ -1646,35 +1638,25 @@ static inline void syscalls_push_events(lua_State* L) { lua_newtable(L); - lua_pushinteger(L, KSYS_EVENT_NONE); - lua_setfield(L, -2, "None"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_EVENT_NONE, "None"); - lua_pushinteger(L, KSYS_EVENT_REDRAW); - lua_setfield(L, -2, "Redraw"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_EVENT_REDRAW, "Redraw"); - lua_pushinteger(L, KSYS_EVENT_KEY); - lua_setfield(L, -2, "Key"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_EVENT_KEY, "Key"); - lua_pushinteger(L, KSYS_EVENT_BUTTON); - lua_setfield(L, -2, "Button"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_EVENT_BUTTON, "Button"); - lua_pushinteger(L, KSYS_EVENT_DESKTOP); - lua_setfield(L, -2, "Desktop"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_EVENT_DESKTOP, "Desktop"); - lua_pushinteger(L, KSYS_EVENT_MOUSE); - lua_setfield(L, -2, "Mouse"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_EVENT_MOUSE, "Mouse"); - lua_pushinteger(L, KSYS_EVENT_IPC); - lua_setfield(L, -2, "IPC"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_EVENT_IPC, "IPC"); - lua_pushinteger(L, KSYS_EVENT_NETWORK); - lua_setfield(L, -2, "Network"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_EVENT_NETWORK, "Network"); - lua_pushinteger(L, KSYS_EVENT_DEBUG); - lua_setfield(L, -2, "Debug"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_EVENT_DEBUG, "Debug"); - lua_pushinteger(L, KSYS_EVENT_IRQBEGIN); - lua_setfield(L, -2, "IRQBegin"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_EVENT_IRQBEGIN, "IRQBegin"); lua_setfield(L, -2, "Event"); } @@ -1683,20 +1665,15 @@ static inline void syscalls_push_buttonCodes(lua_State* L) { lua_newtable(L); - lua_pushinteger(L, KSYS_MOUSE_LBUTTON_PRESSED); - lua_setfield(L, -2, "LeftButton"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_MOUSE_LBUTTON_PRESSED, "LeftButton"); - lua_pushinteger(L, KSYS_MOUSE_RBUTTON_PRESSED); - lua_setfield(L, -2, "RightButton"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_MOUSE_RBUTTON_PRESSED, "RightButton"); - lua_pushinteger(L, KSYS_MOUSE_MBUTTON_PRESSED); - lua_setfield(L, -2, "MiddleButton"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_MOUSE_MBUTTON_PRESSED, "MiddleButton"); - lua_pushinteger(L, KSYS_MOUSE_4BUTTON_PRESSED); - lua_setfield(L, -2, "Button4"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_MOUSE_4BUTTON_PRESSED, "Button4"); - lua_pushinteger(L, KSYS_MOUSE_5BUTTON_PRESSED); - lua_setfield(L, -2, "Button5"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_MOUSE_5BUTTON_PRESSED, "Button5"); lua_setfield(L, -2, "mouseButtons"); } @@ -1705,26 +1682,19 @@ static inline void syscalls_push_slotStates(lua_State* L) { lua_newtable(L); - lua_pushinteger(L, KSYS_SLOT_STATE_RUNNING); - lua_setfield(L, -2, "Running"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SLOT_STATE_RUNNING, "Running"); - lua_pushinteger(L, KSYS_SLOT_STATE_SUSPENDED); - lua_setfield(L, -2, "Suspended"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SLOT_STATE_SUSPENDED, "Suspended"); - lua_pushinteger(L, KSYS_SLOT_STATE_SUSPENDED_WAIT_EVENT); - lua_setfield(L, -2, "SuspendedWaitEvent"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SLOT_STATE_SUSPENDED_WAIT_EVENT, "SuspendedWaitEvent"); - lua_pushinteger(L, KSYS_SLOT_STATE_NORMAL_TERM); - lua_setfield(L, -2, "NormalTerm"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SLOT_STATE_NORMAL_TERM, "NormalTerm"); - lua_pushinteger(L, KSYS_SLOT_STATE_EXCEPT_TERM); - lua_setfield(L, -2, "ExceptTerm"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SLOT_STATE_EXCEPT_TERM, "ExceptTerm"); - lua_pushinteger(L, KSYS_SLOT_STATE_EXCEPT_TERM); - lua_setfield(L, -2, "WaitEvent"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SLOT_STATE_EXCEPT_TERM, "WaitEvent"); - lua_pushinteger(L, KSYS_SLOT_STATE_WAIT_EVENT); - lua_setfield(L, -2, "Free"); + LUA_PUSH_INTEGER_FIELD(L, KSYS_SLOT_STATE_WAIT_EVENT, "Free"); lua_setfield(L, -2, "slotState"); } @@ -1733,21 +1703,15 @@ static inline void syscalls_push_hotkey_states(lua_State* L) { lua_newtable(L); - lua_pushinteger(L, 0); - lua_setfield(L, -2, "hotkeyNoOne"); + LUA_PUSH_INTEGER_FIELD(L, 0, "NoOne"); - lua_pushinteger(L, 1); - lua_setfield(L, -2, "hotkeyOnlyOne"); + LUA_PUSH_INTEGER_FIELD(L, 1, "OnlyOne"); - lua_pushinteger(L, 2); - lua_setfield(L, -2, "hotkeyBoth"); + LUA_PUSH_INTEGER_FIELD(L, 2, "Both"); - lua_pushinteger(L, 4); - lua_setfield(L, -2, "hotkeyLeftOnly"); - - lua_pushinteger(L, 5); - lua_setfield(L, -2, "hotkeyRightOnly"); + LUA_PUSH_INTEGER_FIELD(L, 4, "LeftOnly"); + LUA_PUSH_INTEGER_FIELD(L, 5, "RightOnly"); lua_setfield(L, -2, "hotkeyStates"); } @@ -1756,12 +1720,9 @@ static inline void syscalls_push_buttonsStyle(lua_State* L) { lua_newtable(L); - lua_pushinteger(L, 0); - lua_setfield(L, -2, "ButtonStyleFlat"); - - lua_pushinteger(L, 1); - lua_setfield(L, -2, "ButtonStyleVolume"); + LUA_PUSH_INTEGER_FIELD(L, 0, "Flat"); + LUA_PUSH_INTEGER_FIELD(L, 1, "Volume"); lua_setfield(L, -2, "buttonStyle"); } @@ -1770,20 +1731,15 @@ static inline void syscalls_push_windowStyles(lua_State* L) { lua_newtable(L); - lua_pushinteger(L, 0); - lua_setfield(L, -2, "FixSizes"); + LUA_PUSH_INTEGER_FIELD(L, 0, "FixSizes"); - lua_pushinteger(L, 1); - lua_setfield(L, -2, "NoDraw"); + LUA_PUSH_INTEGER_FIELD(L, 1, "NoDraw"); - lua_pushinteger(L, 2); - lua_setfield(L, -2, "CanChangeSizes"); + LUA_PUSH_INTEGER_FIELD(L, 2, "CanChangeSizes"); - lua_pushinteger(L, 3); - lua_setfield(L, -2, "WithSkin"); + LUA_PUSH_INTEGER_FIELD(L, 3, "WithSkin"); - lua_pushinteger(L, 4); - lua_setfield(L, -2, "WithSkinFixSizes"); + LUA_PUSH_INTEGER_FIELD(L, 4, "WithSkinFixSizes"); lua_setfield(L, -2, "windowStyle"); } @@ -1792,11 +1748,9 @@ static inline void syscalls_push_buttons(lua_State* L) { lua_newtable(L); - lua_pushinteger(L, 0xffff); - lua_setfield(L, -2, "minimization"); + LUA_PUSH_INTEGER_FIELD(L, 0xffff, "minimization"); - lua_pushinteger(L, 1); - lua_setfield(L, -2, "close"); + LUA_PUSH_INTEGER_FIELD(L, 1, "close"); lua_setfield(L, -2, "buttons"); } @@ -1805,20 +1759,15 @@ static inline void syscalls_push_connectionStatus(lua_State* L) { lua_newtable(L); - lua_pushinteger(L, NoConnect); - lua_setfield(L, -2, "no"); + LUA_PUSH_INTEGER_FIELD(L, NoConnect, "No"); - lua_pushinteger(L, Unknown); - lua_setfield(L, -2, "unknown"); + LUA_PUSH_INTEGER_FIELD(L, Unknown, "Unknown"); - lua_pushinteger(L, Mb10); - lua_setfield(L, -2, "10Mb"); + LUA_PUSH_INTEGER_FIELD(L, Mb10, "10Mb"); - lua_pushinteger(L, Mb100); - lua_setfield(L, -2, "100Mb"); + LUA_PUSH_INTEGER_FIELD(L, Mb100, "100Mb"); - lua_pushinteger(L, Gb); - lua_setfield(L, -2, "1Gb"); + LUA_PUSH_INTEGER_FIELD(L, Gb, "1GB"); lua_setfield(L, -2, "connectionStatus"); } diff --git a/src/syscalls.h b/src/syscalls.h index 0888c58..16b2755 100644 --- a/src/syscalls.h +++ b/src/syscalls.h @@ -53,4 +53,8 @@ inline void syscalls_ReturnStringOrNil(LUA_INTEGER cond, const char* value, lua_ } } +#define LUA_PUSH_INTEGER_FIELD(L, val, name) lua_pushinteger(L, val); lua_setfield(L, -2, name); +#define LUA_PUSH_STRING_FIELD(L, val, name) lua_pushstring(L, val); lua_setfield(L, -2, name); +#define LUA_PUSH_NUMBER_FIELD(L, val, name) lua_pushnumber(L, val); lua_setfield(L, -2, name); + #endif // __SYSCALLS_H__