OpenOCD
program.h File Reference
Include dependency graph for program.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  riscv_program
 

Macros

#define RISCV013_MAX_PROGBUF_SIZE   16
 

Enumerations

enum  riscv_progbuf_exec_result {
  RISCV_PROGBUF_EXEC_RESULT_NOT_EXECUTED , RISCV_PROGBUF_EXEC_RESULT_UNKNOWN , RISCV_PROGBUF_EXEC_RESULT_EXCEPTION , RISCV_PROGBUF_EXEC_RESULT_UNKNOWN_ERROR ,
  RISCV_PROGBUF_EXEC_RESULT_SUCCESS
}
 

Functions

int riscv_program_addi (struct riscv_program *p, enum gdb_regno d, enum gdb_regno s, int16_t i)
 
int riscv_program_csrr (struct riscv_program *p, enum gdb_regno d, enum gdb_regno csr)
 
int riscv_program_csrrci (struct riscv_program *p, enum gdb_regno d, uint8_t z, enum gdb_regno csr)
 
int riscv_program_csrrsi (struct riscv_program *p, enum gdb_regno d, uint8_t z, enum gdb_regno csr)
 
int riscv_program_csrw (struct riscv_program *p, enum gdb_regno s, enum gdb_regno csr)
 
int riscv_program_ebreak (struct riscv_program *p)
 
int riscv_program_exec (struct riscv_program *p, struct target *t)
 Add ebreak and execute the program. More...
 
int riscv_program_fence_i (struct riscv_program *p)
 
int riscv_program_fence_rw_rw (struct riscv_program *p)
 
int riscv_program_init (struct riscv_program *p, struct target *t)
 
int riscv_program_insert (struct riscv_program *p, riscv_insn_t i)
 
int riscv_program_lbr (struct riscv_program *p, enum gdb_regno d, enum gdb_regno a, int16_t o)
 
int riscv_program_ldr (struct riscv_program *p, enum gdb_regno d, enum gdb_regno a, int16_t o)
 
int riscv_program_lhr (struct riscv_program *p, enum gdb_regno d, enum gdb_regno a, int16_t o)
 
int riscv_program_load (struct riscv_program *p, enum gdb_regno d, enum gdb_regno b, int16_t o, unsigned int s)
 
int riscv_program_lwr (struct riscv_program *p, enum gdb_regno d, enum gdb_regno a, int16_t o)
 
int riscv_program_sbr (struct riscv_program *p, enum gdb_regno s, enum gdb_regno a, int16_t o)
 
int riscv_program_sdr (struct riscv_program *p, enum gdb_regno s, enum gdb_regno a, int16_t o)
 
int riscv_program_shr (struct riscv_program *p, enum gdb_regno s, enum gdb_regno a, int16_t o)
 
int riscv_program_store (struct riscv_program *p, enum gdb_regno d, enum gdb_regno b, int16_t o, unsigned int s)
 
int riscv_program_swr (struct riscv_program *p, enum gdb_regno s, enum gdb_regno a, int16_t o)
 
int riscv_program_write (struct riscv_program *program)
 

Macro Definition Documentation

◆ RISCV013_MAX_PROGBUF_SIZE

#define RISCV013_MAX_PROGBUF_SIZE   16

Definition at line 8 of file program.h.

Enumeration Type Documentation

◆ riscv_progbuf_exec_result

Enumerator
RISCV_PROGBUF_EXEC_RESULT_NOT_EXECUTED 
RISCV_PROGBUF_EXEC_RESULT_UNKNOWN 
RISCV_PROGBUF_EXEC_RESULT_EXCEPTION 
RISCV_PROGBUF_EXEC_RESULT_UNKNOWN_ERROR 
RISCV_PROGBUF_EXEC_RESULT_SUCCESS 

Definition at line 10 of file program.h.

Function Documentation

◆ riscv_program_addi()

int riscv_program_addi ( struct riscv_program p,
enum gdb_regno  d,
enum gdb_regno  s,
int16_t  i 
)

Definition at line 192 of file program.c.

References addi(), and riscv_program_insert().

Referenced by access_memory_progbuf(), and write_memory_progbuf().

◆ riscv_program_csrr()

int riscv_program_csrr ( struct riscv_program p,
enum gdb_regno  d,
enum gdb_regno  csr 
)

Definition at line 159 of file program.c.

References csr, csrrs(), GDB_REGNO_CSR0, GDB_REGNO_CSR4095, GDB_REGNO_ZERO, and riscv_program_insert().

