2 * Copyright 2000, International Business Machines Corporation and others.
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
10 #ifndef _AFSUTIL_PROTOTYPES_H
11 #define _AFSUTIL_PROTOTYPES_H
13 #if defined(AFS_PTHREAD_ENV) && !defined(AFS_NT40_ENV)
23 extern char *int_to_base32(b32_string_t s, int a);
24 extern int base32_to_int(char *s);
27 extern char *int_to_base64(b64_string_t s, int a);
28 extern int base64_to_int(char *s);
31 extern unsigned int initAFSDirPath(void);
32 extern const char *getDirPath(afsdir_id_t string_id);
33 extern int ConstructLocalPath(const char *cpath, const char *relativeTo,
35 extern int ConstructLocalBinPath(const char *cpath, char **fullPathBufp);
36 extern int ConstructLocalLogPath(const char *cpath, char **fullPathBufp);
39 extern int nterr_nt2unix(long ntErr, int defaultErr);
42 extern char* afs_exec_alt(int argc, char **argv, const char *prefix,
46 extern int renamefile(const char *oldname, const char *newname);
47 extern void FilepathNormalizeEx(char *path, int slashType);
48 extern void FilepathNormalize(char *path);
51 extern char *int_to_base32(b32_string_t s, int a);
52 extern int base32_to_int(char *s);
53 #if defined(AFS_NAMEI_ENV) && !defined(AFS_NT40_ENV)
54 /* base 64 converters for namei interface. Flip bits to differences are
57 #define int32_to_flipbase64(S, A) int64_to_flipbase64(S, (afs_uint64)(A))
58 extern char *int64_to_flipbase64(lb64_string_t s, afs_uint64 a);
59 extern afs_int64 flipbase64_to_int64(char *s);
63 extern struct hostent *hostutil_GetHostByName(char *ahost);
64 extern char *hostutil_GetNameByINet(afs_uint32 addr);
65 extern afs_uint32 extractAddr(char *line, int maxSize);
66 extern char *afs_inet_ntoa_r(afs_uint32 addr, char *buf);
67 extern char *gettmpdir(void);
71 #ifndef AFS_HPUX102_ENV
72 extern int utimes(char *file, struct timeval tvp[2]);
74 #if !defined(AFS_HPUX110_ENV)
75 extern int random(void);
76 extern void srandom(int seed);
78 extern int getdtablesize(void);
79 extern void setlinebuf(FILE * file);
80 extern void psignal(unsigned int sig, char *s);
86 extern afs_int32 ktimeRelDate_ToInt32(struct ktime_date *kdptr);
87 extern int Int32To_ktimeRelDate(afs_int32 int32Date,
88 struct ktime_date *kdptr);
89 extern int ktimeDate_FromInt32(afs_int32 timeSecs,
90 struct ktime_date *ktimePtr);
91 extern afs_int32 ParseRelDate(char *dateStr, struct ktime_date *relDatePtr);
92 extern char *RelDatetoString(struct ktime_date *datePtr);
93 extern afs_int32 Add_RelDate_to_Time(struct ktime_date *relDatePtr,
97 extern char *ktime_DateOf(afs_int32 atime);
98 extern afs_int32 ktime_Str2int32(char *astr);
99 extern int ktime_ParsePeriodic(char *adate, struct ktime *ak);
100 extern int ktime_DisplayString(struct ktime *aparm, char *astring);
101 extern afs_int32 ktime_next(struct ktime *aktime, afs_int32 afrom);
102 extern afs_int32 ktime_DateToInt32(char *adate, afs_int32 * aint32);
103 extern char *ktime_GetDateUsage(void);
104 extern afs_int32 ktime_InterpretDate(struct ktime_date *akdate);
107 extern afs_uint32 extract_Addr(char *line, int maxSize);
108 extern int parseNetRestrictFile(afs_uint32 outAddrs[], afs_uint32 * mask,
109 afs_uint32 * mtu, afs_uint32 maxAddrs,
110 afs_uint32 * nAddrs, char reason[],
111 const char *fileName);
112 extern int ParseNetInfoFile(afs_uint32 * final, afs_uint32 * mask,
113 afs_uint32 * mtu, int max, char reason[],
114 const char *fileName);
115 extern int filterAddrs(afs_uint32 addr1[], afs_uint32 addr2[],
116 afs_uint32 mask1[], afs_uint32 mask2[],
117 afs_uint32 mtu1[], afs_uint32 mtu2[], int n1, int n2);
118 extern int parseNetFiles(afs_uint32 addrbuf[], afs_uint32 maskbuf[],
119 afs_uint32 mtubuf[], afs_uint32 max, char reason[],
120 const char *niFileName, const char *nrFileName);
123 /* pthread_glock.c */
126 /* pthread_threadname.c */
127 #if defined(AFS_PTHREAD_ENV) && !defined(AFS_NT40_ENV)
128 extern void afs_pthread_setname_self(const char *threadname);
130 /* Allow unconditional references to afs_pthread_setname_self to
131 * reduce #ifdef spaghetti.
133 #define afs_pthread_setname_self(threadname) (void)0
146 extern void WriteLogBuffer(char *buf, afs_uint32 len);
147 extern void SetDebug_Signal(int signo);
148 extern void ResetDebug_Signal(int signo);
149 extern void SetupLogSignals(void);
150 extern int OpenLog(const char *fileName);
151 extern int ReOpenLog(const char *fileName);
152 extern int LogThreadNum(void);
153 extern void LogCommandLine(int argc, char **argv, const char *progname,
154 const char *version, const char *logstring,
155 void (*log) (const char *format, ...));
164 extern afs_int32 afs_uuid_equal(afsUUID * u1, afsUUID * u2);
165 extern afs_int32 afs_uuid_is_nil(afsUUID * u1);
166 extern void afs_htonuuid(afsUUID * uuidp);
167 extern void afs_ntohuuid(afsUUID * uuidp);
168 extern afs_int32 afs_uuid_create(afsUUID * uuid);
169 extern u_short afs_uuid_hash(afsUUID * uuid);
170 #if !defined(KERNEL) && !defined(UKERNEL)
171 extern int afsUUID_from_string(const char *str, afsUUID * uuid);
172 extern int afsUUID_to_string(const afsUUID * uuid, char *str, size_t strsz);
176 extern afs_int32 volutil_GetPartitionID(char *aname);
177 extern char *volutil_PartitionName_r(int avalue, char *tbuffer, int buflen);
178 extern afs_int32 volutil_PartitionName2_r(afs_int32 part, char *tbuffer, size_t buflen);
179 extern char *volutil_PartitionName(int avalue);
180 extern afs_int32 util_GetInt32(char *as, afs_int32 * aval);
181 extern afs_uint32 util_GetUInt32(char *as, afs_uint32 * aval);
182 extern afs_int32 util_GetInt64(char *as, afs_int64 * aval);
183 extern afs_uint32 util_GetUInt64(char *as, afs_uint64 * aval);
184 extern afs_int32 util_GetHumanInt32(char *as, afs_int32 * aval);
189 #endif /* _AFSUTIL_PROTOTYPES_H */