Zach Welch <zw@superlucidity.net> add TAP_SCAN_BYTES macro (1 of 2)
authoroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Fri, 24 Apr 2009 16:24:55 +0000 (16:24 +0000)
committeroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Fri, 24 Apr 2009 16:24:55 +0000 (16:24 +0000)
git-svn-id: svn://svn.berlios.de/openocd/trunk@1524 b42882b7-edfa-0310-969c-e2dbd0fdcd60

src/jtag/jlink.c
src/jtag/jtag.h

index 8626b18cda31099f8e6db78a3faa0cc6bb1f151b..1269fa84677c31186c4ac48a34831a44591b565c 100644 (file)
@@ -672,7 +672,7 @@ static int jlink_tap_execute(void)
                return ERROR_OK;
 
        // number of full bytes (plus one if some would be left over)
-       byte_length = tap_length / 8 + !!(tap_length % 8);
+       byte_length = TAP_SCAN_BYTES(tap_length);
 
        usb_out_buffer[0] = EMU_CMD_HW_JTAG3;
        usb_out_buffer[1] = 0;
index 2a7d85615e863bc9dbb3bf9e221e0994a061dc5d..a14edb481bd331bba8eaa832a8925704ba716bfb 100644 (file)
@@ -217,6 +217,9 @@ typedef void* error_handler_t;  /* Later on we can delete error_handler_t, but k
 struct scan_field_s;
 typedef int (*in_handler_t)(u8* in_value, void* priv, struct scan_field_s* field);
 
+/// @brief calculates number of bytes required to hold @a n TAP scan bits
+#define TAP_SCAN_BYTES(n)              (((n) / 8) + !!((n) % 8))
+
 typedef struct scan_field_s
 {
        jtag_tap_t* tap;                /* tap pointer this instruction refers to */