summaryrefslogtreecommitdiff
path: root/src/helper/binarybuffer.c
diff options
context:
space:
mode:
authorZachary T Welch <zw@superlucidity.net>2009-11-14 10:41:35 -0800
committerZachary T Welch <zw@superlucidity.net>2009-11-16 00:46:34 -0800
commitd8d8c5d8c3e47a38059952c3407bb819c5c33d05 (patch)
tree539092825bd439fda82a6825ca3c52f9f070a3eb /src/helper/binarybuffer.c
parentd09e308130619f8667b6f08399cfc7d16dddab36 (diff)
downloadopenocd+libswd-d8d8c5d8c3e47a38059952c3407bb819c5c33d05.tar.gz
openocd+libswd-d8d8c5d8c3e47a38059952c3407bb819c5c33d05.tar.bz2
openocd+libswd-d8d8c5d8c3e47a38059952c3407bb819c5c33d05.tar.xz
openocd+libswd-d8d8c5d8c3e47a38059952c3407bb819c5c33d05.zip
improve buf_set_ones
Use memset instead of loop. Improve types, using void * and unsigned.
Diffstat (limited to 'src/helper/binarybuffer.c')
-rw-r--r--src/helper/binarybuffer.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/helper/binarybuffer.c b/src/helper/binarybuffer.c
index e5f9854d..8275d124 100644
--- a/src/helper/binarybuffer.c
+++ b/src/helper/binarybuffer.c
@@ -113,17 +113,17 @@ bool buf_cmp_mask(const void *_buf1, const void *_buf2,
}
-uint8_t* buf_set_ones(uint8_t *buf, int count)
+void* buf_set_ones(void *_buf, unsigned size)
{
- for (unsigned i = 0, num_bytes = CEIL(count, 8); i < num_bytes; i++)
- {
- if (count >= 8)
- buf[i] = 0xff;
- else
- buf[i] = (1 << count) - 1;
+ uint8_t *buf = _buf;
+ if (!buf)
+ return NULL;
- count -= 8;
- }
+ memset(buf, 0xff, size / 8);
+
+ unsigned trailing_bits = size % 8;
+ if (trailing_bits)
+ buf[size / 8] = (1 << trailing_bits) - 1;
return buf;
}