-/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
- * vim:expandtab:shiftwidth=8:tabstop=8:
- *
+/*
* GPL HEADER START
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* GPL HEADER END
*/
/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved
+ * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
*/
/*
#ifndef _LUSTRE_POSIX_TYPES_H
#define _LUSTRE_POSIX_TYPES_H
+#include <asm/types.h>
+#include <stdbool.h> /* for bool */
#ifndef HAVE_UMODE_T
-typedef unsigned short umode_t;
+typedef unsigned short cfs_umode_t;
+#else
+typedef umode_t cfs_umode_t;
#endif
/*
* header files exported to user space
*/
+#ifndef HAVE___S8
typedef __signed__ char __s8;
+#endif
+#ifndef HAVE___U8
typedef unsigned char __u8;
+#endif
+#ifndef HAVE___S16
typedef __signed__ short __s16;
+#endif
+#ifndef HAVE___U16
typedef unsigned short __u16;
+#endif
+#ifndef HAVE___S32
typedef __signed__ int __s32;
+#endif
+#ifndef HAVE___U32
typedef unsigned int __u32;
+#endif
-#ifndef HAVE___S64
+/*
+ * The kernel defines user space 64bit values as l64 on powerpc. We must
+ * match that definition to avoid conflicting definition compile errors.
+ */
+#if defined(__powerpc64__) && !defined(__KERNEL__)
+# ifndef HAVE___S64
+typedef __signed__ long __s64;
+# endif
+# ifndef HAVE___U64
+typedef unsigned long __u64;
+# endif
+#else /* !defined(__powerpc64__) || defined(__KERNEL__) */
+# ifndef HAVE___S64
typedef __signed__ long long __s64;
-#endif
-#ifndef HAVE___U64
+# endif
+# ifndef HAVE___U64
typedef unsigned long long __u64;
+# endif
#endif
/* long integer with size equal to pointer */