aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Schodet2021-10-03 10:53:09 +0200
committerNicolas Schodet2021-10-03 10:59:32 +0200
commit036d917e20ca67c3d3875c2053239bacbe5d5136 (patch)
tree91980bdb6a5ef8861c140d96f6cddf860eef9d5c
parentdc29e3ca66a3b7cf3e91aa9e1a9cc1c4cad712ad (diff)
Change buffer type to uint8_t, fix const correctness
Use uint8_t type for every binary data. Use const when data is not modified by function. Also fix a signed/unsigned comparison warning.
-rw-r--r--firmware.c8
-rw-r--r--firmware.h4
-rw-r--r--flash_routine.h.base4
-rw-r--r--lowlevel.c33
-rw-r--r--lowlevel.h8
-rw-r--r--main_fwexec.c8
-rw-r--r--main_fwflash.c6
-rw-r--r--samba.c23
-rw-r--r--samba.h6
9 files changed, 50 insertions, 50 deletions
diff --git a/firmware.c b/firmware.c
index 46fa477..3245f50 100644
--- a/firmware.c
+++ b/firmware.c
@@ -50,7 +50,7 @@ nxt_flash_prepare(nxt_t *nxt)
}
static nxt_error_t
-nxt_flash_block(nxt_t *nxt, nxt_word_t block_num, char *buf)
+nxt_flash_block(nxt_t *nxt, nxt_word_t block_num, const uint8_t *buf)
{
// Set the target block number
NXT_ERR(nxt_write_word(nxt, 0x202300, block_num));
@@ -85,7 +85,7 @@ nxt_firmware_validate_fd(int fd)
}
nxt_error_t
-nxt_firmware_validate(char *fw_path)
+nxt_firmware_validate(const char *fw_path)
{
nxt_error_t err;
int fd;
@@ -101,7 +101,7 @@ nxt_firmware_validate(char *fw_path)
}
nxt_error_t
-nxt_firmware_flash(nxt_t *nxt, char *fw_path)
+nxt_firmware_flash(nxt_t *nxt, const char *fw_path)
{
int fd, i, err;
@@ -120,7 +120,7 @@ nxt_firmware_flash(nxt_t *nxt, char *fw_path)
for (i = 0; i < 1024; i++)
{
- char buf[256];
+ uint8_t buf[256];
int ret;
memset(buf, 0, 256);
diff --git a/firmware.h b/firmware.h
index bd4ee9d..97dc369 100644
--- a/firmware.h
+++ b/firmware.h
@@ -25,7 +25,7 @@
#include "error.h"
#include "lowlevel.h"
-nxt_error_t nxt_firmware_flash(nxt_t *nxt, char *fw_path);
-nxt_error_t nxt_firmware_validate(char *fw_path);
+nxt_error_t nxt_firmware_flash(nxt_t *nxt, const char *fw_path);
+nxt_error_t nxt_firmware_validate(const char *fw_path);
#endif /* __FIRMWARE_H__ */
diff --git a/flash_routine.h.base b/flash_routine.h.base
index 116fa92..c861199 100644
--- a/flash_routine.h.base
+++ b/flash_routine.h.base
@@ -23,10 +23,12 @@
#ifndef __FLASH_ROUTINE_H__
#define __FLASH_ROUTINE_H__
+#include <stdint.h>
+
/*
* An array containing all the bits of the flash routine bytecode.
*/
-static char flash_bin[] = {___FLASH_BIN___};
+static uint8_t flash_bin[] = {___FLASH_BIN___};
/*
* The number of bytes in the above array.
diff --git a/lowlevel.c b/lowlevel.c
index 6806da8..138581a 100644
--- a/lowlevel.c
+++ b/lowlevel.c
@@ -171,16 +171,15 @@ nxt_is_firmware(nxt_t *nxt, nxt_firmware fw)
return (nxt->firmware == fw);
}
-nxt_error_t
-nxt_send_buf(nxt_t *nxt, char *buf, int len)
+static nxt_error_t
+nxt_transfer_buf(nxt_t *nxt, uint8_t endpoint, uint8_t *buf, int len)
{
int ret;
int transfered;
do
{
- ret = libusb_bulk_transfer(nxt->hdl, 0x01, (unsigned char *)buf, len,
- &transfered, 0);
+ ret = libusb_bulk_transfer(nxt->hdl, endpoint, buf, len, &transfered, 0);
if (ret < 0)
return NXT_ERROR_USB(ret);
buf += transfered;
@@ -192,27 +191,19 @@ nxt_send_buf(nxt_t *nxt, char *buf, int len)
}
nxt_error_t
-nxt_send_str(nxt_t *nxt, char *str)
+nxt_send_buf(nxt_t *nxt, const uint8_t *buf, int len)
{
- return nxt_send_buf(nxt, str, strlen(str));
+ return nxt_transfer_buf(nxt, 0x01, (uint8_t *)buf, len);
}
nxt_error_t
-nxt_recv_buf(nxt_t *nxt, char *buf, int len)
+nxt_send_str(nxt_t *nxt, const char *str)
{
- int ret;
- int transfered;
-
- do
- {
- ret = libusb_bulk_transfer(nxt->hdl, 0x82, (unsigned char *)buf, len,
- &transfered, 0);
- if (ret < 0)
- return NXT_ERROR_USB(ret);
- buf += transfered;
- len -= transfered;
- }
- while (len);
+ return nxt_send_buf(nxt, (const uint8_t *)str, strlen(str));
+}
- return NXT_OK;
+nxt_error_t
+nxt_recv_buf(nxt_t *nxt, uint8_t *buf, int len)
+{
+ return nxt_transfer_buf(nxt, 0x82, buf, len);
}
diff --git a/lowlevel.h b/lowlevel.h
index 15ddc8c..b87b483 100644
--- a/lowlevel.h
+++ b/lowlevel.h
@@ -22,6 +22,8 @@
#ifndef __LOWLEVEL_H__
#define __LOWLEVEL_H__
+#include <stdint.h>
+
#include "error.h"
struct nxt_t;
@@ -40,8 +42,8 @@ nxt_error_t nxt_find(nxt_t *nxt);
nxt_error_t nxt_open(nxt_t *nxt);
void nxt_close(nxt_t *nxt);
int nxt_is_firmware(nxt_t *nxt, nxt_firmware fw);
-nxt_error_t nxt_send_buf(nxt_t *nxt, char *buf, int len);
-nxt_error_t nxt_send_str(nxt_t *nxt, char *str);
-nxt_error_t nxt_recv_buf(nxt_t *nxt, char *buf, int len);
+nxt_error_t nxt_send_buf(nxt_t *nxt, const uint8_t *buf, int len);
+nxt_error_t nxt_send_str(nxt_t *nxt, const char *str);
+nxt_error_t nxt_recv_buf(nxt_t *nxt, uint8_t *buf, int len);
#endif /* __LOWLEVEL_H__ */
diff --git a/main_fwexec.c b/main_fwexec.c
index bf4b197..2479f6a 100644
--- a/main_fwexec.c
+++ b/main_fwexec.c
@@ -38,7 +38,7 @@
while (0)
static int
-handle_error(nxt_t *nxt, char *msg, nxt_error_t err)
+handle_error(nxt_t *nxt, const char *msg, nxt_error_t err)
{
printf("%s: %s\n", msg, nxt_str_error(err));
if (nxt != NULL)
@@ -47,7 +47,7 @@ handle_error(nxt_t *nxt, char *msg, nxt_error_t err)
}
void
-get_firmware(char **firmware, int *len, char *filename)
+get_firmware(uint8_t **firmware, int *len, const char *filename)
{
FILE *f;
@@ -67,7 +67,7 @@ get_firmware(char **firmware, int *len, char *filename)
if (*firmware == NULL)
NXT_HANDLE_ERR(NXT_FILE_ERROR, NULL, "Error allocating memory");
- if (fread(*firmware, 1, *len, f) != *len)
+ if (fread(*firmware, 1, *len, f) != (size_t)*len)
NXT_HANDLE_ERR(NXT_FILE_ERROR, NULL, "Error reading file");
printf("Firmware size is %d bytes\n", *len);
@@ -80,7 +80,7 @@ main(int argc, char *argv[])
{
nxt_t *nxt;
nxt_error_t err;
- char *firmware;
+ uint8_t *firmware;
int firmware_len;
long load_addr;
long jump_addr;
diff --git a/main_fwflash.c b/main_fwflash.c
index d6419af..08cb926 100644
--- a/main_fwflash.c
+++ b/main_fwflash.c
@@ -37,7 +37,7 @@
while (0)
static int
-handle_error(nxt_t *nxt, char *msg, nxt_error_t err)
+handle_error(nxt_t *nxt, const char *msg, nxt_error_t err)
{
printf("%s: %s\n", msg, nxt_str_error(err));
if (nxt != NULL)
@@ -46,11 +46,11 @@ handle_error(nxt_t *nxt, char *msg, nxt_error_t err)
}
int
-main(int argc, char *argv[])
+main(int argc, const char *argv[])
{
nxt_t *nxt;
nxt_error_t err;
- char *fw_file;
+ const char *fw_file;
if (argc != 2)
{
diff --git a/samba.c b/samba.c
index 7dcfb53..88960ec 100644
--- a/samba.c
+++ b/samba.c
@@ -19,6 +19,7 @@
* USA
*/
+#include <assert.h>
#include <stdio.h>
#include <string.h>
@@ -56,7 +57,7 @@ nxt_write_common(nxt_t *nxt, char type, nxt_addr_t addr, nxt_word_t w)
nxt_error_t
nxt_handshake(nxt_t *nxt)
{
- char buf[2];
+ uint8_t buf[2];
nxt_send_str(nxt, "N#");
nxt_recv_buf(nxt, buf, 2);
@@ -91,14 +92,17 @@ static nxt_error_t
nxt_read_common(nxt_t *nxt, char cmd, int len, nxt_addr_t addr,
nxt_word_t *word)
{
- char buf[20] = { 0 };
+ char sbuf[20] = { 0 };
+ uint8_t rbuf[4] = { 0 };
- NXT_ERR(nxt_format_command2(buf, cmd, addr, len));
- NXT_ERR(nxt_send_str(nxt, buf));
- NXT_ERR(nxt_recv_buf(nxt, buf, len));
+ assert(len <= 4);
+
+ NXT_ERR(nxt_format_command2(sbuf, cmd, addr, len));
+ NXT_ERR(nxt_send_str(nxt, sbuf));
+ NXT_ERR(nxt_recv_buf(nxt, rbuf, len));
/* The value returned is in little-endian byte ordering. */
- *word = buf[3] << 24 | buf[2] << 16 | buf[1] << 8 | buf[0];
+ *word = rbuf[3] << 24 | rbuf[2] << 16 | rbuf[1] << 8 | rbuf[0];
return NXT_OK;
}
@@ -130,7 +134,8 @@ nxt_read_word(nxt_t *nxt, nxt_addr_t addr, nxt_word_t *w)
}
nxt_error_t
-nxt_send_file(nxt_t *nxt, nxt_addr_t addr, char *file, unsigned short len)
+nxt_send_file(nxt_t *nxt, nxt_addr_t addr, const uint8_t *file,
+ unsigned short len)
{
char buf[20];
@@ -142,7 +147,7 @@ nxt_send_file(nxt_t *nxt, nxt_addr_t addr, char *file, unsigned short len)
}
nxt_error_t
-nxt_recv_file(nxt_t *nxt, nxt_addr_t addr, char *file, unsigned short len)
+nxt_recv_file(nxt_t *nxt, nxt_addr_t addr, uint8_t *file, unsigned short len)
{
char buf[20];
@@ -169,7 +174,7 @@ nxt_samba_version(nxt_t *nxt, char *version)
char buf[3];
strcpy(buf, "V#");
NXT_ERR(nxt_send_str(nxt, buf));
- NXT_ERR(nxt_recv_buf(nxt, version, 4));
+ NXT_ERR(nxt_recv_buf(nxt, (uint8_t *)version, 4));
version[4] = 0;
return NXT_OK;
}
diff --git a/samba.h b/samba.h
index 3efd578..e899078 100644
--- a/samba.h
+++ b/samba.h
@@ -30,7 +30,7 @@
typedef uint32_t nxt_addr_t;
typedef uint32_t nxt_word_t;
typedef uint16_t nxt_hword_t;
-typedef unsigned char nxt_byte_t;
+typedef uint8_t nxt_byte_t;
nxt_error_t nxt_handshake(nxt_t *nxt);
@@ -42,9 +42,9 @@ nxt_error_t nxt_read_byte(nxt_t *nxt, nxt_addr_t addr, nxt_byte_t *b);
nxt_error_t nxt_read_hword(nxt_t *nxt, nxt_addr_t addr, nxt_hword_t *hw);
nxt_error_t nxt_read_word(nxt_t *nxt, nxt_addr_t addr, nxt_word_t *w);
-nxt_error_t nxt_send_file(nxt_t *nxt, nxt_addr_t addr, char *file,
+nxt_error_t nxt_send_file(nxt_t *nxt, nxt_addr_t addr, const uint8_t *file,
unsigned short len);
-nxt_error_t nxt_recv_file(nxt_t *nxt, nxt_addr_t addr, char *file,
+nxt_error_t nxt_recv_file(nxt_t *nxt, nxt_addr_t addr, uint8_t *file,
unsigned short len);
nxt_error_t nxt_jump(nxt_t *nxt, nxt_addr_t addr);