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.
30 * Copyright (c) 2012, Intel Corporation.
33 * This file is part of Lustre, http://www.lustre.org/
34 * Lustre is a trademark of Sun Microsystems, Inc.
36 * libcfs/include/libcfs/posix/posix-types.h
38 * Define the linux types we use for posix userspace.
40 * Author: Robert Read <rread@sun.com>
42 #ifndef _LUSTRE_POSIX_TYPES_H
43 #define _LUSTRE_POSIX_TYPES_H
45 #ifdef HAVE_LINUX_TYPES_H
46 # include <linux/types.h>
48 #include <stdbool.h> /* for bool */
50 typedef unsigned short umode_t;
55 * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the
56 * header files exported to user space
60 typedef __signed__ char __s8;
63 typedef unsigned char __u8;
67 typedef __signed__ short __s16;
70 typedef unsigned short __u16;
74 typedef __signed__ int __s32;
77 typedef unsigned int __u32;
81 * The kernel defines user space 64bit values as l64 on powerpc. We must
82 * match that definition to avoid conflicting definition compile errors.
84 #if defined(__powerpc64__) && !defined(__KERNEL__)
86 typedef __signed__ long __s64;
89 typedef unsigned long __u64;
91 #else /* !defined(__powerpc64__) || defined(__KERNEL__) */
93 typedef __signed__ long long __s64;
96 typedef unsigned long long __u64;
100 /* long integer with size equal to pointer */
101 typedef unsigned long ulong_ptr_t;
102 typedef long long_ptr_t;
104 /* Sparse annotations, copied from linux/compiler.h. */
111 #define __chk_user_ptr(x) ((void)0)
112 #define __chk_io_ptr(x) ((void)0)
113 #define __builtin_warning(x, y...) (1)
114 #define __acquires(x)
115 #define __releases(x)
116 #define __acquire(x) ((void)0)
117 #define __release(x) ((void)0)
118 #define __cond_lock(x, c) (c)
120 typedef unsigned long pgoff_t;