1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * Copyright (c) 2006 M. Warner Losh. All rights reserved.
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * Redistribution and use in source and binary forms, with or without
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * modification, are permitted provided that the following conditions
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * 1. Redistributions of source code must retain the above copyright
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * notice, this list of conditions and the following disclaimer.
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * 2. Redistributions in binary form must reproduce the above copyright
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * notice, this list of conditions and the following disclaimer in the
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * documentation and/or other materials provided with the distribution.
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo/******************************************************************************
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * Instantiation of basic string operations to prevent inclusion of full
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * string library. These are simple implementations not necessarily optimized
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * for speed, but rather to show intent.
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * Revision information:
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * 20AUG2004 kb_admin initial creation
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * 12JAN2005 kb_admin minor updates
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * BEGIN_KBDD_BLOCK
da14cebe459d3275048785f25bd869cb09b5307fEric Cheng * No warranty, expressed or implied, is included with this software. It is
d10e4ef2fabf16c3237c6d6592496df3eac6a1efnarayan * provided "AS IS" and no warranty of any kind including statutory or aspects
06db247c678f0e3956535e8a6dec31d6c2108827raghuram * relating to merchantability or fitness for any purpose is provided. All
06db247c678f0e3956535e8a6dec31d6c2108827raghuram * intellectual property rights of others is maintained with the respective
678453a8ed49104d8adad58f3ba591bdc39883e8speer * owners. This software is not copyrighted and is intended for reference
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * END_BLOCK
06db247c678f0e3956535e8a6dec31d6c2108827raghuram *****************************************************************************/
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * .KB_C_FN_DEFINITION_START
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * int p_strlen(char *)
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * This global function returns the number of bytes starting at the pointer
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * before (not including) the string termination character ('/0').
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * .KB_C_FN_DEFINITION_END
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo while (*ptr++)