util: always reopen the log file
[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 /* base32.c */
23 extern char *int_to_base32(b32_string_t s, int a);
24 extern int base32_to_int(char *s);
25
26 /* base64.c */
27 extern char *int_to_base64(b64_string_t s, int a);
28 extern int base64_to_int(char *s);
29
30 /* dirpath.c */
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,
34                               char **fullPathBufp);
35 extern int ConstructLocalBinPath(const char *cpath, char **fullPathBufp);
36 extern int ConstructLocalLogPath(const char *cpath, char **fullPathBufp);
37
38 /* errmap_nt.c */
39 extern int nterr_nt2unix(long ntErr, int defaultErr);
40
41 /* exec.c */
42 extern char* afs_exec_alt(int argc, char **argv, const char *prefix,
43                           const char *suffix);
44
45 /* fileutil.c */
46 extern void FilepathNormalizeEx(char *path, int slashType);
47 extern void FilepathNormalize(char *path);
48
49 /* flipbase64.c */
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
54  * early in name.
55  */
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);
59 #endif
60
61 /* hostparse.c */
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);
67
68 /* hputil.c */
69 #ifdef AFS_HPUX_ENV
70 #ifndef AFS_HPUX102_ENV
71 extern int utimes(char *file, struct timeval tvp[2]);
72 #endif
73 #if !defined(AFS_HPUX110_ENV)
74 extern int random(void);
75 extern void srandom(int seed);
76 #endif
77 extern int getdtablesize(void);
78 extern void setlinebuf(FILE * file);
79 extern void psignal(unsigned int sig, char *s);
80 #endif
81
82 /* kreltime.c */
83 struct ktime;
84 struct ktime_date;
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,
93                                      afs_int32 atime);
94
95 /* ktime.c */
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);
104
105 /* pthread_glock.c */
106
107
108 /* pthread_threadname.c */
109 #if defined(AFS_PTHREAD_ENV) && !defined(AFS_NT40_ENV)
110 extern void afs_pthread_setname_self(const char *threadname);
111 #else
112 /* Allow unconditional references to afs_pthread_setname_self to
113  * reduce #ifdef spaghetti.
114  */
115 #define afs_pthread_setname_self(threadname) (void)0
116 #endif
117
118 /* readdir_nt.c */
119
120
121 /* regex.c */
122
123
124 /* secutil_nt.c */
125
126
127 /* serverLog.c */
128 extern void WriteLogBuffer(char *buf, afs_uint32 len);
129 extern void SetDebug_Signal(int signo);
130 extern void ResetDebug_Signal(int signo);
131 extern void SetupLogSignals(void);
132 extern int OpenLog(const char *fileName);
133 extern int ReOpenLog(const char *fileName);
134 extern int LogThreadNum(void);
135 extern void LogCommandLine(int argc, char **argv, const char *progname,
136                            const char *version, const char *logstring,
137                            void (*log) (const char *format, ...));
138 extern void LogDesWarning(void);
139
140 /* snprintf.c */
141
142
143 /* sys.c */
144
145 /* tabular_output.c */
146 struct util_Table;
147 extern struct util_Table* util_newTable(int Type, int numColumns,
148                 char **ColumnHeaders, int *ColumnContentTypes,
149                 int *ColumnWidths, int sortByColumn);
150 extern char ** util_newCellContents(struct util_Table*);
151 extern int util_printTableHeader(struct util_Table *Table);
152 extern int util_printTableBody(struct util_Table *Table);
153 extern int util_printTableFooter(struct util_Table *Table);
154 extern int util_printTable(struct util_Table *Table);
155 extern int util_addTableBodyRow(struct util_Table *Table, char **Contents);
156 extern int util_setTableBodyRow(struct util_Table *Table, int RowIndex,
157                                 char **Contents);
158 extern int util_setTableHeader(struct util_Table *Table, char **Contents);
159 extern int util_setTableFooter(struct util_Table *Table, char **Contents);
160 extern int util_freeTable(struct util_Table* Table);
161
162 /* uuid.c */
163 extern afs_int32 afs_uuid_equal(afsUUID * u1, afsUUID * u2);
164 extern afs_int32 afs_uuid_is_nil(afsUUID * u1);
165 extern void afs_htonuuid(afsUUID * uuidp);
166 extern void afs_ntohuuid(afsUUID * uuidp);
167 extern afs_int32 afs_uuid_create(afsUUID * uuid);
168 extern u_short afs_uuid_hash(afsUUID * uuid);
169 #if !defined(KERNEL) && !defined(UKERNEL)
170 extern int afsUUID_from_string(const char *str, afsUUID * uuid);
171 extern int afsUUID_to_string(const afsUUID * uuid, char *str, size_t strsz);
172 #endif
173
174 /* volparse.c */
175 extern afs_int32 volutil_GetPartitionID(char *aname);
176 extern char *volutil_PartitionName_r(int avalue, char *tbuffer, int buflen);
177 extern afs_int32 volutil_PartitionName2_r(afs_int32 part, char *tbuffer, size_t buflen);
178 extern char *volutil_PartitionName(int avalue);
179 extern afs_int32 util_GetInt32(char *as, afs_int32 * aval);
180 extern afs_uint32 util_GetUInt32(char *as, afs_uint32 * aval);
181 extern afs_int32 util_GetInt64(char *as, afs_int64 * aval);
182 extern afs_uint32 util_GetUInt64(char *as, afs_uint64 * aval);
183 extern afs_int32 util_GetHumanInt32(char *as, afs_int32 * aval);
184
185 /* winsock_nt.c */
186
187
188 #endif /* _AFSUTIL_PROTOTYPES_H */