get_field is only used within OpenOCD.
 
Symbols
loading...
Files
loading...

get_field macro

Since almost everything can be accomplish by scanning the dbus register, all functions here assume dbus is already selected. The exception are functions called directly by OpenOCD, which can't assume anything about what's currently in IR. They should set IR to dbus explicitly.

Syntax

#define get_field(reg, mask) (((reg) & (mask)) / ((mask) & ~((mask) << 1)))

Arguments

reg

mask

References

LocationText
batch.c:11
#define get_field(reg, mask) (((reg) & (mask)) / ((mask) & ~((mask) << 1)))
riscv-011.c:70
#define get_field(reg, mask) (((reg) & (mask)) / ((mask) & ~((mask) << 1)))
riscv-013.c:76
#define get_field(reg, mask) (((reg) & (mask)) / ((mask) & ~((mask) << 1)))
riscv.c:26
#define get_field(reg, mask) (((reg) & (mask)) / ((mask) & ~((mask) << 1)))
batch.c:202
unsigned int out_op = get_field(out, DTM_DMI_OP);
batch.c:203
unsigned int out_data = get_field(out, DTM_DMI_DATA);
batch.c:208
unsigned int in_op = get_field(in, DTM_DMI_OP);
batch.c:209
unsigned int in_data = get_field(in, DTM_DMI_DATA);
riscv-011.c:725
.haltnot = get_field(value, DMCONTROL_HALTNOT),
riscv-011.c:726
.interrupt = get_field(value, DMCONTROL_INTERRUPT)
riscv-011.c:1372
*value = get_field(info->dcsr, DCSR_PRV);
riscv-011.c:1474
LOG_DEBUG(" addrbits=%d", get_field(dtmcontrol, DTMCONTROL_ADDRBITS));
riscv-011.c:1475
LOG_DEBUG(" version=%d", get_field(dtmcontrol, DTMCONTROL_VERSION));
riscv-011.c:1476
LOG_DEBUG(" idle=%d", get_field(dtmcontrol, DTMCONTROL_IDLE));
riscv-011.c:1481
if (get_field(dtmcontrol, DTMCONTROL_VERSION) != 0) {
riscv-011.c:1483
get_field(dtmcontrol, DTMCONTROL_VERSION), dtmcontrol);
riscv-011.c:1490
info->addrbits = get_field(dtmcontrol, DTMCONTROL_ADDRBITS);
riscv-011.c:1491
info->dtmcontrol_idle = get_field(dtmcontrol, DTMCONTROL_IDLE);
riscv-011.c:1501
LOG_DEBUG(" abussize=0x%x", get_field(dminfo, DMINFO_ABUSSIZE));
riscv-011.c:1502
LOG_DEBUG(" serialcount=0x%x", get_field(dminfo, DMINFO_SERIALCOUNT));
riscv-011.c:1503
LOG_DEBUG(" access128=%d", get_field(dminfo, DMINFO_ACCESS128));
riscv-011.c:1504
LOG_DEBUG(" access64=%d", get_field(dminfo, DMINFO_ACCESS64));
riscv-011.c:1505
LOG_DEBUG(" access32=%d", get_field(dminfo, DMINFO_ACCESS32));
riscv-011.c:1506
LOG_DEBUG(" access16=%d", get_field(dminfo, DMINFO_ACCESS16));
riscv-011.c:1507
LOG_DEBUG(" access8=%d", get_field(dminfo, DMINFO_ACCESS8));
riscv-011.c:1508
LOG_DEBUG(" dramsize=0x%x", get_field(dminfo, DMINFO_DRAMSIZE));
riscv-011.c:1509
LOG_DEBUG(" authenticated=0x%x", get_field(dminfo, DMINFO_AUTHENTICATED));
riscv-011.c:1510
LOG_DEBUG(" authbusy=0x%x", get_field(dminfo, DMINFO_AUTHBUSY));
riscv-011.c:1511
LOG_DEBUG(" authtype=0x%x", get_field(dminfo, DMINFO_AUTHTYPE));
riscv-011.c:1512
LOG_DEBUG(" version=0x%x", get_field(dminfo, DMINFO_VERSION));
riscv-011.c:1514
if (get_field(dminfo, DMINFO_VERSION) != 1) {
riscv-011.c:1516
"(dminfo=0x%x)", get_field(dminfo, DMINFO_VERSION), dminfo);
riscv-011.c:1520
info->dramsize = get_field(dminfo, DMINFO_DRAMSIZE) + 1;
riscv-011.c:1522
if (get_field(dminfo, DMINFO_AUTHTYPE) != 0) {
riscv-011.c:1844
int cause = get_field(info->dcsr, DCSR_CAUSE);
riscv-011.c:2315
riscv_print_info_line(CMD, "dm", "authenticated", get_field(dminfo, DMINFO_AUTHENTICATED));
riscv-011.c:2325
if (!get_field(dminfo, DMINFO_AUTHBUSY))
riscv-013.c:356
unsigned value = get_field(data, mask);
riscv-013.c:381
unsigned int out_op = get_field(out, DTM_DMI_OP);
riscv-013.c:382
unsigned int out_data = get_field(out, DTM_DMI_DATA);
riscv-013.c:386
unsigned int in_op = get_field(in, DTM_DMI_OP);
riscv-013.c:387
unsigned int in_data = get_field(in, DTM_DMI_DATA);
riscv-013.c:689
int dmstatus_version = get_field(*dmstatus, DM_DMSTATUS_VERSION);
riscv-013.c:694
riscv-013.c:695
} else if (authenticated && !get_field(*dmstatus, DM_DMSTATUS_AUTHENTICATED)) {
riscv-013.c:743
if (get_field(*abstractcs, DM_ABSTRACTCS_BUSY) == 0)
riscv-013.c:747
info->cmderr = get_field(*abstractcs, DM_ABSTRACTCS_CMDERR);
riscv-013.c:776
switch (get_field(command, DM_COMMAND_CMDTYPE)) {
riscv-013.c:781
riscv-013.c:782
riscv-013.c:783
riscv-013.c:784
riscv-013.c:785
riscv-013.c:799
info->cmderr = get_field(abstractcs, DM_ABSTRACTCS_CMDERR);
riscv-013.c:1504
if (!get_field(value, DM_DMSTATUS_AUTHBUSY))
riscv-013.c:1540
*supported = get_field(read, DM_DMCS2_GROUP) == (unsigned)target->smp;
riscv-013.c:1568
LOG_DEBUG(" dmireset=%d", get_field(dtmcontrol, DTM_DTMCS_DMIRESET));
riscv-013.c:1569
LOG_DEBUG(" idle=%d", get_field(dtmcontrol, DTM_DTMCS_IDLE));
riscv-013.c:1570
LOG_DEBUG(" dmistat=%d", get_field(dtmcontrol, DTM_DTMCS_DMISTAT));
riscv-013.c:1571
LOG_DEBUG(" abits=%d", get_field(dtmcontrol, DTM_DTMCS_ABITS));
riscv-013.c:1572
LOG_DEBUG(" version=%d", get_field(dtmcontrol, DTM_DTMCS_VERSION));
riscv-013.c:1577
if (get_field(dtmcontrol, DTM_DTMCS_VERSION) != 1) {
riscv-013.c:1579
get_field(dtmcontrol, DTM_DTMCS_VERSION), dtmcontrol);
riscv-013.c:1586
info->abits = get_field(dtmcontrol, DTM_DTMCS_ABITS);
riscv-013.c:1587
info->dtmcs_idle = get_field(dtmcontrol, DTM_DTMCS_IDLE);
riscv-013.c:1606
if (!get_field(dmcontrol, DM_DMCONTROL_DMACTIVE)) {
riscv-013.c:1612
dm->hasel_supported = get_field(dmcontrol, DM_DMCONTROL_HASEL);
riscv-013.c:1618
int dmstatus_version = get_field(dmstatus, DM_DMSTATUS_VERSION);
riscv-013.c:1625
(get_field(dmcontrol, DM_DMCONTROL_HARTSELHI) <<
riscv-013.c:1627
get_field(dmcontrol, DM_DMCONTROL_HARTSELLO);
riscv-013.c:1639
info->datasize = get_field(hartinfo, DM_HARTINFO_DATASIZE);
riscv-013.c:1640
info->dataaccess = get_field(hartinfo, DM_HARTINFO_DATAACCESS);
riscv-013.c:1641
info->dataaddr = get_field(hartinfo, DM_HARTINFO_DATAADDR);
riscv-013.c:1643
if (!get_field(dmstatus, DM_DMSTATUS_AUTHENTICATED)) {
riscv-013.c:1661
info->datacount = get_field(abstractcs, DM_ABSTRACTCS_DATACOUNT);
riscv-013.c:1662
info->progbufsize = get_field(abstractcs, DM_ABSTRACTCS_PROGBUFSIZE);
riscv-013.c:1667
r->impebreak = get_field(dmstatus, DM_DMSTATUS_IMPEBREAK);
riscv-013.c:1693
if (get_field(s, DM_DMSTATUS_ANYNONEXISTENT))
riscv-013.c:1697
if (get_field(s, DM_DMSTATUS_ANYHAVERESET))
riscv-013.c:1811
if (!get_field(before, DM_DMSTATUS_AUTHENTICATED) &&
riscv-013.c:1812
get_field(after, DM_DMSTATUS_AUTHENTICATED)) {
riscv-013.c:1849
if (get_field(info->sbcs, DM_SBCS_SBACCESS128))
riscv-013.c:1851
if (get_field(info->sbcs, DM_SBCS_SBACCESS64))
riscv-013.c:1853
if (get_field(info->sbcs, DM_SBCS_SBACCESS32))
riscv-013.c:1855
if (get_field(info->sbcs, DM_SBCS_SBACCESS16))
riscv-013.c:1857
if (get_field(info->sbcs, DM_SBCS_SBACCESS8))
riscv-013.c:1877
riscv_print_info_line(CMD, "target", "memory.read_while_running8", get_field(info->sbcs, DM_SBCS_SBACCESS8));
riscv-013.c:1878
riscv_print_info_line(CMD, "target", "memory.write_while_running8", get_field(info->sbcs, DM_SBCS_SBACCESS8));
riscv-013.c:1879
riscv_print_info_line(CMD, "target", "memory.read_while_running16", get_field(info->sbcs, DM_SBCS_SBACCESS16));
riscv-013.c:1880
riscv_print_info_line(CMD, "target", "memory.write_while_running16", get_field(info->sbcs, DM_SBCS_SBACCESS16));
riscv-013.c:1881
riscv_print_info_line(CMD, "target", "memory.read_while_running32", get_field(info->sbcs, DM_SBCS_SBACCESS32));
riscv-013.c:1882
riscv_print_info_line(CMD, "target", "memory.write_while_running32", get_field(info->sbcs, DM_SBCS_SBACCESS32));
riscv-013.c:1883
riscv_print_info_line(CMD, "target", "memory.read_while_running64", get_field(info->sbcs, DM_SBCS_SBACCESS64));
riscv-013.c:1884
riscv_print_info_line(CMD, "target", "memory.write_while_running64", get_field(info->sbcs, DM_SBCS_SBACCESS64));
riscv-013.c:1885
riscv_print_info_line(CMD, "target", "memory.read_while_running128", get_field(info->sbcs, DM_SBCS_SBACCESS128));
riscv-013.c:1886
riscv_print_info_line(CMD, "target", "memory.write_while_running128", get_field(info->sbcs, DM_SBCS_SBACCESS128));
riscv-013.c:1891
riscv_print_info_line(CMD, "dm", "sbversion", get_field(info->sbcs, DM_SBCS_SBVERSION));
riscv-013.c:1892
riscv_print_info_line(CMD, "dm", "sbasize", get_field(info->sbcs, DM_SBCS_SBASIZE));
riscv-013.c:1893
riscv_print_info_line(CMD, "dm", "sbaccess128", get_field(info->sbcs, DM_SBCS_SBACCESS128));
riscv-013.c:1894
riscv_print_info_line(CMD, "dm", "sbaccess64", get_field(info->sbcs, DM_SBCS_SBACCESS64));
riscv-013.c:1895
riscv_print_info_line(CMD, "dm", "sbaccess32", get_field(info->sbcs, DM_SBCS_SBACCESS32));
riscv-013.c:1896
riscv_print_info_line(CMD, "dm", "sbaccess16", get_field(info->sbcs, DM_SBCS_SBACCESS16));
riscv-013.c:1897
riscv_print_info_line(CMD, "dm", "sbaccess8", get_field(info->sbcs, DM_SBCS_SBACCESS8));
riscv-013.c:1901
riscv_print_info_line(CMD, "dm", "authenticated", get_field(dmstatus, DM_DMSTATUS_AUTHENTICATED));
riscv-013.c:2080
unsigned int sbasize = get_field(info->sbcs, DM_SBCS_SBASIZE);
riscv-013.c:2112
return get_field(info->sbcs, DM_SBCS_SBACCESS8);
riscv-013.c:2114
return get_field(info->sbcs, DM_SBCS_SBACCESS16);
riscv-013.c:2116
return get_field(info->sbcs, DM_SBCS_SBACCESS32);
riscv-013.c:2118
return get_field(info->sbcs, DM_SBCS_SBACCESS64);
riscv-013.c:2120
return get_field(info->sbcs, DM_SBCS_SBACCESS128);
riscv-013.c:2132
unsigned int sbasize = get_field(info->sbcs, DM_SBCS_SBASIZE);
riscv-013.c:2138
if (get_field(info->sbcs, DM_SBCS_SBVERSION) != 1) {
riscv-013.c:2225
if (get_field(sbcs_read, DM_SBCS_SBBUSYERROR)) {
riscv-013.c:2233
if (get_field(sbcs_read, DM_SBCS_SBERROR)) {
riscv-013.c:2435
if (!get_field(dmstatus, DM_DMSTATUS_ALLUNAVAIL))
riscv-013.c:2447
if (get_field(dmstatus, DM_DMSTATUS_ALLHAVERESET)) {
riscv-013.c:2527
unsigned sbasize = get_field(info->sbcs, DM_SBCS_SBASIZE);
riscv-013.c:2546
if (!get_field(*sbcs, DM_SBCS_SBBUSY))
riscv-013.c:2571
if (get_field(dcsr, DCSR_PRV) < 3) {
riscv-013.c:2573
*mstatus = set_field(*mstatus, MSTATUS_MPP, get_field(dcsr, DCSR_PRV));
riscv-013.c:2777
if (!get_field(sbcs_read, DM_SBCS_SBERROR) &&
riscv-013.c:2778
!get_field(sbcs_read, DM_SBCS_SBBUSYERROR)) {
riscv-013.c:2787
if (get_field(sbcs_read, DM_SBCS_SBBUSYERROR)) {
riscv-013.c:2796
unsigned error = get_field(sbcs_read, DM_SBCS_SBERROR);
riscv-013.c:2897
unsigned int sbasize = get_field(info->sbcs, DM_SBCS_SBASIZE);
riscv-013.c:2904
if (read && increment != size && (get_field(info->sbcs, DM_SBCS_SBVERSION) == 0 || increment != 0)) {
riscv-013.c:3184
while (get_field(abstractcs, DM_ABSTRACTCS_BUSY))
riscv-013.c:3187
info->cmderr = get_field(abstractcs, DM_ABSTRACTCS_CMDERR);
riscv-013.c:3358
riscv-013.c:3377
riscv-013.c:3460
riscv-013.c:3481
riscv-013.c:3566
if (get_field(info->sbcs, DM_SBCS_SBVERSION) == 0)
riscv-013.c:3568
else if (get_field(info->sbcs, DM_SBCS_SBVERSION) == 1)
riscv-013.c:3729
while (get_field(sbcs, DM_SBCS_SBBUSY)) {
riscv-013.c:3740
if (get_field(sbcs, DM_SBCS_SBBUSYERROR)) {
riscv-013.c:3749
if (get_field(sbcs, DM_SBCS_SBBUSYERROR) || dmi_busy_encountered) {
riscv-013.c:3764
unsigned int sberror = get_field(sbcs, DM_SBCS_SBERROR);
riscv-013.c:3823
riscv-013.c:3845
riscv-013.c:3935
while (get_field(abstractcs, DM_ABSTRACTCS_BUSY))
riscv-013.c:3938
info->cmderr = get_field(abstractcs, DM_ABSTRACTCS_CMDERR);
riscv-013.c:4012
if (get_field(info->sbcs, DM_SBCS_SBVERSION) == 0)
riscv-013.c:4014
else if (get_field(info->sbcs, DM_SBCS_SBVERSION) == 1)
riscv-013.c:4085
*value = set_field(0, VIRT_PRIV_V, get_field(dcsr, CSR_DCSR_V));
riscv-013.c:4086
riscv-013.c:4118
dcsr = set_field(dcsr, CSR_DCSR_PRV, get_field(value, VIRT_PRIV_PRV));
riscv-013.c:4119
dcsr = set_field(dcsr, CSR_DCSR_V, get_field(value, VIRT_PRIV_V));
riscv-013.c:4293
if (get_field(dmstatus, DM_DMSTATUS_ANYUNAVAIL))
riscv-013.c:4295
if (get_field(dmstatus, DM_DMSTATUS_ANYNONEXISTENT))
riscv-013.c:4297
if (get_field(dmstatus, DM_DMSTATUS_ANYHAVERESET)) {
riscv-013.c:4313
return get_field(dmstatus, DM_DMSTATUS_ALLHALTED);
riscv-013.c:4323
LOG_DEBUG("dcsr.cause: 0x%" PRIx64, get_field(dcsr, CSR_DCSR_CAUSE));
riscv-013.c:4325
switch (get_field(dcsr, CSR_DCSR_CAUSE)) {
riscv-013.c:4344
LOG_ERROR("Unknown DCSR cause field: 0x%" PRIx64, get_field(dcsr, CSR_DCSR_CAUSE));
riscv-013.c:4462
if (get_field(dmstatus, DM_DMSTATUS_ALLRESUMEACK) == 0)
riscv-013.c:4464
if (step && get_field(dmstatus, DM_DMSTATUS_ALLHALTED) == 0)
riscv-013.c:4493
while (get_field(abstractcs, DM_ABSTRACTCS_BUSY)) {
riscv.c:711
int type = get_field(tdata1, MCONTROL_TYPE(riscv_xlen(target)));
riscv.c:1132
info->dtm_version = get_field(dtmcontrol, DTMCONTROL_VERSION);
riscv.c:1545
if ((get_field(mstatus, MSTATUS_MPRV) ? get_field(mstatus, MSTATUS_MPP) : priv) == PRV_M) {
riscv.c:1559
if (get_field(satp, RISCV_SATP_MODE(riscv_xlen(target))) == SATP_MODE_OFF) {
riscv.c:1587
mode = get_field(satp_value, RISCV_SATP_MODE(xlen));
riscv.c:1619
ppn_value = get_field(satp_value, RISCV_SATP_PPN(xlen));
riscv.c:3488
int type = get_field(tdata1, MCONTROL_TYPE(riscv_xlen(target)));