gcc (Gentoo Hardened 4.6.3 p1.13) produces a warning about the variable
assigned but not used. write() can sometimes write less than the specified
count so it's marked with warn_unused_result in the system headers and its
return value can't be ignored. The most correct solution would be to have a
loop writing the buffer until all bytes are written or an error is
returned but here it's impractical.
Change-Id: I75f7482e2b26fe0e6d70d34947518d3a8f0afe5c
Signed-off-by: Paul Fertser <fercerpav@gmail.com>
Reviewed-on: http://openocd.zylin.com/1490
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Tested-by: jenkins
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
cmd = 0x10 | (reg & 0x7);
bytes_written = write(oocd_trace->tty_fd, &cmd, 1);
cmd = 0x10 | (reg & 0x7);
bytes_written = write(oocd_trace->tty_fd, &cmd, 1);
+ if (bytes_written < 1)
+ return ERROR_FAIL;
bytes_to_read = 4;
while (bytes_to_read > 0) {
bytes_to_read = 4;
while (bytes_to_read > 0) {
data[4] = (value & 0xff000000) >> 24;
bytes_written = write(oocd_trace->tty_fd, data, 5);
data[4] = (value & 0xff000000) >> 24;
bytes_written = write(oocd_trace->tty_fd, data, 5);
+ if (bytes_written < 5)
+ return ERROR_FAIL;
+
LOG_DEBUG("reg #%i: 0x%8.8x", reg, value);
return ERROR_OK;
LOG_DEBUG("reg #%i: 0x%8.8x", reg, value);
return ERROR_OK;
cmd = 0x20;
bytes_written = write(oocd_trace->tty_fd, &cmd, 1);
cmd = 0x20;
bytes_written = write(oocd_trace->tty_fd, &cmd, 1);
+ if (bytes_written < 1)
+ return ERROR_FAIL;
bytes_to_read = size * 16;
while (bytes_to_read > 0) {
bytes_to_read = size * 16;
while (bytes_to_read > 0) {
cmd_array[0] = 0xf0;
bytes_written = write(oocd_trace->tty_fd, cmd_array, 1);
cmd_array[0] = 0xf0;
bytes_written = write(oocd_trace->tty_fd, cmd_array, 1);
+ if (bytes_written < 1)
+ return ERROR_FAIL;
command_print(CMD_CTX, "requesting traceclock resync");
LOG_DEBUG("resyncing traceclk pll");
command_print(CMD_CTX, "requesting traceclock resync");
LOG_DEBUG("resyncing traceclk pll");