at v2.6.24-rc4 52 lines 1.0 kB view raw
1/* -*- linux-c -*- ------------------------------------------------------- * 2 * 3 * Copyright (C) 1991, 1992 Linus Torvalds 4 * Copyright 2007 rPath, Inc. - All Rights Reserved 5 * 6 * This file is part of the Linux kernel, and is made available under 7 * the terms of the GNU General Public License version 2. 8 * 9 * ----------------------------------------------------------------------- */ 10 11/* 12 * arch/i386/boot/string.c 13 * 14 * Very basic string functions 15 */ 16 17#include "boot.h" 18 19int strcmp(const char *str1, const char *str2) 20{ 21 const unsigned char *s1 = (const unsigned char *)str1; 22 const unsigned char *s2 = (const unsigned char *)str2; 23 int delta = 0; 24 25 while (*s1 || *s2) { 26 delta = *s2 - *s1; 27 if (delta) 28 return delta; 29 s1++; 30 s2++; 31 } 32 return 0; 33} 34 35size_t strnlen(const char *s, size_t maxlen) 36{ 37 const char *es = s; 38 while (*es && maxlen) { 39 es++; 40 maxlen--; 41 } 42 43 return (es - s); 44} 45 46unsigned int atou(const char *s) 47{ 48 unsigned int i = 0; 49 while (isdigit(*s)) 50 i = i * 10 + (*s++ - '0'); 51 return i; 52}