/* radare - LGPL - Copyright 2024-2026 - pancake */

#include "r_core.h"

#ifndef R2_CORE_PRIV_H
#define R2_CORE_PRIV_H

#ifdef __cplusplus
extern "C" {
#endif

typedef struct r_core_priv_t {
	// arch cache
	int old_bits;
	char *old_arch;
	// rtr
	RSocket *s;
	RThread *httpthread;
	RThread *rapthread;
	const char *listenport;
	char *errmsg_tmpfile;
	int errmsg_fd; // -1
	bool regnums;
	bool tags_loaded;
	bool autocomplete_loaded;
	RDebugSession *debug_replay_session;
	HtUP *debug_replay;
	RList *cmdqueue;
	RThreadLock *cmdqueue_lock;
	// disasm cache
	ut64 goaddr;
	char *section;
} RCorePriv;

R_IPI bool isVisualDisasm(RCore *core);
R_IPI R_OWNED char * R_NULLABLE r_core_get_radare2rc(void);
R_IPI RCmdResult r_cmd_call_result(RCmd *cmd, RCmdContext *parent, const char *input, bool raw);
R_IPI int r_cmd_call_context(RCmd *cmd, RCmdContext *parent, const char *input, bool raw);

#ifdef __cplusplus
}
#endif

#endif
