FBSD, DFBSD (future) call afs_FakeOpen in the write path
[openafs.git] / src / config / param.i386_dfbsd_23.h
1 #ifndef AFS_PARAM_H
2 #define AFS_PARAM_H
3
4 /* Machine / Operating system information */
5 #define SYS_NAME        "i386_dfbsd_23"
6 #define SYS_NAME_ID     SYS_NAME_ID_i386_dfbsd_23
7
8 #define AFSLITTLE_ENDIAN    1
9 #define AFS_HAVE_FFS        1   /* Use system's ffs. */
10 #define AFS_HAVE_STATVFS    1   /* System doesn't support statvfs */
11 #define AFS_VM_RDWR_ENV     1   /* read/write implemented via VM */
12 #define AFS_FAKEOPEN_ENV    1   /* call afs_FakeOpen as if !AFS_VM_RDWR */
13
14
15 #ifndef UKERNEL
16 /* This section for kernel libafs compiles only */
17
18 #ifndef IGNORE_STDS_H
19 #include <sys/param.h>
20 #endif
21
22 #define AFS_XBSD_ENV 1          /* {Free,Open,Net}BSD */
23 #define AFS_X86_XBSD_ENV 1
24
25 #define AFS_NAMEI_ENV     1     /* User space interface to file system */
26 #define AFS_64BIT_ENV 1
27 #define AFS_64BIT_CLIENT 1
28 #define AFS_64BIT_IOPS_ENV 1    /* Needed for NAMEI */
29 #define AFS_DFBSD_ENV 1
30 #define AFS_DFBSD22_ENV 1
31 #define AFS_DFBSD23_ENV 1
32 #define AFS_X86_DFBSD_ENV 1
33 #define AFS_X86_DFBSD22_ENV 1
34 #define AFS_X86_DFBSD23_ENV 1
35 #define AFS_X86_ENV 1
36 #undef  AFS_NONFSTRANS
37 #define AFS_NONFSTRANS 1
38 #define FTRUNC O_TRUNC
39
40 #define IUPD 0x0010
41 #define IACC 0x0020
42 #define ICHG 0x0040
43 #define IMOD 0x0080
44
45 #define IN_LOCK(ip)     lockmgr(&ip->i_lock, LK_EXCLUSIVE, \
46                                 NULL, curproc)
47 #define IN_UNLOCK(ip)   lockmgr(&ip->i_lock, LK_RELEASE, \
48                                 NULL, curproc)
49
50 #include <afs/afs_sysnames.h>
51
52 #define AFS_VFS_ENV     1
53 #define AFS_VFSINCL_ENV 1
54 #define AFS_GREEDY43_ENV        1
55 #define AFS_ENV         1
56
57 #define AFS_SYSCALL     339
58 #define AFS_MOUNT_AFS   "afs"
59
60 #ifndef MOUNT_UFS
61 #define MOUNT_UFS "ufs"
62 #endif
63
64 #ifndef MOUNT_AFS
65 #define MOUNT_AFS AFS_MOUNT_AFS
66 #endif
67
68 #define RXK_LISTENER_ENV 1
69 #define AFS_GCPAGS              0       /* if nonzero, garbage collect PAGs */
70 #define AFS_USE_GETTIMEOFDAY    1       /* use gettimeofday to implement rx clock */
71
72 /* Extra kernel definitions (from kdefs file) */
73 #ifdef _KERNEL
74 #define AFS_GLOBAL_SUNLOCK        1
75 #define AFS_VFS34       1       /* What is VFS34??? */
76 #define AFS_SHORTGID    0       /* are group id's short? */
77 #define afsio_iov       uio_iov
78 #define afsio_iovcnt    uio_iovcnt
79 #define afsio_offset    uio_offset
80 #define afsio_seg       uio_segflg
81 #define afsio_resid     uio_resid
82 #define AFS_UIOSYS      UIO_SYSSPACE
83 #define AFS_UIOUSER     UIO_USERSPACE
84 #define AFS_CLBYTES     CLBYTES
85 #define osi_GetTime(x)  microtime(x)
86 #define AFS_KALLOC(x)   osi_fbsd_alloc((x), 1)
87 #undef  AFS_KALLOC_NOSLEEP
88 #define AFS_KALLOC_NOSLEEP(x) osi_fbsd_alloc((x), 0)
89 #define AFS_KFREE(x,y)  osi_fbsd_free((x))
90 #define v_count         v_usecount
91 #define v_vfsp          v_mount
92 #define vfs_bsize       mnt_stat.f_bsize
93 #define vfs_fsid        mnt_stat.f_fsid
94 #define va_nodeid       va_fileid
95 #define vfs_vnodecovered mnt_vnodecovered
96 #define direct          dirent
97 #define vnode_t         struct vnode
98
99 #ifndef MUTEX_DEFAULT
100 #define MUTEX_DEFAULT   0
101 #endif /* MUTEX_DEFAULT */
102
103 #ifndef SSYS
104 #define SSYS            0x00002
105 #endif /* SSYS */
106
107 #define p_rcred         p_ucred
108
109 #if     !defined(ASSEMBLER) && !defined(__LANGUAGE_ASSEMBLY__)
110 enum vcexcl { NONEXCL, EXCL };
111
112 #ifdef KERNEL
113 #ifndef MIN
114 #define MIN(A,B) ((A) < (B) ? (A) : (B))
115 #endif
116 #ifndef MAX
117 #define MAX(A,B) ((A) > (B) ? (A) : (B))
118 #endif
119 #endif /* KERNEL */
120
121 #endif /* ! ASSEMBLER & ! __LANGUAGE_ASSEMBLY__ */
122 #endif /* _KERNEL */
123
124 #else /* !defined(UKERNEL) */
125
126 /* This section for user space compiles only */
127
128 #define UKERNEL                 1       /* user space kernel */
129 #define AFS_ENV                 1
130 #define AFS_VFSINCL_ENV         1
131 #define AFS_USR_DFBSD22_ENV     1
132 #define AFS_USR_DFBSD23_ENV     1
133 #define AFS_USR_DFBSD_ENV       1
134 #undef  AFS_NONFSTRANS
135 #define AFS_NONFSTRANS          1
136
137 #define AFS_MOUNT_AFS "afs"     /* The name of the filesystem type. */
138 #define AFS_SYSCALL 339
139 #define AFS_NAMEI_ENV         1 /* User space interface to file system */
140 #define AFS_64BIT_ENV 1
141 #define AFS_64BIT_IOPS_ENV    1 /* Needed for NAMEI */
142 #define AFS_USERSPACE_IP_ADDR 1
143 #define RXK_LISTENER_ENV      1
144 #define AFS_GCPAGS            0 /* if nonzero, garbage collect PAGs */
145
146 #include <afs/afs_sysnames.h>
147
148 #define afsio_iov       uio_iov
149 #define afsio_iovcnt    uio_iovcnt
150 #define afsio_offset    uio_offset
151 #define afsio_seg       uio_segflg
152 #define afsio_fmode     uio_fmode
153 #define afsio_resid     uio_resid
154 #define AFS_UIOSYS      1
155 #define AFS_UIOUSER     UIO_USERSPACE
156 #define AFS_CLBYTES     MCLBYTES
157 #define AFS_MINCHANGE   2
158 #define VATTR_NULL      usr_vattr_null
159
160 #define AFS_DIRENT
161 #ifndef CMSERVERPREF
162 #define CMSERVERPREF
163 #endif
164
165 #include <sys/param.h>
166 #include <sys/types.h>
167 #include <sys/mount.h>
168 #include <sys/fcntl.h>
169 #include <sys/uio.h>
170 #include <sys/socket.h>
171 #include <netinet/in.h>
172 #include <limits.h>
173
174 #endif /* !defined(UKERNEL) */
175
176 /* general user-space compiles */
177
178 #if defined(UKERNEL) || !defined(KERNEL)
179 #define STDLIB_HAS_MALLOC_PROTOS 1
180 #endif
181
182 #endif /* AFS_PARAM_H */