Commit 1651eec1 authored by Lucas Russo's avatar Lucas Russo

hal/*: fix comparison between signed and unsigned types

This fixes #67 github issue
parent 28dc66e5
......@@ -496,9 +496,12 @@ static ssize_t _thsafe_zmq_client_recv_rw (smio_t *self, uint8_t *data,
/* Check if the frame has the number of bytes requested.
* For now, we consider a success only when the number of
* bytes requested is the same as the actually read*/
ssize_t data_frame_size = (ssize_t) zframe_size (data_frame);
ASSERT_TEST(data_frame_size ==
*(THSAFE_RETURN_TYPE *) zframe_data (return_frame),
size_t data_frame_size = zframe_size (data_frame);
THSAFE_RETURN_TYPE ret_frame_size =
*(THSAFE_RETURN_TYPE *) zframe_data (return_frame);
ASSERT_TEST(ret_frame_size >= 0 &&
(THSAFE_RETURN_UTYPE) ret_frame_size == data_frame_size,
"Received data frame size is wrong", err_data_frame_size);
ASSERT_TEST(data_frame_size >= size,
"Specified buffer size is bigger than the available data",
......
......@@ -114,15 +114,16 @@ smch_err_e smch_24aa64_read_8 (smch_24aa64_t *self, uint16_t addr,
smch_err_e smch_24aa64_write_block (smch_24aa64_t *self, uint16_t addr,
const uint32_t *data, size_t size)
{
return (_smch_24aa64_write_generic (self, addr, (const uint8_t *) data, size) ==
(ssize_t) size)? SMCH_SUCCESS : SMCH_ERR_RW_SMPR;
ssize_t ret = _smch_24aa64_write_generic (self, addr,
(const uint8_t *) data, size);
return (ret >= 0 && (size_t) ret == size)? SMCH_SUCCESS : SMCH_ERR_RW_SMPR;
}
smch_err_e smch_24aa64_read_block (smch_24aa64_t *self, uint16_t addr,
uint32_t *data, size_t size)
{
return (_smch_24aa64_read_generic (self, addr, (uint8_t *) data, size) ==
(ssize_t) size)? SMCH_SUCCESS : SMCH_ERR_RW_SMPR;
ssize_t ret = _smch_24aa64_read_generic (self, addr, (uint8_t *) data, size);
return (ret >= 0 && (size_t) ret == size)? SMCH_SUCCESS : SMCH_ERR_RW_SMPR;
}
/***************** Static functions *****************/
......
......@@ -205,8 +205,8 @@ static smch_err_e _smch_si57x_write_8 (smch_si57x_t *self, uint8_t addr,
static smch_err_e _smch_si57x_write_block (smch_si57x_t *self, uint8_t addr,
const uint8_t *data, size_t size)
{
return (_smch_si57x_write_generic (self, addr, data, size) ==
(ssize_t) size)? SMCH_SUCCESS : SMCH_ERR_RW_SMPR;
ssize_t ret = _smch_si57x_write_generic (self, addr, data, size);
return (ret >= 0 && (size_t) ret == size)? SMCH_SUCCESS : SMCH_ERR_RW_SMPR;
}
static ssize_t _smch_si57x_write_generic (smch_si57x_t *self, uint8_t addr,
......@@ -265,8 +265,8 @@ static smch_err_e _smch_si57x_read_8 (smch_si57x_t *self, uint8_t addr,
static smch_err_e _smch_si57x_read_block (smch_si57x_t *self, uint8_t addr,
uint8_t *data, size_t size)
{
return (_smch_si57x_read_generic (self, addr, data, size) ==
(ssize_t) size)? SMCH_SUCCESS : SMCH_ERR_RW_SMPR;
ssize_t ret = _smch_si57x_read_generic (self, addr, data, size);
return (ret >= 0 && (size_t) ret == size)? SMCH_SUCCESS : SMCH_ERR_RW_SMPR;
}
static ssize_t _smch_si57x_read_generic (smch_si57x_t *self, uint8_t addr, uint8_t *data,
......
......@@ -380,8 +380,8 @@ static ssize_t _spi_read_write_generic (smpr_t *self, uint8_t *data,
}
/* Return error if we could not write everything */
ASSERT_TEST(err == (ssize_t) size, "Could not write everything to TX registers",
err_exit, -1);
ASSERT_TEST(err >= 0 && (size_t) err == size,
"Could not write everything to TX registers", err_exit, -1);
}
/* Start transfer */
......
......@@ -59,5 +59,7 @@
/* Messaging Return Codes */
#define THSAFE_RETURN_TYPE int32_t
#define THSAFE_RETURN_SIZE (sizeof (THSAFE_RETURN_TYPE))
#define THSAFE_RETURN_UTYPE uint32_t
#define THSAFE_RETURN_USIZE (sizeof (THSAFE_RETURN_TYPE))
#endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment