remote: Rewrote remotehston using a for loop and a const-correct type signature
This commit is contained in:
parent
52160db72b
commit
682ae75431
35
src/remote.c
35
src/remote.c
|
@ -31,32 +31,21 @@
|
|||
#include "target.h"
|
||||
#include "hex_utils.h"
|
||||
|
||||
#define NTOH(x) (((x) <= 9) ? (x) + '0' : 'a' + (x) - 10)
|
||||
#define HTON(x) (((x) <= '9') ? (x) - '0' : ((TOUPPER(x)) - 'A' + 10))
|
||||
#define TOUPPER(x) ((((x) >= 'a') && ((x) <= 'z')) ? ((x) - ('a' - 'A')) : (x))
|
||||
#define ISHEX(x) ((((x) >= '0') && ((x) <= '9')) || (((x) >= 'A') && ((x) <= 'F')) || (((x) >= 'a') && ((x) <= 'f')))
|
||||
|
||||
#define NTOH(x) ((x<=9)?x+'0':'a'+x-10)
|
||||
#define HTON(x) ((x<='9')?x-'0':((TOUPPER(x))-'A'+10))
|
||||
#define TOUPPER(x) ((((x)>='a') && ((x)<='z'))?((x)-('a'-'A')):(x))
|
||||
#define ISHEX(x) ( \
|
||||
(((x)>='0') && ((x)<='9')) || \
|
||||
(((x)>='A') && ((x)<='F')) || \
|
||||
(((x)>='a') && ((x)<='f')) \
|
||||
)
|
||||
|
||||
|
||||
uint64_t remotehston(uint32_t limit, char *s)
|
||||
|
||||
/* Return numeric version of string, until illegal hex digit, or limit */
|
||||
|
||||
/* Return numeric version of string, until illegal hex digit, or max */
|
||||
uint64_t remotehston(const uint32_t max, const char *const str)
|
||||
{
|
||||
uint64_t ret=0L;
|
||||
char c;
|
||||
|
||||
while (limit--) {
|
||||
c=*s++;
|
||||
if (!ISHEX(c))
|
||||
uint64_t ret = 0;
|
||||
for (size_t i = 0; i < max; ++i) {
|
||||
const char value = str[i];
|
||||
if (!ISHEX(value))
|
||||
return ret;
|
||||
ret=(ret<<4)|HTON(c);
|
||||
}
|
||||
|
||||
ret = (ret << 4U) | HTON(value);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
|
@ -187,7 +187,7 @@
|
|||
#define REMOTE_MEM_WRITE_SIZED_STR (char []){ REMOTE_SOM, REMOTE_HL_PACKET, REMOTE_AP_MEM_WRITE_SIZED, \
|
||||
'%','0', '2', 'x', '%','0','2','x', HEX_U32(address), HEX_U32(count), 0}
|
||||
|
||||
uint64_t remotehston(uint32_t limit, char *s);
|
||||
uint64_t remotehston(uint32_t limit, const char *s);
|
||||
void remotePacketProcess(unsigned int i, char *packet);
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue