3c2afa5ac025c5128a54f79940f3c241541efdaf
[openafs.git] / src / config / param.linux24.h
1 /*
2  * Copyright 2000, International Business Machines Corporation and others.
3  * All Rights Reserved.
4  *
5  * This software has been released under the terms of the IBM Public
6  * License.  For details, see the LICENSE file in the top-level source
7  * directory or online at http://www.openafs.org/dl/license10.html
8  */
9
10 #ifndef AFS_PARAM_COMMON_H
11 #define AFS_PARAM_COMMON_H
12
13 #ifndef UKERNEL
14
15 /* This section for kernel libafs compiles only */
16 #define AFS_LINUX20_ENV         1
17 #define AFS_LINUX22_ENV         1
18 #define AFS_LINUX24_ENV         1
19
20 #define AFS_MOUNT_AFS           "afs"   /* The name of the filesystem type */
21 #define AFS_64BIT_IOPS_ENV      1
22 #define AFS_NAMEI_ENV           1       /* User space interface to file system */
23 #define AFS_64BIT_CLIENT        1
24 #undef  AFS_NONFSTRANS
25 #define AFS_NONFSTRANS          1
26 #define AFS_USERSPACE_IP_ADDR   1
27 #define RXK_LISTENER_ENV        1
28 #define AFS_GCPAGS              1       /* Set to Userdisabled, allow sysctl to override */
29 #define AFS_HAVE_FFS            1       /* Use system's ffs */
30 #define AFS_HAVE_STATVFS        0       /* System doesn't support statvfs */
31 #define AFS_VM_RDWR_ENV         1       /* read/write implemented via VM */
32 #define AFS_USE_GETTIMEOFDAY    1       /* use gettimeofday to implement rx clock */
33
34 #if defined(__KERNEL__) && !defined(KDUMP_KERNEL)
35 #include <linux/threads.h>
36
37 #include <linux/config.h>
38 #ifdef CONFIG_SMP
39 #ifndef AFS_SMP
40 #define AFS_SMP 1
41 #endif
42 #endif
43 /* Using "AFS_SMP" to map to however many #define's are required to get
44  * MP to compile for Linux
45  */
46 #ifdef AFS_SMP
47 #ifndef CONFIG_SMP
48 #define CONFIG_SMP 1
49 #endif
50 #ifndef __SMP__
51 #define __SMP__
52 #endif
53 #endif
54 #define AFS_GLOBAL_SUNLOCK
55 #if defined(MODULE) && defined(CONFIG_MODVERSIONS)
56 #define MODVERSIONS
57 #include <linux/modversions.h>
58 #endif
59 #endif /* __KERNEL__    && !DUMP_KERNEL */
60
61 #ifdef KERNEL
62 #ifndef MIN
63 #define MIN(A,B) ((A) < (B) ? (A) : (B))
64 #endif
65 #ifndef MAX
66 #define MAX(A,B) ((A) > (B) ? (A) : (B))
67 #endif
68 #endif /* KERNEL */
69
70 #ifndef KERNEL
71 #define __USE_LARGEFILE64 1
72 #if !defined off64_t
73 #define off64_t __off64_t
74 #endif
75 #endif
76
77 #else /* !defined(UKERNEL) */
78
79 /* This section for user space compiles only */
80 #define AFS_USR_LINUX20_ENV     1
81 #define AFS_USR_LINUX22_ENV     1
82 #define AFS_USR_LINUX24_ENV     1
83
84 #define AFS_ENV                 1
85 #undef  AFS_NONFSTRANS
86 #define AFS_NONFSTRANS          1
87 #define AFS_MOUNT_AFS           "afs"   /* The name of the filesystem type. */
88 #define AFS_64BIT_IOPS_ENV      1
89 #define AFS_NAMEI_ENV           1       /* User space interface to file system */
90 #define AFS_USERSPACE_IP_ADDR   1
91 #define RXK_LISTENER_ENV        1
92 #define AFS_GCPAGS              0       /* if nonzero, garbage collect PAGs */
93 #define AFS_HAVE_FFS            1       /* Use system's ffs. */
94 #define AFS_HAVE_STATVFS        0       /* System doesn't support statvfs */
95 #define AFS_VM_RDWR_ENV         1       /* read/write implemented via VM */
96
97 #define afsio_iov       uio_iov
98 #define afsio_iovcnt    uio_iovcnt
99 #define afsio_offset    uio_offset
100 #define afsio_seg       uio_segflg
101 #define afsio_fmode     uio_fmode
102 #define afsio_resid     uio_resid
103 #define AFS_UIOSYS      1
104 #define AFS_UIOUSER     UIO_USERSPACE
105 #define AFS_CLBYTES     MCLBYTES
106 #define AFS_MINCHANGE   2
107 #define VATTR_NULL      usr_vattr_null
108
109 #define AFS_DIRENT
110 #ifndef CMSERVERPREF
111 #define CMSERVERPREF
112 #endif
113
114 #endif /* !defined(UKERNEL) */
115
116 /* needed so glibc version will be defined */
117 #include <afs/afs_sysnames.h>
118
119 #ifdef __GLIBC__
120 #if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 3)
121 #define USE_UCONTEXT
122 #endif
123 #endif
124
125 #endif /* AFS_PARAM_COMMON_H */