4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 only,
8 * as published by the Free Software Foundation.
10 * This program is distributed in the hope that it will be useful, but
11 * WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * General Public License version 2 for more details (a copy is included
14 * in the LICENSE file that accompanied this code).
16 * You should have received a copy of the GNU General Public License
17 * version 2 along with this program; If not, see
18 * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf
20 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
21 * CA 95054 USA or visit www.sun.com if you need additional information or
27 * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
28 * Use is subject to license terms.
31 * This file is part of Lustre, http://www.lustre.org/
32 * Lustre is a trademark of Sun Microsystems, Inc.
34 * libcfs/include/libcfs/libcfsutil.h
36 * A portability layer for multi-threaded userspace applications.
40 #ifndef __LUSTRE_UTILS_PLATFORM_H
41 #define __LUSTRE_UTILS_PLATFORM_H
44 #ifdef HAVE_LIBREADLINE
45 #define READLINE_LIBRARY
46 #include <readline/readline.h>
48 /* completion_matches() is #if 0-ed out in modern glibc */
50 #ifndef completion_matches
51 # define completion_matches rl_completion_matches
53 extern void using_history(void);
54 extern void stifle_history(int);
55 extern void add_history(char *);
56 #endif /* HAVE_LIBREADLINE */
65 typedef pthread_mutex_t l_mutex_t;
66 typedef pthread_cond_t l_cond_t;
67 #define l_mutex_init(s) pthread_mutex_init(s, NULL)
68 #define l_mutex_lock(s) pthread_mutex_lock(s)
69 #define l_mutex_unlock(s) pthread_mutex_unlock(s)
70 #define l_cond_init(c) pthread_cond_init(c, NULL)
71 #define l_cond_broadcast(c) pthread_cond_broadcast(c)
72 #define l_cond_wait(c, s) pthread_cond_wait(c, s)