⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbg_rdi.h

📁 这个是LINUX下的GDB调度工具的源码
💻 H
📖 第 1 页 / 共 2 页
字号:
#define RDIIcebreaker_SetLocks  0x186/* rdi: in ARMword *lockedstate                                         *//* rdp: in word lockedstate, out byte status                            *//* lockedstate is a bitmap of the icebreaker registers locked against   *//* use by IceMan (because explicitly written by the user)               */#define RDIInfo_GetLoadSize     0x187/* rdi: out ARMword *maxloadsize                                        *//* rdp: in none, out word maxloadsize, byte status                      *//* Inquires the maximum length of data transfer the agent is prepared   *//* to receive                                                           *//* Only usable if RDIInfo_Target returned RDITarget_CanInquireLoadSize  *//* rdi: out ARMword *size                                               *//* Only to be used if the value returned by RDIInfo_Target had          *//* RDITarget_HasCommsChannel set                                        */typedef void RDICCProc_ToHost(void *arg, ARMword data);typedef void RDICCProc_FromHost(void *arg, ARMword *data, int *valid);#define RDICommsChannel_ToHost  0x188/* rdi: in RDICCProc_ToHost *, in void *arg                             *//* rdp: in byte connect, out byte status                                */#define RDICommsChannel_FromHost 0x189/* rdi: in RDICCProc_FromHost *, in void *arg                           *//* rdp: in byte connect, out byte status                                *//* These 4 are only to be used if RDIInfo_Semihosting returns no error  */#define RDISemiHosting_SetARMSWI 0x190/* rdi: in ARMword ARM_SWI_number                                       *//* rdp: in ARMword ARM_SWI_number, out byte status                      */#define RDISemiHosting_GetARMSWI 0x191/* rdi: out ARMword ARM_SWI_number                                      *//* rdp: out ARMword ARM_SWI_number, byte status                         */#define RDISemiHosting_SetThumbSWI 0x192/* rdi: in ARMword Thumb_SWI_number                                     *//* rdp: in ARMword Thumb_SWI_number, out byte status                    */#define RDISemiHosting_GetThumbSWI 0x193/* rdi: out ARMword ARM_Thumb_number                                    *//* rdp: out ARMword ARM_Thumb_number, byte status                       */#define RDICycles               0x200/* rdi: out ARMword cycles[12]                                          *//* rdp: in none, out 6 words cycles, byte status                        *//* the rdi result represents 6 big-endian doublewords; the rdp results  *//* return values for the ls halves of these                             */#  define RDICycles_Size        48#define RDIErrorP               0x201/* rdi: out ARMaddress *errorp                                          *//* rdp: in none, out word errorp, byte status                           *//* Returns the error pointer associated with the last return from step  *//* or execute with status RDIError_Error.                               */#define RDISet_Cmdline          0x300/* rdi: in char *commandline (a null-terminated string)                 *//* No corresponding RDP operation (cmdline is sent to the agent in      *//* response to SWI_GetEnv)                                              */#define RDISet_RDILevel         0x301/* rdi: in ARMword *level                                               *//* rdp: in word level, out byte status                                  *//* Sets the RDI/RDP protocol level to be used (must lie between the     *//* limits returned by RDIInfo_Target).                                  */#define RDISet_Thread           0x302/* rdi: in ARMword *threadhandle                                        *//* rdp: in word threadhandle, out byte status                           *//* Sets the thread context for subsequent thread-sensitive operations   *//* (null value sets no thread)                                          *//* The next two are only to be used if RDI_read or RDI_write returned   *//* RDIError_LittleEndian or RDIError_BigEndian, to signify that the     *//* debugger has noticed.                                                */#define RDIInfo_AckByteSex  0x303/* rdi: in ARMword *sex (RDISex_Little or RDISex_Big)                   *//* The next two are only to be used if RDIInfo_CoPro returned no error  */#define RDIInfo_DescribeCoPro   0x400/* rdi: in int *cpno, Dbg_CoProDesc *cpd                                *//* rdp: in byte cpno,                                                   *//*         cpd->entries * {                                             *//*           byte rmin, byte rmax, byte nbytes, byte access,            *//*           byte cprt_r_b0, cprt_r_b1, cprt_w_b0, cprt_w_b1}           *//*         byte = 255                                                   *//*      out byte status                                                 */#define RDIInfo_RequestCoProDesc 0x401/* rdi: in int *cpno, out Dbg_CoProDesc *cpd                            *//* rpd: in byte cpno                                                    *//*      out nentries * {                                                *//*            byte rmin, byte rmax, byte nbytes, byte access,           *//*          }                                                           *//*          byte = 255, byte status                                     */#define RDIInfo_Log             0x800/* rdi: out ARMword *logsetting                                         *//* No corresponding RDP operation                                       */#define RDIInfo_SetLog          0x801/* rdi: in ARMword *logsetting                                          *//* No corresponding RDP operation                                       */#define RDIProfile_Stop         0x500/* No arguments, no return value                                        *//* rdp: in none, out byte status                                        *//* Requests that pc sampling stop                                       */#define RDIProfile_Start        0x501/* rdi: in ARMword *interval                                            *//* rdp: in word interval, out byte status                               *//* Requests that pc sampling start, with period <interval> usec         */#define RDIProfile_WriteMap     0x502/* rdi: in ARMword map[]                                                *//* map[0] is the length of the array, subsequent elements are sorted    *//* and are the base of ranges for pc sampling (so if the sampled pc     *//* lies between map[i] and map[i+1], count[i] is incremented).          *//* rdp: a number of messages, each of form:                             *//*        in word len, word size, word offset, <size> words map data    *//*        out status                                                    *//* len, size and offset are all word counts.                            */#define RDIProfile_ReadMap      0x503/* rdi: in ARMword *len, out ARMword counts[len]                        *//* Requests that the counts array be set to the accumulated pc sample   *//* counts                                                               *//* rdp: a number of messages, each of form:                             *//*        in word offset, word size                                     *//*        out <size> words, status                                      *//* len, size and offset are all word counts.                            */#define RDIProfile_ClearCounts  0x504/* No arguments, no return value                                        *//* rdp: in none, out byte status                                        *//* Requests that pc sample counts be set to zero                        */#define RDIInfo_RequestReset    0x900/* Request reset of the target environment                              *//* No arguments, no return value                                        *//* No RDP equivalent, sends an RDP reset                                */#define RDIInfo_CapabilityRequest 0x8000/* Request whether the interface supports the named capability. The     *//* capability is specified by or'ing the RDIInfo number with this, and  *//* sending that request                                                 *//* rdi: in none                                                         *//* rdp: in none, out byte status                                        */typedef struct {  ARMword len;  ARMword map[1];} RDI_ProfileMap;typedef unsigned32 PointHandle;typedef unsigned32 ThreadHandle;#define RDINoPointHandle        ((PointHandle)-1L)#define RDINoHandle             ((ThreadHandle)-1L)struct Dbg_ConfigBlock;struct Dbg_HostosInterface;struct Dbg_MCState;typedef int rdi_open_proc(unsigned type, struct Dbg_ConfigBlock const *config,                          struct Dbg_HostosInterface const *i,                          struct Dbg_MCState *dbg_state);typedef int rdi_close_proc(void);typedef int rdi_read_proc(ARMword source, void *dest, unsigned *nbytes);typedef int rdi_write_proc(const void *source, ARMword dest, unsigned *nbytes);typedef int rdi_CPUread_proc(unsigned mode, unsigned32 mask, ARMword *state);typedef int rdi_CPUwrite_proc(unsigned mode, unsigned32 mask, ARMword const *state);typedef int rdi_CPread_proc(unsigned CPnum, unsigned32 mask, ARMword *state);typedef int rdi_CPwrite_proc(unsigned CPnum, unsigned32 mask, ARMword const *state);typedef int rdi_setbreak_proc(ARMword address, unsigned type, ARMword bound,                              PointHandle *handle);typedef int rdi_clearbreak_proc(PointHandle handle);typedef int rdi_setwatch_proc(ARMword address, unsigned type, unsigned datatype,                              ARMword bound, PointHandle *handle);typedef int rdi_clearwatch_proc(PointHandle handle);typedef int rdi_execute_proc(PointHandle *handle);typedef int rdi_step_proc(unsigned ninstr, PointHandle *handle);typedef int rdi_info_proc(unsigned type, ARMword *arg1, ARMword *arg2);typedef int rdi_pointinq_proc(ARMword *address, unsigned type,                              unsigned datatype, ARMword *bound);typedef enum {    RDI_ConfigCPU,    RDI_ConfigSystem} RDI_ConfigAspect;typedef enum {    RDI_MatchAny,    RDI_MatchExactly,    RDI_MatchNoEarlier} RDI_ConfigMatchType;typedef int rdi_addconfig_proc(unsigned32 nbytes);typedef int rdi_loadconfigdata_proc(unsigned32 nbytes, char const *data);typedef int rdi_selectconfig_proc(RDI_ConfigAspect aspect, char const *name,                                  RDI_ConfigMatchType matchtype, unsigned versionreq,                                  unsigned *versionp);typedef char *getbufferproc(void *getbarg, unsigned32 *sizep);typedef int rdi_loadagentproc(ARMword dest, unsigned32 size, getbufferproc *getb, void *getbarg);typedef int rdi_targetisdead(void);typedef struct {    int itemmax;    char const * const *names;} RDI_NameList;typedef RDI_NameList const *rdi_namelistproc(void);typedef int rdi_errmessproc(char *buf, int buflen, int errnum);struct RDIProcVec {    char rditypename[12];    rdi_open_proc       *open;    rdi_close_proc      *close;    rdi_read_proc       *read;    rdi_write_proc      *write;    rdi_CPUread_proc    *CPUread;    rdi_CPUwrite_proc   *CPUwrite;    rdi_CPread_proc     *CPread;    rdi_CPwrite_proc    *CPwrite;    rdi_setbreak_proc   *setbreak;    rdi_clearbreak_proc *clearbreak;    rdi_setwatch_proc   *setwatch;    rdi_clearwatch_proc *clearwatch;    rdi_execute_proc    *execute;    rdi_step_proc       *step;    rdi_info_proc       *info;    /* V2 RDI */    rdi_pointinq_proc   *pointinquiry;    /* These three useable only if RDIInfo_DownLoad returns no error */    rdi_addconfig_proc  *addconfig;    rdi_loadconfigdata_proc *loadconfigdata;    rdi_selectconfig_proc *selectconfig;    rdi_namelistproc    *drivernames;    rdi_namelistproc    *cpunames;    rdi_errmessproc     *errmess;    /* Only if RDIInfo_Target returns a value with RDITarget_LoadAgent set */    rdi_loadagentproc   *loadagent;    rdi_targetisdead    *targetisdead;};#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -