Changeset ff3b3197 in mainline for generic/src/lib/func.c


Ignore:
Timestamp:
2005-11-25T22:58:38Z (20 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
f4338d2
Parents:
78c32b4
Message:

Implement basic kernel console command recognition.
Commands without arguments are now recognized.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • generic/src/lib/func.c

    r78c32b4 rff3b3197  
    3232#include <arch/asm.h>
    3333#include <arch.h>
     34#include <typedefs.h>
    3435
    3536__u32   haltstate = 0; /**< Halt flag */
     
    5253}
    5354
     55/** Return number of characters in a string.
     56 *
     57 * @param str NULL terminated string.
     58 *
     59 * @return Number of characters in str.
     60 */
     61size_t strlen(const char *str)
     62{
     63        int i;
     64       
     65        for (i = 0; str[i]; i++)
     66                ;
     67       
     68        return i;
     69}
    5470
    5571/** Compare two NULL terminated strings
    5672 *
    57  * Do a char-by-char comparment of two NULL terminated strings.
    58  * The strings are considered equal iff they have the same
    59  * length and consist of the same characters.
     73 * Do a char-by-char comparison of two NULL terminated strings.
     74 * The strings are considered equal iff they consist of the same
     75 * characters on the minimum of their lengths and specified maximal
     76 * length.
    6077 *
    6178 * @param src First string to compare.
    6279 * @param dst Second string to compare.
     80 * @param len Maximal length for comparison.
    6381 *
    6482 * @return 0 if the strings are equal, 1 otherwise.
    6583 *
    6684 */
    67 int strcmp(const char *src, const char *dst)
     85int strcmp(const char *src, const char *dst, size_t len)
    6886{
    6987        int i;
    7088       
    7189        i = 0;
    72         while (src[i] == dst[i]) {
    73                 if (src[i] == '\0')
     90        while ((i < len) && (src[i] == dst[i])) {
     91                if ((i == len - 1) || (src[i] == '\0'))
    7492                        return 0;
    7593                i++;
Note: See TracChangeset for help on using the changeset viewer.