summaryrefslogtreecommitdiff
path: root/regress/sys/arch/amd64/ddb/stubs.c
diff options
context:
space:
mode:
Diffstat (limited to 'regress/sys/arch/amd64/ddb/stubs.c')
-rw-r--r--regress/sys/arch/amd64/ddb/stubs.c94
1 files changed, 94 insertions, 0 deletions
diff --git a/regress/sys/arch/amd64/ddb/stubs.c b/regress/sys/arch/amd64/ddb/stubs.c
new file mode 100644
index 00000000000..4a8a2fa69e0
--- /dev/null
+++ b/regress/sys/arch/amd64/ddb/stubs.c
@@ -0,0 +1,94 @@
+/* $OpenBSD: stubs.c,v 1.1 2024/11/19 05:50:41 anton Exp $ */
+
+#include <err.h>
+#include <stdarg.h>
+#include <stdio.h>
+
+#include <machine/db_machdep.h>
+#include <machine/cpu_full.h>
+#include <ddb/db_access.h>
+#include <ddb/db_interface.h>
+#include <ddb/db_command.h>
+#include <ddb/db_output.h>
+#include <ddb/db_sym.h>
+
+#include "disasm.h"
+
+void (*cnputc)(int) = NULL;
+int (*cngetc)(void) = NULL;
+char *esym = NULL;
+char *ssym = NULL;
+struct cpu_info_full cpu_info_full_primary = {0};
+
+int
+db_elf_sym_init(int symsize, void *symtab, void *esymtab, const char *name)
+{
+ return 0;
+}
+
+Elf_Sym *
+db_elf_sym_search(vaddr_t off, db_strategy_t strategy, db_expr_t *diffp)
+{
+ return NULL;
+}
+
+int
+db_elf_line_at_pc(Elf_Sym *cursym, const char **filename, int *linenum,
+ db_expr_t off)
+{
+ return 0;
+}
+
+void
+db_error(char *s)
+{
+}
+
+void
+db_stack_trace_print(db_expr_t addr, int have_addr, db_expr_t count,
+ char *modif, int (*pr)(const char *, ...))
+{
+}
+
+void
+db_symbol_values(Elf_Sym *sym, const char **namep, db_expr_t *valuep)
+{
+}
+
+db_expr_t
+db_get_value(vaddr_t addr, size_t size, int is_signed)
+{
+ db_expr_t c;
+
+ if (ctx->raw.len == 0)
+ return 0;
+
+ c = ctx->raw.buf[0];
+ ctx->raw.buf++;
+ ctx->raw.len--;
+ return c;
+}
+
+int
+db_printf(const char *fmt, ...)
+{
+ int n = 0;
+
+ if (strcmp(fmt, "\n") == 0) {
+ /* nothing */
+ } else if (strcmp(fmt, "\t") == 0) {
+ n = snprintf(&ctx->act.buf[ctx->act.len], ctx->act.siz, " ");
+ } else {
+ va_list ap;
+
+ va_start(ap, fmt);
+ n = vsnprintf(&ctx->act.buf[ctx->act.len], ctx->act.siz, fmt,
+ ap);
+ va_end(ap);
+ }
+ if (n < 0 || (size_t)n >= ctx->act.siz)
+ errx(1, "buffer too small");
+ ctx->act.len += n;
+ ctx->act.siz -= n;
+ return 0;
+}