mirror of
https://github.com/Proxmark/proxmark3.git
synced 2025-08-21 13:53:26 -07:00
Cleanup armsrc/string.c and string.h
- remove unnecessary memxor(), strreverse(), and itoa() functions - Use correct types in function declarations and definitions - add memmove() function. Gcc may generate calls to memcmp(), memcpy(), memset() and memmove()
This commit is contained in:
parent
622dd1af3b
commit
91592df4ec
2 changed files with 38 additions and 57 deletions
|
@ -11,8 +11,7 @@
|
||||||
#include "string.h"
|
#include "string.h"
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
void *memcpy(void *dest, const void *src, int len)
|
void *memcpy(void *dest, const void *src, size_t len) {
|
||||||
{
|
|
||||||
uint8_t *d = dest;
|
uint8_t *d = dest;
|
||||||
const uint8_t *s = src;
|
const uint8_t *s = src;
|
||||||
while((len--) > 0) {
|
while((len--) > 0) {
|
||||||
|
@ -23,8 +22,8 @@ void *memcpy(void *dest, const void *src, int len)
|
||||||
return dest;
|
return dest;
|
||||||
}
|
}
|
||||||
|
|
||||||
void *memset(void *dest, int c, int len)
|
|
||||||
{
|
void *memset(void *dest, int c, size_t len) {
|
||||||
uint8_t *d = dest;
|
uint8_t *d = dest;
|
||||||
while((len--) > 0) {
|
while((len--) > 0) {
|
||||||
*d = c;
|
*d = c;
|
||||||
|
@ -33,8 +32,30 @@ void *memset(void *dest, int c, int len)
|
||||||
return dest;
|
return dest;
|
||||||
}
|
}
|
||||||
|
|
||||||
int memcmp(const void *av, const void *bv, int len)
|
|
||||||
{
|
void *memmove(void *dest, const void *src, size_t len) {
|
||||||
|
uint8_t *d = dest;
|
||||||
|
const uint8_t *s = src;
|
||||||
|
if (dest <= src) {
|
||||||
|
while((len--) > 0) {
|
||||||
|
*d = *s;
|
||||||
|
d++;
|
||||||
|
s++;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
d = d + len - 1;
|
||||||
|
s = s + len - 1;
|
||||||
|
while((len--) > 0) {
|
||||||
|
*d = *s;
|
||||||
|
d--;
|
||||||
|
s--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return dest;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int memcmp(const void *av, const void *bv, size_t len) {
|
||||||
const uint8_t *a = av;
|
const uint8_t *a = av;
|
||||||
const uint8_t *b = bv;
|
const uint8_t *b = bv;
|
||||||
|
|
||||||
|
@ -48,13 +69,8 @@ int memcmp(const void *av, const void *bv, int len)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void memxor(uint8_t * dest, uint8_t * src, size_t len) {
|
|
||||||
for( ; len > 0; len--,dest++,src++)
|
|
||||||
*dest ^= *src;
|
|
||||||
}
|
|
||||||
|
|
||||||
int strlen(const char *str)
|
size_t strlen(const char *str) {
|
||||||
{
|
|
||||||
int l = 0;
|
int l = 0;
|
||||||
while(*str) {
|
while(*str) {
|
||||||
l++;
|
l++;
|
||||||
|
@ -63,8 +79,8 @@ int strlen(const char *str)
|
||||||
return l;
|
return l;
|
||||||
}
|
}
|
||||||
|
|
||||||
char* strncat(char *dest, const char *src, unsigned int n)
|
|
||||||
{
|
char* strncat(char *dest, const char *src, size_t n) {
|
||||||
unsigned int dest_len = strlen(dest);
|
unsigned int dest_len = strlen(dest);
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
|
@ -75,8 +91,8 @@ char* strncat(char *dest, const char *src, unsigned int n)
|
||||||
return dest;
|
return dest;
|
||||||
}
|
}
|
||||||
|
|
||||||
char* strcat(char *dest, const char *src)
|
|
||||||
{
|
char* strcat(char *dest, const char *src) {
|
||||||
unsigned int dest_len = strlen(dest);
|
unsigned int dest_len = strlen(dest);
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
|
@ -86,35 +102,3 @@ char* strcat(char *dest, const char *src)
|
||||||
|
|
||||||
return dest;
|
return dest;
|
||||||
}
|
}
|
||||||
////////////////////////////////////////// code to do 'itoa'
|
|
||||||
|
|
||||||
/* reverse: reverse string s in place */
|
|
||||||
void strreverse(char s[])
|
|
||||||
{
|
|
||||||
int c, i, j;
|
|
||||||
|
|
||||||
for (i = 0, j = strlen(s)-1; i<j; i++, j--) {
|
|
||||||
c = s[i];
|
|
||||||
s[i] = s[j];
|
|
||||||
s[j] = c;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* itoa: convert n to characters in s */
|
|
||||||
void itoa(int n, char s[])
|
|
||||||
{
|
|
||||||
int i, sign;
|
|
||||||
|
|
||||||
if ((sign = n) < 0) /* record sign */
|
|
||||||
n = -n; /* make n positive */
|
|
||||||
i = 0;
|
|
||||||
do { /* generate digits in reverse order */
|
|
||||||
s[i++] = n % 10 + '0'; /* get next digit */
|
|
||||||
} while ((n /= 10) > 0); /* delete it */
|
|
||||||
if (sign < 0)
|
|
||||||
s[i++] = '-';
|
|
||||||
s[i] = '\0';
|
|
||||||
strreverse(s);
|
|
||||||
}
|
|
||||||
|
|
||||||
//////////////////////////////////////// END 'itoa' CODE
|
|
||||||
|
|
|
@ -15,15 +15,12 @@
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
|
||||||
int strlen(const char *str);
|
RAMFUNC void *memcpy(void *dest, const void *src, size_t len);
|
||||||
RAMFUNC void *memcpy(void *dest, const void *src, int len);
|
void *memset(void *dest, int c, size_t len);
|
||||||
void *memset(void *dest, int c, int len);
|
void *memmove(void *dest, const void *src, size_t len);
|
||||||
RAMFUNC int memcmp(const void *av, const void *bv, int len);
|
RAMFUNC int memcmp(const void *av, const void *bv, size_t len);
|
||||||
void memxor(uint8_t * dest, uint8_t * src, size_t len);
|
size_t strlen(const char *str);
|
||||||
char *strncat(char *dest, const char *src, unsigned int n);
|
char *strncat(char *dest, const char *src, size_t n);
|
||||||
char *strcat(char *dest, const char *src);
|
char *strcat(char *dest, const char *src);
|
||||||
void strreverse(char s[]);
|
|
||||||
void itoa(int n, char s[]);
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* __STRING_H */
|
#endif /* __STRING_H */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue