rename CEIL as DIV_ROUND_UP
[openocd.git] / src / jtag / jtag.h
index 1dfefdef595da991ce8836dfe9d8e0fb5716a382..5328ff81861e4d9ac918d81c6518e6e9e9c96dc1 100644 (file)
@@ -26,7 +26,6 @@
 #include "binarybuffer.h"
 #include "log.h"
 
-
 #ifdef _DEBUG_JTAG_IO_
 #define DEBUG_JTAG_IO(expr ...) \
        do { if (1) LOG_DEBUG(expr); } while (0)
@@ -48,7 +47,7 @@
 #define DIM(x)                                 (sizeof(x)/sizeof((x)[0]))
 
 /** Calculate the number of bytes required to hold @a n TAP scan bits */
-#define TAP_SCAN_BYTES(n)              CEIL(n, 8)
+#define TAP_SCAN_BYTES(n)              DIV_ROUND_UP(n, 8)
 
 /*-----</Macros>-------------------------------------------------*/
 
@@ -120,10 +119,9 @@ extern tap_state_t cmd_queue_cur_state;
  *
  * The allocated, modified, and intmp fields are internal work space.
  */
-typedef struct scan_field_s
-{
+struct scan_field {
        /// A pointer to the tap structure to which this field refers.
-       jtag_tap_t* tap;
+       struct jtag_tap* tap;
 
        /// The number of bits this field specifies (up to 32)
        int num_bits;
@@ -143,15 +141,9 @@ typedef struct scan_field_s
        int modified;
        /// temporary storage for performing value checks synchronously
        uint8_t intmp[4];
-} scan_field_t;
-
-typedef struct jtag_tap_event_action_s jtag_tap_event_action_t;
+};
 
-/* this is really: typedef jtag_tap_t */
-/* But - the typedef is done in "types.h" */
-/* due to "forward declaration reasons" */
-struct jtag_tap_s
-{
+struct jtag_tap {
        const char* chip;
        const char* tapname;
        const char* dotted_name;
@@ -180,19 +172,19 @@ struct jtag_tap_s
        /// Bypass register selected
        int bypass;
 
-       jtag_tap_event_action_t *event_action;
+       struct jtag_tap_event_action *event_action;
 
-       jtag_tap_t* next_tap;
+       struct jtag_tap* next_tap;
 };
 
-void jtag_tap_init(jtag_tap_t *tap);
-void jtag_tap_free(jtag_tap_t *tap);
+void jtag_tap_init(struct jtag_tap *tap);
+void jtag_tap_free(struct jtag_tap *tap);
 
-jtag_tap_t* jtag_all_taps(void);
-const char *jtag_tap_name(const jtag_tap_t *tap);
-jtag_tap_t* jtag_tap_by_string(const char* dotted_name);
-jtag_tap_t* jtag_tap_by_jim_obj(Jim_Interp* interp, Jim_Obj* obj);
-jtag_tap_t* jtag_tap_next_enabled(jtag_tap_t* p);
+struct jtag_tap* jtag_all_taps(void);
+const char *jtag_tap_name(const struct jtag_tap *tap);
+struct jtag_tap* jtag_tap_by_string(const char* dotted_name);
+struct jtag_tap* jtag_tap_by_jim_obj(Jim_Interp* interp, Jim_Obj* obj);
+struct jtag_tap* jtag_tap_next_enabled(struct jtag_tap* p);
 unsigned jtag_tap_count_enabled(void);
 unsigned jtag_tap_count(void);
 
@@ -226,11 +218,11 @@ enum jtag_event {
        JTAG_TAP_EVENT_DISABLE,
 };
 
-struct jtag_tap_event_action_s
+struct jtag_tap_event_action
 {
        enum jtag_event         event;
        Jim_Obj*                 body;
-       jtag_tap_event_action_t* next;
+       struct jtag_tap_event_action* next;
 };
 
 /**
@@ -323,7 +315,7 @@ bool jtag_will_verify_capture_ir(void);
  * Initialize interface upon startup.  Return a successful no-op upon
  * subsequent invocations.
  */
-int  jtag_interface_init(struct command_context_s* cmd_ctx);
+int  jtag_interface_init(struct command_context* cmd_ctx);
 
 /// Shutdown the JTAG interface upon program exit.
 int  jtag_interface_quit(void);
@@ -332,12 +324,12 @@ int  jtag_interface_quit(void);
  * Initialize JTAG chain using only a RESET reset. If init fails,
  * try reset + init.
  */
-int  jtag_init(struct command_context_s* cmd_ctx);
+int  jtag_init(struct command_context* cmd_ctx);
 
 /// reset, then initialize JTAG chain
-int jtag_init_reset(struct command_context_s* cmd_ctx);
-int jtag_register_commands(struct command_context_s* cmd_ctx);
-int jtag_init_inner(struct command_context_s *cmd_ctx);
+int jtag_init_reset(struct command_context* cmd_ctx);
+int jtag_register_commands(struct command_context* cmd_ctx);
+int jtag_init_inner(struct command_context *cmd_ctx);
 
 /**
  * @file
@@ -365,20 +357,20 @@ int jtag_init_inner(struct command_context_s *cmd_ctx);
  *
  */
 void jtag_add_ir_scan(int num_fields,
-               scan_field_t* fields, tap_state_t endstate);
+               struct scan_field* fields, tap_state_t endstate);
 /**
  * The same as jtag_add_ir_scan except no verification is performed out
  * the output values.
  */
 void jtag_add_ir_scan_noverify(int num_fields,
-               const scan_field_t *fields, tap_state_t state);
+               const struct scan_field *fields, tap_state_t state);
 /**
  * Duplicate the scan fields passed into the function into an IR SCAN
  * command.  This function assumes that the caller handles extra fields
  * for bypassed TAPs.
  */
 void jtag_add_plain_ir_scan(int num_fields,
-               const scan_field_t* fields, tap_state_t endstate);
+               const struct scan_field* fields, tap_state_t endstate);
 
 
 /**
@@ -390,7 +382,7 @@ void jtag_add_plain_ir_scan(int num_fields,
  * allocation method is used, for the synchronous case the temporary 32
  * bits come from the input field itself.
  */
