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 *afs_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 void FilepathNormalizeEx(char *path
, int slashType
);
47 extern void FilepathNormalize(char *path
);
50 extern char *int_to_base32(b32_string_t s
, int a
);
51 extern int base32_to_int(char *s
);
52 #if !defined(AFS_NT40_ENV)
53 /* base 64 converters for namei interface. Flip bits to differences are
56 #define int32_to_flipbase64(S, A) int64_to_flipbase64(S, (afs_uint64)(A))
57 extern char *int64_to_flipbase64(lb64_string_t s
, afs_uint64 a
);
58 extern afs_int64
flipbase64_to_int64(char *s
);
62 extern struct hostent
*hostutil_GetHostByName(char *ahost
);
63 extern char *hostutil_GetNameByINet(afs_uint32 addr
);
64 extern afs_uint32
extractAddr(char *line
, int maxSize
);
65 extern char *afs_inet_ntoa_r(afs_uint32 addr
, char *buf
);
66 extern char *gettmpdir(void);
70 #ifndef AFS_HPUX102_ENV
71 extern int utimes(char *file
, struct timeval tvp
[2]);
73 #if !defined(AFS_HPUX110_ENV)
74 extern int random(void);
75 extern void srandom(int seed
);
77 extern int getdtablesize(void);
78 extern void setlinebuf(FILE * file
);
79 extern void psignal(unsigned int sig
, char *s
);
85 extern afs_int32
ktimeRelDate_ToInt32(struct ktime_date
*kdptr
);
86 extern int Int32To_ktimeRelDate(afs_int32 int32Date
,
87 struct ktime_date
*kdptr
);
88 extern int ktimeDate_FromInt32(afs_int32 timeSecs
,
89 struct ktime_date
*ktimePtr
);
90 extern afs_int32
ParseRelDate(char *dateStr
, struct ktime_date
*relDatePtr
);
91 extern char *RelDatetoString(struct ktime_date
*datePtr
);
92 extern afs_int32
Add_RelDate_to_Time(struct ktime_date
*relDatePtr
,
96 extern char *ktime_DateOf(afs_int32 atime
);
97 extern afs_int32
ktime_Str2int32(char *astr
);
98 extern int ktime_ParsePeriodic(char *adate
, struct ktime
*ak
);
99 extern int ktime_DisplayString(struct ktime
*aparm
, char *astring
);
100 extern afs_int32
ktime_next(struct ktime
*aktime
, afs_int32 afrom
);
101 extern afs_int32
ktime_DateToInt32(char *adate
, afs_int32
* aint32
);
102 extern char *ktime_GetDateUsage(void);
103 extern afs_int32
ktime_InterpretDate(struct ktime_date
*akdate
);
105 /* pthread_glock.c */
108 /* pthread_threadname.c */
109 #if defined(AFS_PTHREAD_ENV) && !defined(AFS_NT40_ENV)
110 extern void afs_pthread_setname_self(const char *threadname
);
112 /* Allow unconditional references to afs_pthread_setname_self to
113 * reduce #ifdef spaghetti.
115 #define afs_pthread_setname_self(threadname) (void)0
129 extern void WriteLogBuffer(char *buf
, afs_uint32 len
);
130 extern void SetDebug_Signal(int signo
);
131 extern void ResetDebug_Signal(int signo
);
132 extern void SetupLogSignals(void);
133 extern int OpenLog(struct logOptions
*opts
);
134 extern int ReOpenLog(void);
135 extern int LogThreadNum(void);
136 extern void LogCommandLine(int argc
, char **argv
, const char *progname
,
137 const char *version
, const char *logstring
,
138 void (*log
) (const char *format
, ...));
139 extern void LogDesWarning(void);
140 extern int GetLogLevel(void);
141 extern enum logDest
GetLogDest(void);
142 extern const char *GetLogFilename(void);
149 /* tabular_output.c */
151 extern struct util_Table
* util_newTable(int Type
, int numColumns
,
152 char **ColumnHeaders
, int *ColumnContentTypes
,
153 int *ColumnWidths
, int sortByColumn
);
154 extern char ** util_newCellContents(struct util_Table
*);
155 extern int util_printTableHeader(struct util_Table
*Table
);
156 extern int util_printTableBody(struct util_Table
*Table
);
157 extern int util_printTableFooter(struct util_Table
*Table
);
158 extern int util_printTable(struct util_Table
*Table
);
159 extern int util_addTableBodyRow(struct util_Table
*Table
, char **Contents
);
160 extern int util_setTableBodyRow(struct util_Table
*Table
, int RowIndex
,
162 extern int util_setTableHeader(struct util_Table
*Table
, char **Contents
);
163 extern int util_setTableFooter(struct util_Table
*Table
, char **Contents
);
164 extern int util_freeTable(struct util_Table
* Table
);
167 extern afs_int32
afs_uuid_equal(afsUUID
* u1
, afsUUID
* u2
);
168 extern afs_int32
afs_uuid_is_nil(afsUUID
* u1
);
169 extern void afs_htonuuid(afsUUID
* uuidp
);
170 extern void afs_ntohuuid(afsUUID
* uuidp
);
171 extern afs_int32
afs_uuid_create(afsUUID
* uuid
);
172 extern u_short
afs_uuid_hash(afsUUID
* uuid
);
173 #if !defined(KERNEL) && !defined(UKERNEL)
174 extern int afsUUID_from_string(const char *str
, afsUUID
* uuid
);
175 extern int afsUUID_to_string(const afsUUID
* uuid
, char *str
, size_t strsz
);
179 extern afs_int32
volutil_GetPartitionID(char *aname
);
180 extern char *volutil_PartitionName_r(int avalue
, char *tbuffer
, int buflen
);
181 extern afs_int32
volutil_PartitionName2_r(afs_int32 part
, char *tbuffer
, size_t buflen
);
182 extern char *volutil_PartitionName(int avalue
);
183 extern afs_int32
util_GetInt32(char *as
, afs_int32
* aval
);
184 extern afs_uint32
util_GetUInt32(char *as
, afs_uint32
* aval
);
185 extern afs_int32
util_GetInt64(char *as
, afs_int64
* aval
);
186 extern afs_uint32
util_GetUInt64(char *as
, afs_uint64
* aval
);
187 extern afs_int32
util_GetHumanInt32(char *as
, afs_int32
* aval
);
192 #endif /* _AFSUTIL_PROTOTYPES_H */