OpenOCD
angie_cmd Struct Reference

ANGIE command (ANGIE command queue element). More...

Collaboration diagram for angie_cmd:

Data Fields

struct jtag_commandcmd_origin
 Pointer to corresponding OpenOCD command for post-processing. More...
 
bool free_payload_in_start
 Indicates if angie_clear_queue() should free payload_in_start
More...
 
uint8_t id
 ANGIE command ID. More...
 
bool needs_postprocessing
 Indicates if this command needs post-processing. More...
 
struct angie_cmdnext
 Pointer to next command (linked list) More...
 
uint8_t * payload_in
 Pointer where IN payload shall be stored. More...
 
uint8_t payload_in_size
 IN direction payload size for this command. More...
 
uint8_t * payload_in_start
 Pointer to first element of IN payload array. More...
 
uint8_t * payload_out
 Pointer where OUT payload shall be stored. More...
 
uint8_t payload_out_size
 OUT direction payload size for this command. More...
 

Detailed Description

ANGIE command (ANGIE command queue element).

For the OUT direction payload, things are quite easy: Payload is stored in a rather small array (up to 63 bytes), the payload is always allocated by the function generating the command and freed by angie_clear_queue().

For the IN direction payload, things get a little bit more complicated: The maximum IN payload size for a single command is 64 bytes. Assume that a single OpenOCD command needs to scan 256 bytes. This results in the generation of four ANGIE commands. The function generating these commands shall allocate an uint8_t[256] array. Each command's payload_in pointer shall point to the corresponding offset where IN data shall be placed, while payload_in_start shall point to the first element of the 256 byte array.

The last command sets needs_postprocessing to true.

Definition at line 114 of file angie.c.

Field Documentation

◆ cmd_origin

struct jtag_command* angie_cmd::cmd_origin

Pointer to corresponding OpenOCD command for post-processing.

Definition at line 131 of file angie.c.

Referenced by angie_post_process_queue(), and angie_post_process_scan().

◆ free_payload_in_start

bool angie_cmd::free_payload_in_start

Indicates if angie_clear_queue() should free payload_in_start

Definition at line 128 of file angie.c.

Referenced by angie_allocate_payload(), and angie_clear_queue().

◆ id

uint8_t angie_cmd::id

ANGIE command ID.

Definition at line 115 of file angie.c.

Referenced by angie_dump_command(), and angie_execute_queued_commands().

◆ needs_postprocessing

bool angie_cmd::needs_postprocessing

Indicates if this command needs post-processing.

Definition at line 125 of file angie.c.

Referenced by angie_post_process_queue().

◆ next

struct angie_cmd* angie_cmd::next

Pointer to next command (linked list)

Definition at line 133 of file angie.c.

Referenced by angie_clear_queue(), angie_dump_queue(), angie_execute_queued_commands(), angie_get_queue_size(), and angie_post_process_queue().

◆ payload_in

uint8_t* angie_cmd::payload_in

Pointer where IN payload shall be stored.

Definition at line 121 of file angie.c.

Referenced by angie_allocate_payload(), angie_clear_queue(), angie_execute_queued_commands(), and angie_init().

◆ payload_in_size

uint8_t angie_cmd::payload_in_size

IN direction payload size for this command.

Definition at line 122 of file angie.c.

Referenced by angie_allocate_payload(), angie_append_queue(), angie_dump_command(), angie_execute_queued_commands(), and angie_get_queue_size().

◆ payload_in_start

uint8_t* angie_cmd::payload_in_start

Pointer to first element of IN payload array.

Definition at line 120 of file angie.c.

Referenced by angie_allocate_payload(), angie_clear_queue(), and angie_post_process_scan().

◆ payload_out

uint8_t* angie_cmd::payload_out

Pointer where OUT payload shall be stored.

Definition at line 117 of file angie.c.

Referenced by angie_allocate_payload(), angie_clear_queue(), angie_dump_command(), and angie_execute_queued_commands().

◆ payload_out_size

uint8_t angie_cmd::payload_out_size

OUT direction payload size for this command.

Definition at line 118 of file angie.c.

Referenced by angie_allocate_payload(), angie_append_queue(), angie_dump_command(), angie_execute_queued_commands(), and angie_get_queue_size().


The documentation for this struct was generated from the following file: