ded6e666daef86fb61e96d5befcb1c45bcce96f5
[openafs.git] / src / util / afsutil_prototypes.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 _AFSUTIL_PROTOTYPES_H
11 #define _AFSUTIL_PROTOTYPES_H
12
13 #if defined(AFS_PTHREAD_ENV) && !defined(AFS_NT40_ENV)
14 # include <pthread.h>
15 #endif
16
17 /* afs_atomlist.c */
18
19
20 /* afs_lhash.c */
21
22
23 /* assert.c */
24 extern void AssertionFailed(char *file, int line);
25
26
27 /* base32.c */
28 extern char *int_to_base32(b32_string_t s, int a);
29 extern int base32_to_int(char *s);
30
31 /* base64.c */
32 extern char *int_to_base64(b64_string_t s, int a);
33 extern int base64_to_int(char *s);
34
35 /* casestrcpy.c */
36 extern char *lcstring(char *d, char *s, int n);
37 extern char *ucstring(char *d, char *s, int n);
38 extern char *strcompose(char *buf, size_t len, ...);
39 extern void stolower(char *s);
40 extern void stoupper(char *s);
41
42 /* config_file.c && krb5_locl.h */
43 typedef struct afs_config_section_struct afs_config_section;
44 extern int afs_config_parse_file_multi(const char *, afs_config_section **);
45 extern int afs_config_parse_file(const char *, afs_config_section **);
46 extern int afs_config_file_free(afs_config_section *s);
47 extern const char* fs_config_get_string(const afs_config_section *, ...);
48 extern int afs_config_get_bool(const afs_config_section *, ...);
49 extern int afs_config_get_int(const afs_config_section *c, ...);
50
51 /* dirpath.c */
52 extern unsigned int initAFSDirPath(void);
53 extern const char *getDirPath(afsdir_id_t string_id);
54 extern int ConstructLocalPath(const char *cpath, const char *relativeTo,
55                               char **fullPathBufp);
56 extern int ConstructLocalBinPath(const char *cpath, char **fullPathBufp);
57 extern int ConstructLocalLogPath(const char *cpath, char **fullPathBufp);
58
59 /* errmap_nt.c */
60 extern int nterr_nt2unix(long ntErr, int defaultErr);
61
62 /* exec.c */
63 extern char* afs_exec_alt(int argc, char **argv, const char *prefix,
64                           const char *suffix);
65
66 /* fileutil.c */
67 extern int renamefile(const char *oldname, const char *newname);
68 extern void FilepathNormalizeEx(char *path, int slashType);
69 extern void FilepathNormalize(char *path);
70
71 /* flipbase64.c */
72 extern char *int_to_base32(b32_string_t s, int a);
73 extern int base32_to_int(char *s);
74 #if defined(AFS_NAMEI_ENV) && !defined(AFS_NT40_ENV)
75 /* base 64 converters for namei interface. Flip bits to differences are
76  * early in name.
77  */
78 #define int32_to_flipbase64(S, A) int64_to_flipbase64(S, (afs_uint64)(A))
79 extern char *int64_to_flipbase64(lb64_string_t s, afs_uint64 a);
80 extern afs_int64 flipbase64_to_int64(char *s);
81 #endif
82
83 /* get_krbrlm.c */
84 extern int afs_krb_get_lrealm(char *r, int n);
85 extern int afs_krb_exclusion(char *name);
86 extern int afs_is_foreign_ticket_name(char *tname, char *tinst, char * tcell, char *localrealm);
87 /* hostparse.c */
88 extern struct hostent *hostutil_GetHostByName(char *ahost);
89 extern char *hostutil_GetNameByINet(afs_uint32 addr);
90 extern afs_uint32 extractAddr(char *line, int maxSize);
91 extern char *afs_inet_ntoa_r(afs_uint32 addr, char *buf);
92 extern char *gettmpdir(void);
93
94 /* hputil.c */
95 #ifdef AFS_HPUX_ENV
96 #ifndef AFS_HPUX102_ENV
97 extern int utimes(char *file, struct timeval tvp[2]);
98 #endif
99 #if !defined(AFS_HPUX110_ENV)
100 extern int random(void);
101 extern void srandom(int seed);
102 #endif
103 extern int getdtablesize(void);
104 extern void setlinebuf(FILE * file);
105 extern void psignal(unsigned int sig, char *s);
106 #endif
107
108 /* kreltime.c */
109 struct ktime;
110 struct ktime_date;
111 extern afs_int32 ktimeRelDate_ToInt32(struct ktime_date *kdptr);
112 extern int Int32To_ktimeRelDate(afs_int32 int32Date,
113                                 struct ktime_date *kdptr);
114 extern int ktimeDate_FromInt32(afs_int32 timeSecs,
115                                struct ktime_date *ktimePtr);
116 extern afs_int32 ParseRelDate(char *dateStr, struct ktime_date *relDatePtr);
117 extern char *RelDatetoString(struct ktime_date *datePtr);
118 extern afs_int32 Add_RelDate_to_Time(struct ktime_date *relDatePtr,
119                                      afs_int32 atime);
120
121 /* ktime.c */
122 extern char *ktime_DateOf(afs_int32 atime);
123 extern afs_int32 ktime_Str2int32(char *astr);
124 extern int ktime_ParsePeriodic(char *adate, struct ktime *ak);
125 extern int ktime_DisplayString(struct ktime *aparm, char *astring);
126 extern afs_int32 ktime_next(struct ktime *aktime, afs_int32 afrom);
127 extern afs_int32 ktime_DateToInt32(char *adate, afs_int32 * aint32);
128 extern char *ktime_GetDateUsage(void);
129 extern afs_int32 ktime_InterpretDate(struct ktime_date *akdate);
130
131 /* netutils.c */
132 extern afs_uint32 extract_Addr(char *line, int maxSize);
133 extern int parseNetRestrictFile(afs_uint32 outAddrs[], afs_uint32 * mask,
134                                 afs_uint32 * mtu, afs_uint32 maxAddrs,
135                                 afs_uint32 * nAddrs, char reason[],
136                                 const char *fileName);
137 extern int ParseNetInfoFile(afs_uint32 * final, afs_uint32 * mask,
138                             afs_uint32 * mtu, int max, char reason[],
139                             const char *fileName);
140 extern int filterAddrs(afs_uint32 addr1[], afs_uint32 addr2[],
141                        afs_uint32 mask1[], afs_uint32 mask2[],
142                        afs_uint32 mtu1[], afs_uint32 mtu2[], int n1, int n2);
143 extern int parseNetFiles(afs_uint32 addrbuf[], afs_uint32 maskbuf[],
144                          afs_uint32 mtubuf[], afs_uint32 max, char reason[],
145                          const char *niFileName, const char *nrFileName);
146
147
148 /* pthread_glock.c */
149
150
151 /* pthread_threadname.c */
152 #if AFS_PTHREAD_ENV && !defined(AFS_NT40_ENV)
153 extern void afs_pthread_setname(pthread_t thread, const char *threadname);
154 extern void afs_pthread_setname_self(const char *threadname);
155 #elif defined(AFS_NT40_ENV)
156 # define afs_pthread_setname(thread, threadname) (void)0
157 # define afs_pthread_setname_self(threadname) (void)0
158 #else
159 /* Allow unconditional references to afs_pthread_setname_self to
160  * reduce #ifdef spaghetti.
161  */
162 #define afs_pthread_setname_self(threadname) (void)0
163 #endif
164
165 /* readdir_nt.c */
166
167
168 /* regex.c */
169
170
171 /* secutil_nt.c */
172
173
174 /* serverLog.c */
175 extern void WriteLogBuffer(char *buf, afs_uint32 len);
176 extern void SetDebug_Signal(int signo);
177 extern void ResetDebug_Signal(int signo);
178 extern void SetupLogSignals(void);
179 extern int OpenLog(const char *fileName);
180 extern int ReOpenLog(const char *fileName);
181 extern int LogThreadNum(void);
182 extern void LogCommandLine(int argc, char **argv, const char *progname,
183                            const char *version, const char *logstring,
184                            void (*log) (const char *format, ...));
185
186 /* snprintf.c */
187
188
189 /* sys.c */
190
191
192 /* uuid.c */
193 extern afs_int32 afs_uuid_equal(afsUUID * u1, afsUUID * u2);
194 extern afs_int32 afs_uuid_is_nil(afsUUID * u1);
195 extern void afs_htonuuid(afsUUID * uuidp);
196 extern void afs_ntohuuid(afsUUID * uuidp);
197 extern afs_int32 afs_uuid_create(afsUUID * uuid);
198 extern u_short afs_uuid_hash(afsUUID * uuid);
199 #if !defined(KERNEL) && !defined(UKERNEL)
200 extern int afsUUID_from_string(const char *str, afsUUID * uuid);
201 extern int afsUUID_to_string(const afsUUID * uuid, char *str, size_t strsz);
202 #endif
203
204 /* volparse.c */
205 extern afs_int32 volutil_GetPartitionID(char *aname);
206 extern char *volutil_PartitionName_r(int avalue, char *tbuffer, int buflen);
207 extern afs_int32 volutil_PartitionName2_r(afs_int32 part, char *tbuffer, size_t buflen);
208 extern char *volutil_PartitionName(int avalue);
209 extern afs_int32 util_GetInt32(char *as, afs_int32 * aval);
210 extern afs_uint32 util_GetUInt32(char *as, afs_uint32 * aval);
211 extern afs_int32 util_GetInt64(char *as, afs_int64 * aval);
212 extern afs_uint32 util_GetUInt64(char *as, afs_uint64 * aval);
213 extern afs_int32 util_GetHumanInt32(char *as, afs_int32 * aval);
214
215 /* winsock_nt.c */
216
217
218 #endif /* _AFSUTIL_PROTOTYPES_H */