afsd: Tidy up system calls
[openafs.git] / src / afsd / afsd.h
index 28b5ec3..a30d565 100644 (file)
@@ -25,12 +25,33 @@ int afsd_run(void);
 /* a function that is called from afsd_fork in a new process/thread */
 typedef void* (*afsd_callback_func) (void *rock);
 
+/* syscall nonsense. Here goes! */
+#ifdef AFS_DARWIN100_ENV
+typedef user_addr_t afsd_syscall_param_t;
+#elif AFS_DARWIN80_ENV
+typedef unsigned int afsd_syscall_param_t;
+#else
+typedef long afsd_syscall_param_t;
+#endif
+
+#ifdef AFS_DARWIN100_ENV
+#define CAST_SYSCALL_PARAM(X) CAST_USER_ADDR_T(X)
+#else
+#define CAST_SYSCALL_PARAM(X) ((afsd_syscall_param_t) X)
+#endif
+struct afsd_syscall_args {
+    int syscall;
+    afsd_syscall_param_t params[7];
+    const char *rn;
+    int rxpri;
+};
+
 /* afsd.c expects these to be implemented; it does not implement them itself! */
 void afsd_mount_afs(const char *rn, const char *mountdir);
 int afsd_check_mount(const char *rn, const char *mountdir);
 void afsd_set_rx_rtpri(void);
 void afsd_set_afsd_rtpri(void);
-int afsd_call_syscall();
+int afsd_call_syscall(struct afsd_syscall_args *args);
 int afsd_fork(int wait, afsd_callback_func cbf, void *rock);
 int afsd_daemon(int nochdir, int noclose);