summaryrefslogtreecommitdiff
path: root/include/ipc.h
diff options
context:
space:
mode:
authorAargh Rai <aargh.rai+git@gmail.com>2026-07-10 16:01:57 +0530
committerAargh Rai <aargh.rai+git@gmail.com>2026-07-10 16:01:57 +0530
commita14da2fe3864712dab4e7c4cfb5c323026d668de (patch)
tree418c8c8ff44a611cbe1c1269b10926527046e232 /include/ipc.h
parent2761f8a533e2b025f209222a1e4ec70b91c7e8ee (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.h78
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