fc4839bfbaf0e3d688b7236164fef4a865d0bb4e
[ipc/ipcdev.git] / qnx / src / ipc3x_dev / ti / syslink / procMgr / hlos / knl / loaders / Elf / Qnx / DLOAD / DLOAD / util.h
1 /*
2 * util.h
3 *
4 * Definition of some useful string comparison routines (not
5 * not provided on all platforms) and a few generic macros.
6 *
7 * Copyright (C) 2009 Texas Instruments Incorporated - http://www.ti.com/
8 *
9 *
10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions
12 * are met:
13 *
14 * Redistributions of source code must retain the above copyright
15 * notice, this list of conditions and the following disclaimer.
16 *
17 * Redistributions in binary form must reproduce the above copyright
18 * notice, this list of conditions and the following disclaimer in the
19 * documentation and/or other materials provided with the
20 * distribution.
21 *
22 * Neither the name of Texas Instruments Incorporated nor the names of
23 * its contributors may be used to endorse or promote products derived
24 * from this software without specific prior written permission.
25 *
26 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
27 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
28 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
29 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
30 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
31 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
32 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
33 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
34 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
35 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
36 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 *
38 */
40 #ifndef UTIL_H
41 #define UTIL_H
43 #if defined(__KERNEL__)
44 #include <linux/ctype.h>
45 #else
46 #include <ctype.h>
47 #endif
49 #if 0
50 !defined(__linux)
52 /*****************************************************************************/
53 /* STRCASECMP() - Case-insensitive strcmp. */
54 /*****************************************************************************/
55 static int strcasecmp(const char* s1, const char* s2)
56 {
57 char c1, c2;
58 do { c1 = *s1++; c2 = *s2++; }
59 while (c1 && c2 && (tolower(c1) == tolower(c2)));
61 return tolower(c1) - tolower(c2);
62 }
64 /*****************************************************************************/
65 /* STRNCASECMP() - Case-insensitive strncmp. */
66 /*****************************************************************************/
67 static int strncasecmp(const char* s1, const char* s2, size_t n)
68 {
69 char c1, c2;
71 if (!n) return 0;
73 do { c1 = *s1++; c2 = *s2++; }
74 while (--n && c1 && c2 && (tolower(c1) == tolower(c2)));
76 return tolower(c1) - tolower(c2);
77 }
79 #endif
81 /*****************************************************************************/
82 /* Define MIN and MAX macros. */
83 /*****************************************************************************/
84 #define MIN(x,y) (((x) > (y)) ? (y) : (x))
85 #define MAX(x,y) (((x) >= (y)) ? (x) : (y))
87 /*****************************************************************************/
88 /* C implementation of 'bool' type. */
89 /*****************************************************************************/
90 #define TRUE 1
91 #define FALSE 0
93 #endif