xref: /inferno-os/utils/libmach/4db.c (revision 4eb166cf184c1f102fb79e31b1465ea3e2021c39)
1 #include <lib9.h>
2 #include <bio.h>
3 #include "mach.h"
4 /*
5  * Mips-specific debugger interface
6  */
7 
8 char	*mipsexcep(Map*, Rgetter);
9 int	mipsfoll(Map*, ulong, Rgetter, ulong*);
10 int	mipsinst(Map*, ulong, char, char*, int);
11 int	mipsdas(Map*, ulong, char*, int);
12 int	mipsinstlen(Map*, ulong);
13 /*
14  *	Debugger interface
15  */
16 Machdata mipsmach2be =
17 {
18 	{0, 0, 0, 0xD},		/* break point */
19 	4,			/* break point size */
20 
21 	beswab,			/* short to local byte order */
22 	beswal,			/* long to local byte order */
23 	beswav,			/* vlong to local byte order */
24 	risctrace,		/* C traceback */
25 	riscframe,		/* Frame finder */
26 	mipsexcep,		/* print exception */
27 	0,			/* breakpoint fixup */
28 	beieeesftos,		/* single precision float printer */
29 	beieeedftos,		/* double precisioin float printer */
30 	mipsfoll,		/* following addresses */
31 	mipsinst,		/* print instruction */
32 	mipsdas,		/* dissembler */
33 	mipsinstlen,		/* instruction size */
34 };
35 
36 /*
37  *	Debugger interface
38  */
39 Machdata mipsmach2le =
40 {
41 	{0, 0, 0, 0xD},		/* break point */
42 	4,			/* break point size */
43 
44 	leswab,			/* short to local byte order */
45 	leswal,			/* long to local byte order */
46 	leswav,			/* vlong to local byte order */
47 	risctrace,		/* C traceback */
48 	riscframe,		/* Frame finder */
49 	mipsexcep,		/* print exception */
50 	0,			/* breakpoint fixup */
51 	leieeesftos,		/* single precision float printer */
52 	leieeedftos,		/* double precisioin float printer */
53 	mipsfoll,		/* following addresses */
54 	mipsinst,		/* print instruction */
55 	mipsdas,		/* dissembler */
56 	mipsinstlen,		/* instruction size */
57 };
58