53 lines
1.0 KiB
C
53 lines
1.0 KiB
C
|
/* -*- linux-c -*- ------------------------------------------------------- *
|
||
|
*
|
||
|
* Copyright (C) 1991, 1992 Linus Torvalds
|
||
|
* Copyright 2007 rPath, Inc. - All Rights Reserved
|
||
|
*
|
||
|
* This file is part of the Linux kernel, and is made available under
|
||
|
* the terms of the GNU General Public License version 2.
|
||
|
*
|
||
|
* ----------------------------------------------------------------------- */
|
||
|
|
||
|
/*
|
||
|
* arch/i386/boot/string.c
|
||
|
*
|
||
|
* Very basic string functions
|
||
|
*/
|
||
|
|
||
|
#include "boot.h"
|
||
|
|
||
|
int strcmp(const char *str1, const char *str2)
|
||
|
{
|
||
|
const unsigned char *s1 = (const unsigned char *)str1;
|
||
|
const unsigned char *s2 = (const unsigned char *)str2;
|
||
|
int delta = 0;
|
||
|
|
||
|
while (*s1 || *s2) {
|
||
|
delta = *s2 - *s1;
|
||
|
if (delta)
|
||
|
return delta;
|
||
|
s1++;
|
||
|
s2++;
|
||
|
}
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
size_t strnlen(const char *s, size_t maxlen)
|
||
|
{
|
||
|
const char *es = s;
|
||
|
while (*es && maxlen) {
|
||
|
es++;
|
||
|
maxlen--;
|
||
|
}
|
||
|
|
||
|
return (es - s);
|
||
|
}
|
||
|
|
||
|
unsigned int atou(const char *s)
|
||
|
{
|
||
|
unsigned int i = 0;
|
||
|
while (isdigit(*s))
|
||
|
i = i * 10 + (*s++ - '0');
|
||
|
return i;
|
||
|
}
|