blob: 3155afad4e4e35b98b966e9361fe9a3c678f988c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
#include <lib/kmem.h>
#include <lib/strings.h>
unsigned long strlen(string_t s)
{
unsigned long len = 0;
while (s[len] != 0) {
len += 1;
}
return len;
}
unsigned char strcmp(string_t a, string_t b)
{
unsigned long idx = 0;
while (a[idx] != 0 && b[idx] != 0) {
if (a[idx] != b[idx]) {
return 0;
}
idx += 1;
}
return a[idx] == b[idx];
}
unsigned char strcmpn(string_t a, string_t b, unsigned int n)
{
unsigned long idx = 0;
while (a[idx] != 0 && b[idx] != 0 && idx+1 < n) {
if (a[idx] != b[idx]) {
return 0;
}
idx += 1;
}
return a[idx] == b[idx];
}
char* zhex32_to_str(unsigned long value)
{
static char data[10];
char tmp = 0;
char isz = -1;
for (int i = 0; i < 8; i++) {
tmp = (value >> 4*(8-i-1))&0xF;
if (isz == 0xFF && tmp != 0)
isz = i;
if(tmp > 0x9)
tmp += 7;
tmp += 0x30;
data[i] = tmp;
}
return data+isz;
}
char* hex32_to_str(unsigned long value)
{
static char data[10];
char tmp = 0;
for (int i = 0; i < 8; i++) {
tmp = (value >> 4*(8-i-1))&0xF;
if(tmp > 0x9)
tmp += 7;
tmp += 0x30;
data[i] = tmp;
}
return data;
}
char* u32_to_str(unsigned long value)
{
unsigned long t = value;
unsigned long c;
static char data[12];
char* dptr = data + 9;
for (int i = 0; i <= 10; i++) {
c = t%10;
*dptr = 0x30 + (c&0xF);
t /= 10;
if (t==0)
break;
dptr -= 1;
}
return dptr;
}
char* s32_to_str(unsigned long value)
{
long t = value;
unsigned long c;
char is_neg = 0;
if (t < 0) {
t = -t;
is_neg = 1;
}
static char data[13];
char* dptr = data + 10;
for (int i = 0; i <= 10; i++) {
c = t%10;
*dptr = 0x30 + (c&0xF);
t /= 10;
if (t==0)
break;
dptr -= 1;
}
if (is_neg) {
dptr -= 1;
*dptr = '-';
}
return dptr;
}
|