Referenced by csr_read_progbuf().

◆ riscv_program_csrrci()

int riscv_program_csrrci ( struct riscv_program p,
enum gdb_regno  d,
uint8_t  z,
enum gdb_regno  csr 
)

Definition at line 153 of file program.c.

References csr, csrrci(), GDB_REGNO_CSR0, GDB_REGNO_CSR4095, and riscv_program_insert().

◆ riscv_program_csrrsi()

int riscv_program_csrrsi ( struct riscv_program p,
enum gdb_regno  d,
uint8_t  z,
enum gdb_regno  csr 
)

Definition at line 147 of file program.c.

References csr, csrrsi(), GDB_REGNO_CSR0, GDB_REGNO_CSR4095, and riscv_program_insert().

◆ riscv_program_csrw()

int riscv_program_csrw ( struct riscv_program p,
enum gdb_regno  s,
enum gdb_regno  csr 
)

Definition at line 165 of file program.c.

References csr, csrrw(), GDB_REGNO_CSR0, GDB_REGNO_CSR4095, GDB_REGNO_ZERO, and riscv_program_insert().

Referenced by csr_write_progbuf().

◆ riscv_program_ebreak()

◆ riscv_program_exec()

◆ riscv_program_fence_i()

int riscv_program_fence_i ( struct riscv_program p)

Definition at line 171 of file program.c.

References fence_i(), and riscv_program_insert().

Referenced by execute_autofence().

◆ riscv_program_fence_rw_rw()

int riscv_program_fence_rw_rw ( struct riscv_program p)

Definition at line 176 of file program.c.

References fence_rw_rw(), and riscv_program_insert().

Referenced by execute_autofence().

◆ riscv_program_init()

◆ riscv_program_insert()

◆ riscv_program_lbr()

int riscv_program_lbr ( struct riscv_program p,
enum gdb_regno  d,
enum gdb_regno  a,
int16_t  o 
)

Definition at line 125 of file program.c.

References lb(), offset, and riscv_program_insert().

Referenced by riscv_program_load().

◆ riscv_program_ldr()

int riscv_program_ldr ( struct riscv_program p,
enum gdb_regno  d,
enum gdb_regno  a,
int16_t  o 
)

Definition at line 110 of file program.c.

References ld(), offset, and riscv_program_insert().

Referenced by riscv_program_load().

◆ riscv_program_lhr()

int riscv_program_lhr ( struct riscv_program p,
enum gdb_regno  d,
enum gdb_regno  a,
int16_t  o 
)

Definition at line 120 of file program.c.

References lh(), offset, and riscv_program_insert().

Referenced by riscv_program_load().

◆ riscv_program_load()

int riscv_program_load ( struct riscv_program p,
enum gdb_regno  d,
enum gdb_regno  b,
int16_t  o,
unsigned int  s 
)

◆ riscv_program_lwr()

int riscv_program_lwr ( struct riscv_program p,
enum gdb_regno  d,
enum gdb_regno  a,
int16_t  o 
)

Definition at line 115 of file program.c.

References lw(), offset, and riscv_program_insert().

Referenced by riscv_program_load().

◆ riscv_program_sbr()

int riscv_program_sbr ( struct riscv_program p,
enum gdb_regno  s,
enum gdb_regno  a,
int16_t  o 
)

Definition at line 88 of file program.c.

References offset, riscv_program_insert(), and sb().

Referenced by riscv_program_store().

◆ riscv_program_sdr()

int riscv_program_sdr ( struct riscv_program p,
enum gdb_regno  s,
enum gdb_regno  a,
int16_t  o 
)

Definition at line 73 of file program.c.

References offset, riscv_program_insert(), and sd().

Referenced by riscv_program_store().

◆ riscv_program_shr()

int riscv_program_shr ( struct riscv_program p,
enum gdb_regno  s,
enum gdb_regno  a,
int16_t  o 
)

Definition at line 83 of file program.c.

References offset, riscv_program_insert(), and sh().

Referenced by riscv_program_store().

◆ riscv_program_store()

int riscv_program_store ( struct riscv_program p,
enum gdb_regno  d,
enum gdb_regno  b,
int16_t  o,
unsigned int  s 
)

◆ riscv_program_swr()

int riscv_program_swr ( struct riscv_program p,
enum gdb_regno  s,
enum gdb_regno  a,
int16_t  o 
)

Definition at line 78 of file program.c.

References offset, riscv_program_insert(), and sw().

Referenced by riscv_program_store().

◆ riscv_program_write()