summaryrefslogtreecommitdiff
path: root/include/engine/search.h
diff options
context:
space:
mode:
authorAargh Rai <aargh.rai+git@gmail.com>2026-08-15 15:15:21 +0530
committerAargh Rai <aargh.rai+git@gmail.com>2026-08-15 15:15:21 +0530
commit54afeb6dd89fffae92274cb6fe2e9a86fd57c6e3 (patch)
tree0d6aa206f28c9b00f785d0981bb77a97851f1ce4 /include/engine/search.h
parentf97ea63ac29c08530b1aaff89277262b44ef7a11 (diff)
phase B
Diffstat (limited to 'include/engine/search.h')
-rw-r--r--include/engine/search.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/include/engine/search.h b/include/engine/search.h
new file mode 100644
index 0000000..94b5da5
--- /dev/null
+++ b/include/engine/search.h
@@ -0,0 +1,36 @@
+#ifndef SEARCH_H
+#define SEARCH_H
+
+#include <stdatomic.h>
+
+#include "bitboard.h"
+#include "engine/moves.h"
+#include "engine/ttable.h"
+#include "ipc/go_args.h"
+
+#define SEARCH_MATE 30000
+#define SEARCH_INF 32000
+
+typedef struct {
+ i32 score;
+ move_t best_move;
+} search_result_t;
+
+// shared per-search context. `stop` is signalled by the UCI thread (SIGSTOP),
+// `go_args` carries the time/node/depth limits, `nodes` counts visited nodes.
+typedef struct {
+ ttable_t *ttable;
+ go_args_t *go_args;
+ atomic_bool *stop;
+ u64 *nodes;
+} search_ctx_t;
+
+search_result_t search(
+ position_t position,
+ int depth,
+ int alpha,
+ int beta,
+ search_ctx_t *ctx
+);
+
+#endif // SEARCH_H