rizin/libr/debug/p/libgdbwrap/include/gdbwrapper.h
Nibble f853dab09f * More fixes on mingw32 build
* Update VERSION in swig configure script
* Update doc/windows
2010-07-24 12:44:19 +02:00

107 lines
2.9 KiB
C

#ifndef _INCLUDE_GDBWRAPPER_H_
#define _INCLUDE_GDBWRAPPER_H_
/* File to include to use the wrapper. */
#include "r_types.h"
#if __UNIX__
#include <netinet/in.h>
#include <sys/socket.h>
#include <netdb.h>
#endif
#if __WINDOWS__
#include <windows.h>
#endif
#include <errno.h>
#include "libaspect.h"
#if __WINDOWS__
typedef unsigned char uint8_t;
#endif
typedef struct gdbwrap_gdbreg32
{
ureg32 eax;
ureg32 ecx;
ureg32 edx;
ureg32 ebx;
ureg32 esp;
ureg32 ebp;
ureg32 esi;
ureg32 edi;
ureg32 eip;
ureg32 eflags;
ureg32 cs;
ureg32 ss;
ureg32 ds;
ureg32 es;
ureg32 fs;
ureg32 gs;
} gdbwrap_gdbreg32;
typedef struct gdbwrap_t
{
char *packet;
int fd;
unsigned max_packet_size;
gdbwrap_gdbreg32 reg32;
Bool is_active;
Bool erroroccured;
Bool interrupted;
Bool pmode;
} gdbwrap_t;
typedef struct meminfo_t
{
char *type;
u_int start;
u_int length;
u_int blocksize;
} meminfo_t;
typedef struct gdbmemap_t
{
meminfo_t ram;
meminfo_t rom;
meminfo_t flash;
} gdbmemap_t;
typedef struct
{
gdbwrap_t *gdbwrapptr;
} gdbwrapworld_t;
Bool gdbwrap_erroroccured(gdbwrap_t *desc);
Bool gdbwrap_cmdnotsup(gdbwrap_t *desc);
unsigned gdbwrap_atoh(const char * str, unsigned size);
unsigned gdbwrap_lastsignal(gdbwrap_t *desc);
Bool gdbwrap_is_active(gdbwrap_t *desc);
gdbwrapworld_t gdbwrap_current_set(gdbwrap_t *world);
gdbwrap_t *gdbwrap_current_get(void);
gdbwrap_t *gdbwrap_init(int fd);
void gdbwrap_close(gdbwrap_t *desc);
void gdbwrap_hello(gdbwrap_t *desc);
void gdbwrap_bye(gdbwrap_t *desc);
void gdbwrap_reason_halted(gdbwrap_t *desc);
char *gdbwrap_own_command(gdbwrap_t *desc, char *command);
gdbwrap_gdbreg32 *gdbwrap_readgenreg(gdbwrap_t *desc);
void gdbwrap_continue(gdbwrap_t *desc);
void gdbwrap_setbp(gdbwrap_t *desc, la32 linaddr, void *datasaved);
void gdbwrap_simplesetbp(gdbwrap_t *desc, la32 linaddr);
void gdbwrap_delbp(gdbwrap_t *desc, la32 linaddr, void *datasaved);
void gdbwrap_simpledelbp(gdbwrap_t *desc, la32 linaddr);
char *gdbwrap_readmem(gdbwrap_t *desc, la32 linaddr, unsigned bytes);
void gdbwrap_writemem(gdbwrap_t *desc, la32 linaddr, void *value,
unsigned bytes);
void gdbwrap_writereg(gdbwrap_t *desc, ureg32 regnum, la32 val);
char *gdbwrap_shipallreg(gdbwrap_t *desc);
void gdbwrap_ctrl_c(gdbwrap_t *desc);
void gdbwrap_signal(gdbwrap_t *desc, int signal);
void gdbwrap_stepi(gdbwrap_t *desc);
char *gdbwrap_remotecmd(gdbwrap_t *desc, char *cmd);
u_char gdbwrap_lasterror(gdbwrap_t *desc);
gdbmemap_t gdbwrap_memorymap_get();
#endif