From f8c0dc54e36cc201c657aa12e5a22029b092e1bc Mon Sep 17 00:00:00 2001 From: Aargh Rai Date: Mon, 13 Jul 2026 21:58:18 +0530 Subject: restructed all the files + uci done now also broke the symbol analyser in the process, i didn't help much, i had to pull out the pen & paper, but it made a cool graph never the less multithreading was a pain! but it got it in the end fixed the structs naming convention, if it's used outside by other files, it's typedeffed, otherwise it's not fixed the recursive imports issued i had in go_args*, where i was casting it to void* in uci to make it work now response.c doesn't deal with ipc, really happy with that change now every single thing has its own responsibility --- include/ipc/state.h | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 include/ipc/state.h (limited to 'include/ipc/state.h') diff --git a/include/ipc/state.h b/include/ipc/state.h new file mode 100644 index 0000000..6a4455d --- /dev/null +++ b/include/ipc/state.h @@ -0,0 +1,42 @@ +#ifndef IPC_STATE_H +#define IPC_STATE_H + +#include + +#include "bitboard.h" +#include "ipc/moves.h" +#include "ipc/engine_message.h" +#include "uci/state.h" + +enum { + EVENT_INIT, + EVENT_STATE_INITIALISED, + EVENT_UCI_STATE_INITIALISED, + EVENT_UCI_RUNNING, + EVENT_UCI_STOP, + EVENT_UCI_QUIT, + EVENT_ENGINE_GO, + EVENT_ENGINE_RUNNING, + EVENT_ENGINE_STOP, + + EVENTS_COUNT +}; +typedef struct { + atomic_int event; + + engine_messages_t engine_messages; + uci_state_t uci_state; + + // reset on new game + position_t from_position; + ipc_moves_t moves; +} ipc_state_t; + +void ipc_state_init(ipc_state_t *state); +void ipc_state_deinit(ipc_state_t *state); +void ipc_state_game_reset(ipc_state_t *state); +void ipc_state_wait_for_event(ipc_state_t *state, size_t event); +bool ipc_state_is_event(ipc_state_t *state, size_t event); +void ipc_state_set_event(ipc_state_t *state, size_t event); + +#endif // IPC_STATE_H -- cgit v1.2.3