[Box Backup-commit] COMMIT r1451 - in box/chris/general/lib: . intercept
boxbackup-dev@fluffy.co.uk
boxbackup-dev@fluffy.co.uk
Sat, 24 Mar 2007 14:52:00 +0000
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