sys-warnings-and-unused-variables-cleanup-20010606
[openafs.git] / src / sys / afssyscalls.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_AFSSYSCALLS_H
11 #define AFS_AFSSYSCALLS_H
12
13 #ifndef AFS_NT40_ENV
14
15 #ifndef lint
16 #endif
17
18 /* Declare Inode type. */
19 #ifdef AFS_64BIT_IOPS_ENV
20 #ifdef AFS_SGI62_ENV
21 typedef uint64_t Inode;
22 #else
23 #ifdef AFS_NAMEI_ENV
24 #include <sys/types.h>
25 #ifdef AFS_NEC_SX92_ENV
26 typedef unsigned long Inode;
27 #else /* AFS_NEC_SX92_ENV */
28 #ifdef AFS_64BIT_ENV
29 typedef afs_uint64 Inode;
30 #else
31 typedef u_int64_t Inode;
32 #endif
33 #endif /* AFS_NEC_SX92_ENV */
34 #else
35 error Need 64 bit Inode defined.
36 #endif /* AFS_NAMEI_ENV */
37 #endif /* AFS_SGI62_ENV */
38 #else /* AFS_64BIT_IOPS_ENV */
39 typedef unsigned int Inode;
40 #endif
41
42 #ifndef AFS_NAMEI_ENV
43
44 #ifdef AFS_DEBUG_IOPS
45 extern FILE *inode_debug_log;
46 #define AFS_DEBUG_IOPS_LOG(F) (inode_debug_log = (F))
47 #else
48 #define AFS_DEBUG_IOPS_LOG(F)
49 #endif
50
51 /* Declarations for inode system calls. */
52 #ifdef AFS_SGI_XFS_IOPS_ENV
53 extern uint64_t icreatename64(int dev, char *partname, int p0, int p1, int p2,
54                               int p3);
55 extern int iopen64(int dev, uint64_t inode, int usrmod);
56 extern int iinc64(int dev, uint64_t inode, int inode_p1);
57 extern int idec64(int dev, uint64_t inode, int inode_p1);
58 extern int ilistinode64(int dev, uint64_t inode, void *data, int *datalen);
59
60 #ifdef AFS_DEBUG_IOPS
61 extern uint64_t debug_icreatename64(int dev, char *partname, int p0, int p1,
62                                     int p2, int p3, char *file, int line);
63 extern int debug_iopen64(int dev, uint64_t inode, int usrmod,
64                          char *file, int line);
65 extern int debug_iinc64(int dev, uint64_t inode, int inode_p1,
66                         char *file, int line);
67 extern int debug_idec64(int dev, uint64_t inode, int inode_p1,
68                         char *file, int line);
69
70 #endif /* AFS_DEBUG_IOPS */
71 #endif /* AFS_SGI_XFS_IOPS_ENV */
72
73 #ifdef AFS_64BIT_IOPS_ENV
74 extern int inode_read(int dev, Inode inode, int inode_p1,
75                       uint32_t offset, char *cbuf, uint32_t count);
76 extern int inode_write(int dev, Inode inode, int inode_p1,
77                       uint32_t offset, char *cbuf, uint32_t count);
78 #else
79 extern int inode_read();
80 extern int inode_write();
81 #endif
82
83 #ifdef AFS_SGI_VNODE_GLUE
84 /* flag: 1 = has NUMA, 0 = no NUMA, -1 = kernel decides. */
85 extern int afs_init_kernel_config(int flag);
86 #endif /* AFS_SGI_VNODE_GLUE */
87
88 #endif /* AFS_NAMEI_ENV */
89
90
91 /* minimum size of string to hand to PrintInode */
92 #define AFS_INO_STR_LENGTH 32
93 typedef char afs_ino_str_t[AFS_INO_STR_LENGTH];
94
95 /* Print either 32 or 64 bit inode numbers. char * may be NULL. In which case
96  * a local statis is returned.
97  */
98 #ifdef AFS_64BIT_IOPS_ENV
99 extern char *PrintInode(afs_ino_str_t, Inode);
100 #else
101 extern char *PrintInode();
102 #endif
103
104 /* Some places in the code assume icreate can return 0 when there's
105  * an error.
106  */
107 #define VALID_INO(I) ((I) != (Inode)-1 && (I) != (Inode)0)
108
109 #ifndef AFS_NAMEI_ENV 
110
111 /* Definitions of inode macros. */
112 #ifdef AFS_SGI_XFS_IOPS_ENV
113 #ifdef AFS_DEBUG_IOPS
114 #define ICREATE(DEV, NAME, NI, P0, P1, P2, P3) \
115          debug_icreatename64(DEV, NAME, P0, P1, P2, P3, __FILE__, __LINE__)
116 #define IDEC(DEV, INO, VID)     debug_idec64(DEV, INO, VID, __FILE__, __LINE__)
117 #define IINC(DEV, INO, VID)     debug_iinc64(DEV, INO, VID, __FILE__, __LINE__)
118 #define IOPEN(DEV, INO, MODE) debug_iopen64(DEV, INO, MODE, __FILE__, __LINE__)
119 #else
120 #define ICREATE(DEV, NAME, NI, P0, P1, P2, P3) \
121                 icreatename64(DEV, NAME, P0, P1, P2, P3)
122 #define IDEC(DEV, INO, VID)     idec64(DEV, INO, VID)
123 #define IINC(DEV, INO, VID)     iinc64(DEV, INO, VID)
124 #define IOPEN(DEV, INO, MODE)   iopen64(DEV, INO, MODE)
125 #endif
126 #define AFS_IOPS_DEFINED 1
127 #endif /* AFS_SGI_IOPS_ENV */
128
129
130 #ifndef AFS_IOPS_DEFINED
131 #ifdef AFS_DEBUG_IOPS
132 #else
133 #define ICREATE(DEV, NAME, NI, P0, P1, P2, P3) \
134         icreate(DEV, NI, P0, P1, P2, P3)
135 #define IDEC(DEV, INO, VID)     idec(DEV, INO, VID)
136 #define IINC(DEV, INO, VID)     iinc(DEV, INO, VID)
137 #define IOPEN(DEV, INO, MODE)   iopen(DEV, INO, MODE)
138 #endif
139 #endif /* AFS_IOPS_DEFINED */
140
141
142 #endif /* AFS_NAMEI_ENV */
143
144 #endif /* AFS_NT40_ENV */
145
146 #endif /* AFS_AFSSYSCALLS_H */