diff options
Diffstat (limited to 'tools/debugger/pdb/linux-2.6-module/pdb_module.h')
-rw-r--r-- | tools/debugger/pdb/linux-2.6-module/pdb_module.h | 48 |
1 files changed, 40 insertions, 8 deletions
diff --git a/tools/debugger/pdb/linux-2.6-module/pdb_module.h b/tools/debugger/pdb/linux-2.6-module/pdb_module.h index fc95bdb47a..a7e679ecdf 100644 --- a/tools/debugger/pdb/linux-2.6-module/pdb_module.h +++ b/tools/debugger/pdb/linux-2.6-module/pdb_module.h @@ -14,20 +14,27 @@ typedef struct pdb_op_attach #define PDB_OPCODE_DETACH 3 -#define PDB_OPCODE_RD_REGS 4 +#define PDB_OPCODE_RD_REG 4 +typedef struct pdb_op_rd_reg +{ + u32 reg; + u32 value; +} pdb_op_rd_reg_t, *pdb_op_rd_reg_p; + +#define PDB_OPCODE_RD_REGS 5 typedef struct pdb_op_rd_regs { u32 reg[GDB_REGISTER_FRAME_SIZE]; } pdb_op_rd_regs_t, *pdb_op_rd_regs_p; -#define PDB_OPCODE_WR_REG 5 +#define PDB_OPCODE_WR_REG 6 typedef struct pdb_op_wr_reg { u32 reg; u32 value; } pdb_op_wr_reg_t, *pdb_op_wr_reg_p; -#define PDB_OPCODE_RD_MEM 6 +#define PDB_OPCODE_RD_MEM 7 typedef struct pdb_op_rd_mem_req { u32 address; @@ -41,7 +48,7 @@ typedef struct pdb_op_rd_mem_resp u8 data[1024]; } pdb_op_rd_mem_resp_t, *pdb_op_rd_mem_resp_p; -#define PDB_OPCODE_WR_MEM 7 +#define PDB_OPCODE_WR_MEM 8 typedef struct pdb_op_wr_mem { u32 address; @@ -49,17 +56,34 @@ typedef struct pdb_op_wr_mem u8 data[1024]; /* arbitrary */ } pdb_op_wr_mem_t, *pdb_op_wr_mem_p; -#define PDB_OPCODE_CONTINUE 8 -#define PDB_OPCODE_STEP 9 +#define PDB_OPCODE_CONTINUE 9 +#define PDB_OPCODE_STEP 10 -#define PDB_OPCODE_SET_BKPT 10 -#define PDB_OPCODE_CLR_BKPT 11 +#define PDB_OPCODE_SET_BKPT 11 +#define PDB_OPCODE_CLR_BKPT 12 typedef struct pdb_op_bkpt { u32 address; u32 length; } pdb_op_bkpt_t, *pdb_op_bkpt_p; +#define PDB_OPCODE_SET_WATCHPT 13 +#define PDB_OPCODE_CLR_WATCHPT 14 +#define PDB_OPCODE_WATCHPOINT 15 +typedef struct pdb_op_watchpt +{ +#define BWC_DEBUG 1 +#define BWC_INT3 3 +#define BWC_WATCH 100 /* pdb: watchpoint page */ +#define BWC_WATCH_STEP 101 /* pdb: watchpoint single step */ +#define BWC_WATCH_WRITE 102 +#define BWC_WATCH_READ 103 +#define BWC_WATCH_ACCESS 104 + u32 type; + u32 address; + u32 length; +} pdb_op_watchpt_t, *pdb_op_watchpt_p; + typedef struct { @@ -68,10 +92,12 @@ typedef struct union { pdb_op_attach_t attach; + pdb_op_rd_reg_t rd_reg; pdb_op_wr_reg_t wr_reg; pdb_op_rd_mem_req_t rd_mem; pdb_op_wr_mem_t wr_mem; pdb_op_bkpt_t bkpt; + pdb_op_watchpt_t watchpt; } u; } pdb_request_t, *pdb_request_p; @@ -87,6 +113,7 @@ typedef struct { s16 status; /* PDB_RESPONSE_??? */ union { + pdb_op_rd_reg_t rd_reg; pdb_op_rd_regs_t rd_regs; pdb_op_rd_mem_resp_t rd_mem; } u; @@ -95,6 +122,11 @@ typedef struct { DEFINE_RING_TYPES(pdb, pdb_request_t, pdb_response_t); + +/* from access_process_vm */ +#define PDB_MEM_READ 0 +#define PDB_MEM_WRITE 1 + #endif |