diff options
| author | Aargh Rai <aargh.rai+git@gmail.com> | 2026-07-10 16:01:57 +0530 |
|---|---|---|
| committer | Aargh Rai <aargh.rai+git@gmail.com> | 2026-07-10 16:01:57 +0530 |
| commit | a14da2fe3864712dab4e7c4cfb5c323026d668de (patch) | |
| tree | 418c8c8ff44a611cbe1c1269b10926527046e232 /include/ipc.h | |
| parent | 2761f8a533e2b025f209222a1e4ec70b91c7e8ee (diff) | |
moving header files to include directory & moving resources in it's own directory
i know currently there is race condition, but the code is getting too
messy, i will continue to this after i make a vis tool to analyse how i
should split up files & stuff
the code rn needs intense restructing for it to make any more progress
Diffstat (limited to 'include/ipc.h')
| -rw-r--r-- | include/ipc.h | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/include/ipc.h b/include/ipc.h new file mode 100644 index 0000000..90a2bcc --- /dev/null +++ b/include/ipc.h @@ -0,0 +1,78 @@ +#ifndef IPC_H +#define IPC_H + +// NOT TRUE IPC: I REALISED I AM STUPID AND COULD HAVE JUST USED THREADS + +#include <sys/mman.h> +#include <stdlib.h> + +#include "fen.h" +#include "uci/state.h" + +typedef struct { + struct uci_move *moves; + int count; + int capacity; +} comm_moves; + +struct engine_message { + int id; + + int ready; + + int depth; + int seldepth; + int multipv; + int score_cp; + int nodes; + int nps; + int hashfull; + int tbhits; + int time; + + int mate; + bool node_limit; + comm_moves pv; + + struct uci_move best_move; + struct uci_move ponder; + + struct engine_message *next; +}; + +typedef struct { + struct engine_message **data; + int count; +} engine_messages; + +enum { MESSAGE_FILLED, MESSAGE_READ, MESSAGE_PROCESSED }; +typedef struct { + engine_messages *engine_messages; + uci_state state; + int uci_state_initialized; + int uci_message_ready; + struct fen_load from_position; + comm_moves moves; +} comms; + +comm_moves comm_moves_init(); +void add_comm_move(comm_moves *moves, struct uci_move move); + +struct go_args { + comm_moves searchmoves; + bool ponder; + int wtime; + int btime; + int winc; + int binc; + int movestogo; + int depth; + int nodes; + int mate; + int movetime; + bool infinite; + int perft; +}; +bool should_continue(struct engine_message *message, struct go_args* go); + +#endif // IPC_H |
