]> code.citadel.org Git - citadel.git/blobdiff - citadel/sysdep_decls.h
- declare *printf format specifiers if gcc detected
[citadel.git] / citadel / sysdep_decls.h
index 87784ce78f25b82c7c02baa4d5e5d2471a92e6b3..2078182c07a8d3fd624c1d76d9e499a2d3baf8bb 100644 (file)
@@ -1,5 +1,17 @@
 /* $Id$ */
+
+#include <pthread.h>
+#include "sysdep.h"
+#include "server.h"
+
+#ifdef __GNUC__
+void lprintf (int loglevel, const char *format, ...) __attribute__((__format__(__printf__,2,3)));
+void cprintf (const char *format, ...) __attribute__((__format__(__printf__,1,2)));
+#else
 void lprintf (int loglevel, const char *format, ...);
+void cprintf (const char *format, ...);
+#endif
+
 void init_sysdep (void);
 void begin_critical_section (int which_one);
 void end_critical_section (int which_one);
@@ -9,10 +21,9 @@ struct CitContext *MyContext (void);
 struct CitContext *CreateNewContext (void);
 void InitMyContext (struct CitContext *con);
 void client_write (char *buf, int nbytes);
-void cprintf (const char *format, ...);
 int client_read_to (char *buf, int bytes, int timeout);
 int client_read (char *buf, int bytes);
-int client_gets (char **buf);
+int client_gets (char *buf);
 void sysdep_master_cleanup (void);
 void kill_session (int session_to_kill);
 void *sd_context_loop (struct CitContext *con);
@@ -20,8 +31,19 @@ void start_daemon (int do_close_stdio);
 void cmd_nset (char *cmdbuf);
 int convert_login (char *NameToConvert);
 void *worker_thread (void *arg);
-inline void become_session(struct CitContext *which_con);
+void become_session(struct CitContext *which_con);
 void CtdlRedirectOutput(FILE *fp, int sock);
+void InitializeMasterCC(void);
+void init_master_fdset(void);
+void create_worker(void);
+
+extern DLEXP int num_sessions;
+extern DLEXP volatile int time_to_die;
+extern DLEXP int verbosity;
+extern DLEXP int rescan[];
+extern DLEXP pthread_t initial_thread;
 
-extern int num_sessions;
-extern int time_to_die;
+extern DLEXP struct worker_node {
+        pthread_t tid;
+        struct worker_node *next;
+} *worker_list;