|  | /* -*- 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. | 
|  | * | 
|  | * ----------------------------------------------------------------------- */ | 
|  |  | 
|  | /* | 
|  | * 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; | 
|  | } |