OpenOCD
register_write_direct()
is only used within OpenOCD.
Symbol previews are coming soon...
Symbols
loading...
Files
loading...
CodeScope
Development Tools
OpenOCD
register_write_direct()
register_write_direct() function
Immediately write the new value to the requested register. This mechanism bypasses any caches.
Syntax
from
riscv-013.c:62
static
int
register_write_direct
(
struct
target
*
target
,
unsigned
number
,
uint64_t
value
)
;
Implemented in
riscv-013.c:1296
Arguments
target
number
value
References
Location
Referrer
Text
riscv-013.c:1296
static
int
register_write_direct
(
struct
target
*
target
,
unsigned
number
,
riscv-013.c:62
static
int
register_write_direct
(
struct
target
*
target
,
unsigned
number
,
riscv-013.c:1038
examine_progbuf()
if
(
register_write_direct
(
target
,
GDB_REGNO_S0
,
s0
)
!=
ERROR_OK
)
riscv-013.c:1091
prep_for_register_access()
if
(
register_write_direct
(
target
,
GDB_REGNO_MSTATUS
,
riscv-013.c:1095
prep_for_register_access()
if
(
register_write_direct
(
target
,
GDB_REGNO_MSTATUS
,
riscv-013.c:1110
cleanup_after_register_access()
if
(
register_write_direct
(
target
,
GDB_REGNO_MSTATUS
,
mstatus
)
!=
ERROR_OK
)
riscv-013.c:1332
register_write_direct()
if
(
register_write_direct
(
target
,
GDB_REGNO_S0
,
scratch
.
hart_address
)
riscv-013.c:1348
register_write_direct()
if
(
register_write_direct
(
target
,
GDB_REGNO_S0
,
value
)
!=
ERROR_OK
)
riscv-013.c:1387
register_write_direct()
if
(
register_write_direct
(
target
,
GDB_REGNO_S0
,
s0
)
!=
ERROR_OK
)
riscv-013.c:1447
register_read_direct()
if
(
register_write_direct
(
target
,
GDB_REGNO_S0
,
riscv-013.c:1483
register_read_direct()
if
(
register_write_direct
(
target
,
GDB_REGNO_S0
,
s0
)
!=
ERROR_OK
)
riscv-013.c:1931
prep_for_vector_access()
if
(
register_write_direct
(
target
,
GDB_REGNO_VTYPE
,
encoded_vsew
<
<
3
)
!=
ERROR_OK
)
riscv-013.c:1934
prep_for_vector_access()
if
(
register_write_direct
(
target
,
GDB_REGNO_VL
,
*
debug_vl
)
!=
ERROR_OK
)
riscv-013.c:1944
cleanup_after_vector_access()
if
(
register_write_direct
(
target
,
GDB_REGNO_VTYPE
,
vtype
)
!=
ERROR_OK
)
riscv-013.c:1946
cleanup_after_vector_access()
if
(
register_write_direct
(
target
,
GDB_REGNO_VL
,
vl
)
!=
ERROR_OK
)
riscv-013.c:2004
riscv013_get_register_buf()
if
(
register_write_direct
(
target
,
GDB_REGNO_S0
,
s0
)
!=
ERROR_OK
)
riscv-013.c:2039
riscv013_set_register_buf()
if
(
register_write_direct
(
target
,
GDB_REGNO_S0
,
riscv-013.c:2052
riscv013_set_register_buf()
if
(
register_write_direct
(
target
,
GDB_REGNO_S0
,
s0
)
!=
ERROR_OK
)
riscv-013.c:2580
modify_privilege()
if
(
register_write_direct
(
target
,
GDB_REGNO_MSTATUS
,
*
mstatus
)
!=
ERROR_OK
)
riscv-013.c:3113
read_memory_progbuf_inner()
result
=
register_write_direct
(
target
,
GDB_REGNO_S0
,
address
)
;
riscv-013.c:3118
read_memory_progbuf_inner()
register_write_direct
(
target
,
GDB_REGNO_S2
,
0
)
!=
ERROR_OK
)
riscv-013.c:3407
read_memory_progbuf_one()
if
(
register_write_direct
(
target
,
GDB_REGNO_MSTATUS
,
mstatus_old
)
)
riscv-013.c:3526
read_memory_progbuf()
if
(
register_write_direct
(
target
,
GDB_REGNO_MSTATUS
,
mstatus_old
)
)
riscv-013.c:3881
write_memory_progbuf()
result
=
register_write_direct
(
target
,
GDB_REGNO_S0
,
riscv-013.c:3965
write_memory_progbuf()
if
(
register_write_direct
(
target
,
GDB_REGNO_S1
,
s1
)
!=
ERROR_OK
)
riscv-013.c:3967
write_memory_progbuf()
if
(
register_write_direct
(
target
,
GDB_REGNO_S0
,
s0
)
!=
ERROR_OK
)
riscv-013.c:3972
write_memory_progbuf()
if
(
register_write_direct
(
target
,
GDB_REGNO_MSTATUS
,
mstatus_old
)
)
riscv-013.c:4103
riscv013_set_register()
return
register_write_direct
(
target
,
rid
,
value
)
;
riscv-013.c:4106
riscv013_set_register()
register_write_direct
(
target
,
GDB_REGNO_DPC
,
value
)
;
riscv-013.c:4120
riscv013_set_register()
return
register_write_direct
(
target
,
GDB_REGNO_DCSR
,
dcsr
)
;
riscv-013.c:4122
riscv013_set_register()
return
register_write_direct
(
target
,
rid
,
value
)
;
Call Tree
Functions calling
register_write_direct()
Functions called by
register_write_direct()
examine_progbuf()
prep_for_register_access()
cleanup_after_register_access()
register_write_direct()
register_read_direct()
prep_for_vector_access()
cleanup_after_vector_access()
riscv013_get_register_buf()
riscv013_set_register_buf()
modify_privilege()
read_memory_progbuf_inner()
read_memory_progbuf_one()
read_memory_progbuf()
write_memory_progbuf()
riscv013_set_register()
all items filtered out
register_write_direct()
log_printf_lf()
buf_set_u64()
csrr()
fld()
fmv_w_x()
fmv_d_x()
vsetvli()
riscv_supports_extension()
riscv_xlen()
riscv_current_hartid()
riscv_is_halted()
gdb_regno_name()
riscv_program_init()
riscv_program_exec()
riscv_program_csrw()
riscv_program_insert()
register_write_abstract()
prep_for_register_access()
cleanup_after_register_access()
register_size()
has_sufficient_progbuf()
register_write_direct()
register_read()
scratch_reserve()
scratch_release()
scratch_write64()
all items filtered out
Data read by
register_write_direct()
Data written by
register_write_direct()
log_levels::LOG_LVL_ERROR
log_levels::LOG_LVL_DEBUG
debug_level
target::reg_cache
reg::value
reg::size
reg_cache::reg_list
gdb_regno::GDB_REGNO_S0
gdb_regno::GDB_REGNO_FPR0
gdb_regno::GDB_REGNO_FPR31
gdb_regno::GDB_REGNO_CSR0
gdb_regno::GDB_REGNO_VL
gdb_regno::GDB_REGNO_VTYPE
gdb_regno::GDB_REGNO_CSR4095
scratch_mem_t::hart_address
register_write_direct()::target
register_write_direct()::number
register_write_direct()::value
register_write_direct()::result
register_write_direct()::s0
register_write_direct()::mstatus
register_write_direct()::scratch
register_write_direct()::use_scratch
register_write_direct()::vtype
register_write_direct()::exec_out
register_write_direct()::reg
all items filtered out
register_write_direct()
register_write_direct()::use_scratch
all items filtered out
Type of
register_write_direct()
register_write_direct()
uint64_t
reg
riscv_reg_t
riscv_program
scratch_mem_t
all items filtered out