[Box Backup-commit] COMMIT r1451 - in box/chris/general/lib: . intercept

boxbackup-dev at fluffy.co.uk boxbackup-dev at fluffy.co.uk
Sat Mar 24 14:52:00 GMT 2007


Author: chris
Date: 2007-03-24 14:52:00 +0000 (Sat, 24 Mar 2007)
New Revision: 1451

Added:
   box/chris/general/lib/intercept/
   box/chris/general/lib/intercept/intercept.h
Log:
Check in new intercept library header


Copied: box/chris/general/lib/intercept (from rev 1180, box/chris/merge/lib/intercept)

Copied: box/chris/general/lib/intercept/intercept.h (from rev 1292, box/chris/merge/lib/intercept/intercept.h)
===================================================================
--- box/chris/general/lib/intercept/intercept.h	                        (rev 0)
+++ box/chris/general/lib/intercept/intercept.h	2007-03-24 14:52:00 UTC (rev 1451)
@@ -0,0 +1,47 @@
+// --------------------------------------------------------------------------
+//
+// File
+//		Name:    intercept.h
+//		Purpose: Syscall interception code for unit tests
+//		Created: 2006/11/29
+//
+// --------------------------------------------------------------------------
+
+#ifndef INTERCEPT_H
+#define INTERCEPT_H
+#ifndef PLATFORM_CLIB_FNS_INTERCEPTION_IMPOSSIBLE
+
+#include <dirent.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+
+extern "C"
+{
+	typedef DIR           *(opendir_t) (const char *name);
+	typedef struct dirent *(readdir_t) (DIR *dir);
+	typedef struct dirent *(readdir_t) (DIR *dir);
+	typedef int            (closedir_t)(DIR *dir);
+#if defined __GNUC__ && __GNUC__ >= 2
+#define LINUX_WEIRD_LSTAT
+#define STAT_STRUCT struct stat /* should be stat64 */
+	typedef int            (lstat_t)   (int ver, const char *file_name, 
+	                                    STAT_STRUCT *buf);
+#else
+#define STAT_STRUCT struct stat
+	typedef int            (lstat_t)   (const char *file_name, 
+	                                    STAT_STRUCT *buf);
+#endif
+}
+
+void intercept_setup_error(const char *filename, unsigned int errorafter, 
+	int errortoreturn, int syscalltoerror);
+void intercept_setup_delay(const char *filename, unsigned int delay_after,
+	int delay_ms, int syscall_to_delay, int num_delays);
+bool intercept_triggered();
+
+void intercept_setup_readdir_hook(const char *dirname,  readdir_t hookfn);
+void intercept_setup_lstat_hook  (const char *filename, lstat_t   hookfn);
+
+#endif // !PLATFORM_CLIB_FNS_INTERCEPTION_IMPOSSIBLE
+#endif // !INTERCEPT_H




More information about the Boxbackup-commit mailing list