mirror of
https://github.com/fail0verflow/mini.git
synced 2024-11-30 23:24:19 +01:00
make mini use new string code
This commit is contained in:
parent
8d15c9d296
commit
aebf594314
2
sdhc.c
2
sdhc.c
@ -205,7 +205,7 @@ sdhc_host_found(struct sdhc_softc *sc, bus_space_tag_t iot,
|
|||||||
u_int32_t caps;
|
u_int32_t caps;
|
||||||
int error = 1;
|
int error = 1;
|
||||||
|
|
||||||
strcpy(sc->sc_dev.dv_xname, "sdhc");
|
strlcpy(sc->sc_dev.dv_xname, "sdhc", 5);
|
||||||
#ifdef SDHC_DEBUG
|
#ifdef SDHC_DEBUG
|
||||||
u_int16_t version;
|
u_int16_t version;
|
||||||
|
|
||||||
|
2
sdmmc.c
2
sdmmc.c
@ -109,7 +109,7 @@ struct device *sdmmc_attach(struct sdmmc_chip_functions *functions,
|
|||||||
c->functions = functions;
|
c->functions = functions;
|
||||||
c->handle = handle;
|
c->handle = handle;
|
||||||
c->no = no;
|
c->no = no;
|
||||||
strncpy(c->name, name, sizeof(c->name));
|
strlcpy(c->name, name, sizeof(c->name));
|
||||||
|
|
||||||
DPRINTF(0, ("sdmmc: attached new SD/MMC card %d for host [%s:%d]\n",
|
DPRINTF(0, ("sdmmc: attached new SD/MMC card %d for host [%s:%d]\n",
|
||||||
n_cards-1, c->name, c->no));
|
n_cards-1, c->name, c->no));
|
||||||
|
209
string.c
209
string.c
@ -1,114 +1,157 @@
|
|||||||
/*
|
/* string.c -- standard C string-manipulation functions.
|
||||||
* linux/lib/string.c
|
|
||||||
*
|
Copyright (C) 2008 Segher Boessenkool <segher@kernel.crashing.org>
|
||||||
* Copyright (C) 1991, 1992 Linus Torvalds
|
Copyright (C) 2009 Haxx Enterprises <bushing@gmail.com>
|
||||||
*/
|
|
||||||
|
Portions taken from the Public Domain C Library (PDCLib).
|
||||||
|
https://negix.net/trac/pdclib
|
||||||
|
|
||||||
|
# This code is licensed to you under the terms of the GNU GPL, version 2;
|
||||||
|
# see file COPYING or http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
|
||||||
|
*/
|
||||||
|
|
||||||
#include "string.h"
|
#include "string.h"
|
||||||
|
|
||||||
size_t strnlen(const char *s, size_t count)
|
|
||||||
{
|
|
||||||
const char *sc;
|
|
||||||
|
|
||||||
for (sc = s; count-- && *sc != '\0'; ++sc)
|
|
||||||
/* nothing */;
|
|
||||||
return sc - s;
|
|
||||||
}
|
|
||||||
|
|
||||||
size_t strlen(const char *s)
|
size_t strlen(const char *s)
|
||||||
{
|
{
|
||||||
const char *sc;
|
size_t len;
|
||||||
|
|
||||||
for (sc = s; *sc != '\0'; ++sc)
|
for (len = 0; s[len]; len++)
|
||||||
/* nothing */;
|
|
||||||
return sc - s;
|
|
||||||
}
|
|
||||||
|
|
||||||
char *strncpy(char *dst, const char *src, size_t n)
|
|
||||||
{
|
|
||||||
char *ret = dst;
|
|
||||||
|
|
||||||
while (n && (*dst++ = *src++))
|
|
||||||
n--;
|
|
||||||
|
|
||||||
while (n--)
|
|
||||||
*dst++ = 0;
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
char *strcpy(char *dst, const char *src)
|
|
||||||
{
|
|
||||||
char *ret = dst;
|
|
||||||
|
|
||||||
while ((*dst++ = *src++))
|
|
||||||
;
|
;
|
||||||
|
|
||||||
return ret;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
int strcmp(const char *p, const char *q)
|
size_t strnlen(const char *s, size_t count)
|
||||||
{
|
{
|
||||||
for (;;) {
|
size_t len;
|
||||||
unsigned char a, b;
|
|
||||||
a = *p++;
|
for (len = 0; s[len] && len < count; len++)
|
||||||
b = *q++;
|
;
|
||||||
if (a == 0 || a != b)
|
|
||||||
return a - b;
|
return len;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int strncmp(const char *p, const char *q, size_t n)
|
void *memset(void *b, int c, size_t len)
|
||||||
{
|
{
|
||||||
while (n-- != 0) {
|
size_t i;
|
||||||
unsigned char a, b;
|
|
||||||
a = *p++;
|
for (i = 0; i < len; i++)
|
||||||
b = *q++;
|
((unsigned char *)b)[i] = c;
|
||||||
if (a == 0 || a != b)
|
|
||||||
return a - b;
|
return b;
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void *memset(void *dst, int x, size_t n)
|
void *memcpy(void *dst, const void *src, size_t len)
|
||||||
{
|
{
|
||||||
unsigned char *p;
|
size_t i;
|
||||||
|
|
||||||
for (p = dst; n; n--)
|
for (i = 0; i < len; i++)
|
||||||
*p++ = x;
|
((unsigned char *)dst)[i] = ((unsigned char *)src)[i];
|
||||||
|
|
||||||
return dst;
|
return dst;
|
||||||
}
|
}
|
||||||
|
|
||||||
void *memcpy(void *dst, const void *src, size_t n)
|
int memcmp(const void *s1, const void *s2, size_t len)
|
||||||
{
|
{
|
||||||
unsigned char *p;
|
size_t i;
|
||||||
const unsigned char *q;
|
const unsigned char * p1 = (const unsigned char *) s1;
|
||||||
|
const unsigned char * p2 = (const unsigned char *) s2;
|
||||||
|
|
||||||
for (p = dst, q = src; n; n--)
|
for (i = 0; i < len; i++)
|
||||||
*p++ = *q++;
|
if (p1[i] != p2[i]) return p1[i] - p2[i];
|
||||||
|
|
||||||
return dst;
|
|
||||||
}
|
|
||||||
|
|
||||||
int memcmp(const void *s1, const void *s2, size_t n)
|
|
||||||
{
|
|
||||||
unsigned char *us1 = (unsigned char *) s1;
|
|
||||||
unsigned char *us2 = (unsigned char *) s2;
|
|
||||||
while (n-- != 0) {
|
|
||||||
if (*us1 != *us2)
|
|
||||||
return (*us1 < *us2) ? -1 : +1;
|
|
||||||
us1++;
|
|
||||||
us2++;
|
|
||||||
}
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
char *strchr(const char *s, int c)
|
int strcmp(const char *s1, const char *s2)
|
||||||
{
|
{
|
||||||
do {
|
size_t i;
|
||||||
if(*s == c)
|
|
||||||
return (char *)s;
|
for (i = 0; s1[i] && s1[i] == s2[i]; i++)
|
||||||
} while(*s++ != 0);
|
;
|
||||||
|
|
||||||
|
return s1[i] - s2[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
int strncmp(const char *s1, const char *s2, size_t n)
|
||||||
|
{
|
||||||
|
size_t i;
|
||||||
|
|
||||||
|
for (i = 0; i < n && s1[i] && s1[i] == s2[i]; i++)
|
||||||
|
;
|
||||||
|
if (i == n) return 0;
|
||||||
|
return s1[i] - s2[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
size_t strlcpy(char *dest, const char *src, size_t maxlen)
|
||||||
|
{
|
||||||
|
size_t len,needed;
|
||||||
|
|
||||||
|
len = needed = strnlen(src, maxlen-1) + 1;
|
||||||
|
if (len >= maxlen)
|
||||||
|
len = maxlen-1;
|
||||||
|
|
||||||
|
memcpy(dest, src, len);
|
||||||
|
dest[len]='\0';
|
||||||
|
|
||||||
|
return needed-1;
|
||||||
|
}
|
||||||
|
|
||||||
|
size_t strlcat(char *dest, const char *src, size_t maxlen)
|
||||||
|
{
|
||||||
|
size_t used;
|
||||||
|
|
||||||
|
used = strnlen(dest, maxlen-1);
|
||||||
|
return used + strlcpy(dest + used, src, maxlen - used);
|
||||||
|
}
|
||||||
|
|
||||||
|
char * strchr(const char *s, int c)
|
||||||
|
{
|
||||||
|
size_t i;
|
||||||
|
|
||||||
|
for (i = 0; s[i]; i++)
|
||||||
|
if (s[i] == (char)c) return (char *)s + i;
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
size_t strspn(const char *s1, const char *s2)
|
||||||
|
{
|
||||||
|
size_t len = 0;
|
||||||
|
const char *p;
|
||||||
|
|
||||||
|
while (s1[len]) {
|
||||||
|
p = s2;
|
||||||
|
while (*p) {
|
||||||
|
if (s1[len] == *p)
|
||||||
|
break;
|
||||||
|
|
||||||
|
++p;
|
||||||
|
}
|
||||||
|
if (!*p)
|
||||||
|
return len;
|
||||||
|
|
||||||
|
++len;
|
||||||
|
}
|
||||||
|
|
||||||
|
return len;
|
||||||
|
}
|
||||||
|
|
||||||
|
size_t strcspn(const char *s1, const char *s2)
|
||||||
|
{
|
||||||
|
size_t len = 0;
|
||||||
|
const char *p;
|
||||||
|
|
||||||
|
while (s1[len]) {
|
||||||
|
p = s2;
|
||||||
|
while (*p)
|
||||||
|
if (s1[len] == *p++)
|
||||||
|
return len;
|
||||||
|
|
||||||
|
++len;
|
||||||
|
}
|
||||||
|
|
||||||
|
return len;
|
||||||
|
}
|
||||||
|
|
||||||
|
32
string.h
32
string.h
@ -1,23 +1,29 @@
|
|||||||
/*
|
/* string.c -- standard C string-manipulation functions.
|
||||||
* linux/lib/string.c
|
|
||||||
*
|
Copyright (C) 2008 Segher Boessenkool <segher@kernel.crashing.org>
|
||||||
* Copyright (C) 1991, 1992 Linus Torvalds
|
Copyright (C) 2009 Haxx Enterprises <bushing@gmail.com>
|
||||||
*/
|
|
||||||
#ifndef __STRING_H__
|
# This code is licensed to you under the terms of the GNU GPL, version 2;
|
||||||
#define __STRING_H__
|
# see file COPYING or http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _STRING_H
|
||||||
|
#define _STRING_H
|
||||||
|
|
||||||
#include "types.h"
|
#include "types.h"
|
||||||
|
|
||||||
char *strcpy(char *, const char *);
|
|
||||||
char *strncpy(char *, const char *, size_t);
|
|
||||||
int strcmp(const char *, const char *);
|
|
||||||
int strncmp(const char *p, const char *q, size_t n);
|
|
||||||
size_t strlen(const char *);
|
size_t strlen(const char *);
|
||||||
size_t strnlen(const char *, size_t);
|
size_t strnlen(const char *, size_t);
|
||||||
char *strchr(const char *s, int c);
|
|
||||||
void *memset(void *, int, size_t);
|
void *memset(void *, int, size_t);
|
||||||
void *memcpy(void *, const void *, size_t);
|
void *memcpy(void *, const void *, size_t);
|
||||||
int memcmp(const void *s1, const void *s2, size_t n);
|
int memcmp(const void *, const void *, size_t);
|
||||||
|
int strcmp(const char *, const char *);
|
||||||
|
int strncmp(const char *, const char *, size_t);
|
||||||
|
size_t strlcpy(char *, const char *, size_t);
|
||||||
|
size_t strlcat(char *, const char *, size_t);
|
||||||
|
char *strchr(const char *, int);
|
||||||
|
size_t strspn(const char *, const char *);
|
||||||
|
size_t strcspn(const char *, const char *);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
11
utils.c
11
utils.c
@ -50,17 +50,6 @@ void hexdump(void *d, int len) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int sprintf(char *str, const char *fmt, ...)
|
|
||||||
{
|
|
||||||
va_list args;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
va_start(args, fmt);
|
|
||||||
i = vsprintf(str, fmt, args);
|
|
||||||
va_end(args);
|
|
||||||
return i;
|
|
||||||
}
|
|
||||||
|
|
||||||
void udelay(u32 d)
|
void udelay(u32 d)
|
||||||
{
|
{
|
||||||
// should be good to max .2% error
|
// should be good to max .2% error
|
||||||
|
Loading…
Reference in New Issue
Block a user