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

Go to the source code of this file.

Data Structures

struct  riscv_batch
 
struct  riscv_scan_delays
 

Macros

#define RISCV_SCAN_DELAY_MAX   (INT_MAX / 2)
 

Enumerations

enum  riscv_scan_delay_class { RISCV_DELAY_BASE , RISCV_DELAY_ABSTRACT_COMMAND , RISCV_DELAY_SYSBUS_READ , RISCV_DELAY_SYSBUS_WRITE }
 
enum  riscv_scan_type { RISCV_SCAN_TYPE_INVALID , RISCV_SCAN_TYPE_NOP , RISCV_SCAN_TYPE_READ , RISCV_SCAN_TYPE_WRITE }
 

Functions

static size_t riscv_batch_add_dm_read (struct riscv_batch *batch, uint32_t address, enum riscv_scan_delay_class delay_type)
 
static void riscv_batch_add_dm_write (struct riscv_batch *batch, uint32_t address, uint32_t data, bool read_back, enum riscv_scan_delay_class delay_type)
 
size_t riscv_batch_add_dmi_read (struct riscv_batch *batch, uint32_t address, enum riscv_scan_delay_class delay_class)
 
void riscv_batch_add_dmi_write (struct riscv_batch *batch, uint32_t address, uint32_t data, bool read_back, enum riscv_scan_delay_class delay_class)
 
void riscv_batch_add_nop (struct riscv_batch *batch)
 
struct riscv_batchriscv_batch_alloc (struct target *target, size_t scans)
 
size_t riscv_batch_available_scans (struct riscv_batch *batch)
 
size_t riscv_batch_finished_scans (const struct riscv_batch *batch)
 
void riscv_batch_free (struct riscv_batch *batch)
 
bool riscv_batch_full (struct riscv_batch *batch)
 
uint32_t riscv_batch_get_dmi_read_data (const struct riscv_batch *batch, size_t key)
 
uint32_t riscv_batch_get_dmi_read_op (const struct riscv_batch *batch, size_t key)
 
int riscv_batch_run_from (struct riscv_batch *batch, size_t start_idx, const struct riscv_scan_delays *delays, bool resets_delays, size_t reset_delays_after)
 
bool riscv_batch_was_batch_busy (const struct riscv_batch *batch)
 
static const char * riscv_scan_delay_class_name (enum riscv_scan_delay_class delay_class)
 
static unsigned int riscv_scan_get_delay (const struct riscv_scan_delays *delays, enum riscv_scan_delay_class delay_class)
 
static int riscv_scan_increase_delay (struct riscv_scan_delays *delays, enum riscv_scan_delay_class delay_class)
 
static void riscv_scan_set_delay (struct riscv_scan_delays *delays, enum riscv_scan_delay_class delay_class, unsigned int delay)
 

Macro Definition Documentation

◆ RISCV_SCAN_DELAY_MAX

#define RISCV_SCAN_DELAY_MAX   (INT_MAX / 2)

Definition at line 55 of file batch.h.

Enumeration Type Documentation

◆ riscv_scan_delay_class

Enumerator
RISCV_DELAY_BASE 
RISCV_DELAY_ABSTRACT_COMMAND 
RISCV_DELAY_SYSBUS_READ 
RISCV_DELAY_SYSBUS_WRITE 

Definition at line 20 of file batch.h.

◆ riscv_scan_type

Enumerator
RISCV_SCAN_TYPE_INVALID 
RISCV_SCAN_TYPE_NOP 
RISCV_SCAN_TYPE_READ 
RISCV_SCAN_TYPE_WRITE 

Definition at line 10 of file batch.h.

Function Documentation

◆ riscv_batch_add_dm_read()

static size_t riscv_batch_add_dm_read ( struct riscv_batch batch,
uint32_t  address,
enum riscv_scan_delay_class  delay_type 
)
inlinestatic

◆ riscv_batch_add_dm_write()

static void riscv_batch_add_dm_write ( struct riscv_batch batch,
uint32_t  address,
uint32_t  data,
bool  read_back,
enum riscv_scan_delay_class  delay_type 
)
inlinestatic

◆ riscv_batch_add_dmi_read()

◆ riscv_batch_add_dmi_write()

◆ riscv_batch_add_nop()

◆ riscv_batch_alloc()

◆ riscv_batch_available_scans()

◆ riscv_batch_finished_scans()

size_t riscv_batch_finished_scans ( const struct riscv_batch batch)

◆ riscv_batch_free()

◆ riscv_batch_full()

bool riscv_batch_full ( struct riscv_batch batch)

Definition at line 107 of file batch.c.

References riscv_batch_available_scans().

◆ riscv_batch_get_dmi_read_data()

◆ riscv_batch_get_dmi_read_op()

uint32_t riscv_batch_get_dmi_read_op ( const struct riscv_batch batch,
size_t  key 
)

◆ riscv_batch_run_from()

◆ riscv_batch_was_batch_busy()

◆ riscv_scan_delay_class_name()

static const char* riscv_scan_delay_class_name ( enum riscv_scan_delay_class  delay_class)
inlinestatic

◆ riscv_scan_get_delay()

◆ riscv_scan_increase_delay()

◆ riscv_scan_set_delay()