--- /dev/null
+#ifndef _OBD_SUPPORT
+#define _OBD_SUPPORT
+#include <linux/malloc.h>
+#include <linux/vmalloc.h>
+
+#define SIM_OBD_DEBUG
+
+/*
+ * Debug code
+ */
+/* global variables */
+extern int obd_debug_level;
+extern int obd_print_entry;
+
+/* debugging masks */
+#define D_PSDEV 1 /* debug information from psdev.c */
+#define D_INODE 2
+#define D_UNUSED2 4
+#define D_UNUSED3 8
+#define D_UNUSED4 16
+#define D_WARNING 32 /* misc warnings */
+#define D_EXT2 64 /* anything from ext2_debug */
+#define D_MALLOC 128 /* print malloc, free information */
+#define D_CACHE 256 /* cache-related items */
+#define D_INFO 512 /* general information, especially from interface.c */
+#define D_IOCTL 1024 /* ioctl related information */
+#define D_BLOCKS 2048 /* ext2 block allocation */
+
+#ifdef SIM_OBD_DEBUG
+#define CDEBUG(mask, format, a...) \
+ do { \
+ if (obd_debug_level & mask) { \
+ printk("(%s,l. %d): ", __FUNCTION__, __LINE__); \
+ printk(format, ## a); } \
+ } while (0)
+
+#define ENTRY \
+ if (obd_print_entry) \
+ printk("Process %d entered %s\n", current->pid, __FUNCTION__)
+
+#define EXIT \
+ if (obd_print_entry) \
+ printk("Process %d leaving %s\n", current->pid, __FUNCTION__)
+
+#else /* SIM_OBD_DEBUG */
+
+# define CDEBUG ;
+# define ENTRY ;
+# define EXIT ;
+
+#endif /* SIM_OBD_DEBUG */
+
+
+
+#define OBD_ALLOC(ptr, cast, size) \
+do { \
+ if (size <= 4096) { \
+ ptr = (cast)kmalloc((unsigned long) size, GFP_KERNEL); \
+ CDEBUG(D_MALLOC, "kmalloced: %x at %x.\n", \
+ (int) size, (int) ptr); \
+ } else { \
+ ptr = (cast)vmalloc((unsigned long) size); \
+ CDEBUG(D_MALLOC, "vmalloced: %x at %x.\n", \
+ (int) size, (int) ptr); \
+ } \
+ if (ptr == 0) { \
+ printk("kernel malloc returns 0 at %s:%d\n", \
+ __FILE__, __LINE__); \
+ } \
+ memset(ptr, 0, size); \
+} while (0)
+
+#define OBD_FREE(ptr,size) \
+do { \
+ if (size <= 4096) { \
+ kfree_s((ptr), (size)); \
+ CDEBUG(D_MALLOC, "kfreed: %x at %x.\n", \
+ (int) size, (int) ptr); \
+ } else { \
+ vfree((ptr)); \
+ CDEBUG(D_MALLOC, "vfreed: %x at %x.\n", \
+ (int) size, (int) ptr); \
+ } \
+} while (0)
+
+#endif