gdbstub.h
Go to the documentation of this file.00001 #ifndef _GPXE_GDBSTUB_H
00002 #define _GPXE_GDBSTUB_H
00003
00004
00005
00006
00007
00008
00009
00010 FILE_LICENCE ( GPL2_OR_LATER );
00011
00012 #include <stdint.h>
00013 #include <gpxe/tables.h>
00014 #include <gdbmach.h>
00015
00016
00017
00018
00019
00020 struct gdb_transport {
00021
00022 const char *name;
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 int ( * init ) ( int argc, char **argv );
00033
00034
00035
00036
00037
00038
00039
00040 size_t ( * recv ) ( char *buf, size_t len );
00041
00042
00043
00044
00045
00046
00047 void ( * send ) ( const char *buf, size_t len );
00048 };
00049
00050 #define GDB_TRANSPORTS __table ( struct gdb_transport, "gdb_transports" )
00051
00052 #define __gdb_transport __table_entry ( GDB_TRANSPORTS, 01 )
00053
00054
00055
00056
00057
00058
00059
00060 extern struct gdb_transport *find_gdb_transport ( const char *name );
00061
00062
00063
00064
00065
00066
00067 extern void gdbstub_start ( struct gdb_transport *trans );
00068
00069
00070
00071
00072
00073
00074
00075 extern void gdbstub_handler ( int signo, gdbreg_t *regs );
00076
00077 #endif