-void jtag_alloc_in_value32(scan_field_t *field);
+void jtag_alloc_in_value32(struct scan_field *field);
 
 /**
  * Generate a DR SCAN using the fields passed to the function.
@@ -399,17 +391,17 @@ void jtag_alloc_in_value32(scan_field_t *field);
  * 1-bit field.  The bypass status of TAPs is set by jtag_add_ir_scan().
  */
 void jtag_add_dr_scan(int num_fields,
-               const scan_field_t* fields, tap_state_t endstate);
+               const struct scan_field* fields, tap_state_t endstate);
 /// A version of jtag_add_dr_scan() that uses the check_value/mask fields
 void jtag_add_dr_scan_check(int num_fields,
-               scan_field_t* fields, tap_state_t endstate);
+               struct scan_field* fields, tap_state_t endstate);
 /**
  * Duplicate the scan fields passed into the function into a DR SCAN
  * command.  Unlike jtag_add_dr_scan(), this function assumes that the
  * caller handles extra fields for bypassed TAPs.
  */
 void jtag_add_plain_dr_scan(int num_fields,
-               const scan_field_t* fields, tap_state_t endstate);
+               const struct scan_field* fields, tap_state_t endstate);
 
 /**
  * Defines the type of data passed to the jtag_callback_t interface.
@@ -657,7 +649,7 @@ int jtag_srst_asserted(int* srst_asserted);
  * @param mask Pointer to scan mask; may be NULL.
  * @returns Nothing, but calls jtag_set_error() on any error.
  */
-void jtag_check_value_mask(scan_field_t *field, uint8_t *value, uint8_t *mask);
+void jtag_check_value_mask(struct scan_field *field, uint8_t *value, uint8_t *mask);
 
 void jtag_sleep(uint32_t us);
 
@@ -702,7 +694,7 @@ void jtag_sleep(uint32_t us);
  * There is no jtag_add_dr_outin() version of this fn that also allows
  * clocking data back in. Patches gladly accepted!
  */
-void jtag_add_dr_out(jtag_tap_t* tap,
+void jtag_add_dr_out(struct jtag_tap* tap,
                int num_fields, const int* num_bits, const uint32_t* value,
                tap_state_t end_state);
 

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)