add IPC to build && fix errors

This commit is contained in:
2025-04-18 15:31:41 +05:00
parent f81b5c1b23
commit 180d3f795b
5 changed files with 20 additions and 11 deletions

View File

@@ -31,9 +31,10 @@ MYOBJS =
Socket_O = src/sockets/socket.o src/sockets/socket_lua.o src/sockets/sockaddr.o
IPC_O = src/IPC/ipc.o src/IPC/IPC_msg.o
Debug_O = src/debug/debug.o src/debug/registers.o
ALL_O = src/syscalls.o src/ARP_entry.o src/systemColors.o src/graphic.o $(Socket_O) $(Debug_O)
ALL_O = src/syscalls.o src/ARP_entry.o src/systemColors.o src/graphic.o $(Socket_O) $(Debug_O) $(IPC_O)
syscalls.dll: $(ALL_O)
$(CC) -shared -T dll.lds --entry _DllStartup -o $@ $(ALL_O) $(LIBS)
@@ -54,6 +55,8 @@ src/sockets/sockaddr.o: src/sockets/sockaddr.c src/sockets/sockaddr.h
src/graphic.o: src/graphic.c src/graphic.h
src/debug/debug.o: src/debug/debug.c src/debug/debug.h src/debug/registers.h
src/debug/registers.o: src/debug/registers.c src/debug/registers.h src/syscalls.h
src/IPC/ipc.o: src/IPC/ipc.c src/IPC/ipc.h src/IPC/IPC_msg.h
src/IPC/IPC_msg.o: src/IPC/IPC_msg.c src/IPC/IPC_msg.h
## headers
@@ -62,3 +65,5 @@ src/sockets/socket_lua.h: src/syscalls.h src/sockets/socket.h
src/sockets/sockaddr.h: src/sockets/socket.h src/syscalls.h
src/debug/debug.h: src/syscalls.h
src/debug/registers.h: src/syscalls.h
src/IPC/IPC_msg.h: src/syscalls.h
src/IPC/ipc.h: src/syscalls.h

View File

@@ -36,6 +36,7 @@ static int syscalls_newindexIPC_msg(lua_State* L)
if (!index_i)
{
const char* index = luaL_checkstring(L, 2);
if (strcmp(index, "size") == 0)
{
r->datalen = val;
@@ -76,7 +77,7 @@ static bool compare_ipc_msg(ksys_ipc_msg* a, ksys_ipc_msg* b)
a->datalen
);
}
else
else // длина сообщений не совпадает, занчитт они зразу не могут быть равны
{
return false;
}

View File

@@ -7,13 +7,13 @@
#define syscalls_IPC_msg_metatable_name "syscalls IPC_msg metatable"
#define syscalls_IPC_msg_name "IPC_msg"
int syscalls_newSystemColors(lua_State* L);
int syscalls_newIPC_msg(lua_State* L);
ksys_colors_table_t* syscalls_pushSystemColors(lua_State* L);
ksys_colors_table_t* syscalls_pushIPC_msg(lua_State* L);
/**
* Register SystemColors lib
*/
void syscalls_register_SystemColors(lua_State* L);
void syscalls_register_IPC_msg(lua_State* L);
#endif // _SYSCALLS_IPC_MSG_H_

View File

@@ -17,7 +17,7 @@ inline static enum SendIPCErrors send_ipc(int pid, ksys_ipc_msg* msg)
asm_inline(
"int $0x40"
: "=a"(ret)
: "a"(60), "b"(1), "c"(pid), "d"(msg), "S"(sizeof(ksys_ipc_msg) + msg->datalen)
: "a"(60), "b"(2), "c"(pid), "d"(msg), "S"(sizeof(ksys_ipc_msg) + msg->datalen)
);
return ret;
@@ -28,10 +28,9 @@ int syscalls_DefineIPCBuffer(lua_State* L)
uint32_t len = luaL_checkinteger(L, 1);
ksys_ipc_buffer* buffer;
define_ipc(buffer, len);
return 1;
return 0;
}
int syscalls_SendIPCMessage(lua_State* L)
@@ -39,7 +38,7 @@ int syscalls_SendIPCMessage(lua_State* L)
lua_pushinteger(
L,
send_ipc(
lua_checkinteger(L, 1),
luaL_checkinteger(L, 1),
luaL_checkudata(L, 1, syscalls_IPC_msg_metatable_name)
)
);

View File

@@ -9,13 +9,14 @@
#include "syscalls.h"
#include "scancodes.h"
#include "ARP_entry.h"
#include "ARP_entry.h"
#include "systemColors.h"
#include "sockets/socket_lua.h"
#include "debug/debug.h"
#include "graphic.h"
#include "IPC/ipc.h"
#include "IPC/IPC_msg.h"
/*
Режим ввода с клавиатуры
@@ -1636,6 +1637,8 @@ static const luaL_Reg syscallsLib[] = {
{ "Done", syscalls_Done },
{ "DefineBreakpoint", syscalls_DefineBreakpoint },
{ "UndefBreakpoint", syscalls_UndefBreakpoint },
{ "DefineIPCBuffer", syscalls_DefineIPCBuffer },
{ "SendIPCMessage", syscalls_SendIPCMessage },
{ NULL, NULL }
};
@@ -1835,6 +1838,7 @@ LUALIB_API int luaopen_syscalls(lua_State* L)
syscalls_push_buttons(L);
syscalls_push_connectionStatus(L);
syscalls_push_graphic(L);
syscalls_register_IPC_msg(L);
syscalls_register_ARPEntry(L);
syscalls_register_SystemColors(L);