summaryrefslogtreecommitdiffstats
path: root/modules/splat
diff options
context:
space:
mode:
authorbehlendo <behlendo@7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c>2008-03-18 04:56:43 +0000
committerbehlendo <behlendo@7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c>2008-03-18 04:56:43 +0000
commit5d86345d3753fd6d873ba40480e1121eb7c28e21 (patch)
tree620b75865d244e22240e1c0f7159a05b3558b6e5 /modules/splat
parent1ec74a114cc4ec5055e7bc45cffda483505d8aba (diff)
Initial pass at a file API getf/releasef hooks
git-svn-id: https://outreach.scidac.gov/svn/spl/trunk@50 7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c
Diffstat (limited to 'modules/splat')
-rw-r--r--modules/splat/Makefile.in1
-rw-r--r--modules/splat/splat-ctl.c2
-rw-r--r--modules/splat/splat-file.c57
-rw-r--r--modules/splat/splat-internal.h3
-rw-r--r--modules/splat/splat-kobj.c6
5 files changed, 66 insertions, 3 deletions
diff --git a/modules/splat/Makefile.in b/modules/splat/Makefile.in
index 69f38b1f5..b437331ad 100644
--- a/modules/splat/Makefile.in
+++ b/modules/splat/Makefile.in
@@ -23,6 +23,7 @@ splat-objs += splat-rwlock.o
splat-objs += splat-time.o
splat-objs += splat-vnode.o
splat-objs += splat-kobj.o
+splat-objs += splat-file.o
splatmodule := splat.ko
splatmoduledir := @kmoduledir@/kernel/lib/
diff --git a/modules/splat/splat-ctl.c b/modules/splat/splat-ctl.c
index e9026cd8d..8c853fca5 100644
--- a/modules/splat/splat-ctl.c
+++ b/modules/splat/splat-ctl.c
@@ -593,6 +593,7 @@ splat_init(void)
SPLAT_SUBSYSTEM_INIT(time);
SPLAT_SUBSYSTEM_INIT(vnode);
SPLAT_SUBSYSTEM_INIT(kobj);
+ SPLAT_SUBSYSTEM_INIT(file);
dev = MKDEV(SPLAT_MAJOR, 0);
if ((rc = register_chrdev_region(dev, SPLAT_MINORS, "splatctl")))
@@ -654,6 +655,7 @@ splat_fini(void)
cdev_del(&splat_cdev);
unregister_chrdev_region(dev, SPLAT_MINORS);
+ SPLAT_SUBSYSTEM_FINI(file);
SPLAT_SUBSYSTEM_FINI(kobj);
SPLAT_SUBSYSTEM_FINI(vnode);
SPLAT_SUBSYSTEM_FINI(time);
diff --git a/modules/splat/splat-file.c b/modules/splat/splat-file.c
new file mode 100644
index 000000000..e05f1c5d7
--- /dev/null
+++ b/modules/splat/splat-file.c
@@ -0,0 +1,57 @@
+#include "splat-internal.h"
+
+#define SPLAT_SUBSYSTEM_FILE 0x0b00
+#define SPLAT_FILE_NAME "file"
+#define SPLAT_FILE_DESC "Kernel File Tests"
+
+#define SPLAT_FILE_TEST1_ID 0x0b01
+#define SPLAT_FILE_TEST1_NAME "getf"
+#define SPLAT_FILE_TEST1_DESC "File getf/releasef Test"
+
+static int
+splat_file_test1(struct file *file, void *arg)
+{
+ splat_vprint(file, SPLAT_FILE_TEST1_NAME, "WRITE A TEST, %d\n", 0);
+
+ return 0;
+} /* splat_file_test1() */
+
+
+splat_subsystem_t *
+splat_file_init(void)
+{
+ splat_subsystem_t *sub;
+
+ sub = kmalloc(sizeof(*sub), GFP_KERNEL);
+ if (sub == NULL)
+ return NULL;
+
+ memset(sub, 0, sizeof(*sub));
+ strncpy(sub->desc.name, SPLAT_FILE_NAME, SPLAT_NAME_SIZE);
+ strncpy(sub->desc.desc, SPLAT_FILE_DESC, SPLAT_DESC_SIZE);
+ INIT_LIST_HEAD(&sub->subsystem_list);
+ INIT_LIST_HEAD(&sub->test_list);
+ spin_lock_init(&sub->test_lock);
+ sub->desc.id = SPLAT_SUBSYSTEM_FILE;
+
+ SPLAT_TEST_INIT(sub, SPLAT_FILE_TEST1_NAME, SPLAT_FILE_TEST1_DESC,
+ SPLAT_FILE_TEST1_ID, splat_file_test1);
+
+ return sub;
+} /* splat_file_init() */
+
+void
+splat_file_fini(splat_subsystem_t *sub)
+{
+ ASSERT(sub);
+
+ SPLAT_TEST_FINI(sub, SPLAT_FILE_TEST1_ID);
+
+ kfree(sub);
+} /* splat_file_fini() */
+
+int
+splat_file_id(void)
+{
+ return SPLAT_SUBSYSTEM_FILE;
+} /* splat_file_id() */
diff --git a/modules/splat/splat-internal.h b/modules/splat/splat-internal.h
index aca4b3d38..4286a9571 100644
--- a/modules/splat/splat-internal.h
+++ b/modules/splat/splat-internal.h
@@ -172,6 +172,7 @@ splat_subsystem_t * splat_thread_init(void);
splat_subsystem_t * splat_time_init(void);
splat_subsystem_t * splat_vnode_init(void);
splat_subsystem_t * splat_kobj_init(void);
+splat_subsystem_t * splat_file_init(void);
void splat_condvar_fini(splat_subsystem_t *);
void splat_kmem_fini(splat_subsystem_t *);
@@ -183,6 +184,7 @@ void splat_thread_fini(splat_subsystem_t *);
void splat_time_fini(splat_subsystem_t *);
void splat_vnode_fini(splat_subsystem_t *);
void splat_kobj_fini(splat_subsystem_t *);
+void splat_file_fini(splat_subsystem_t *);
int splat_condvar_id(void);
int splat_kmem_id(void);
@@ -194,5 +196,6 @@ int splat_thread_id(void);
int splat_time_id(void);
int splat_vnode_id(void);
int splat_kobj_id(void);
+int splat_file_id(void);
#endif /* _SPLAT_INTERNAL_H */
diff --git a/modules/splat/splat-kobj.c b/modules/splat/splat-kobj.c
index c24057b0e..ad6c8a06c 100644
--- a/modules/splat/splat-kobj.c
+++ b/modules/splat/splat-kobj.c
@@ -2,15 +2,15 @@
#define SPLAT_SUBSYSTEM_KOBJ 0x0a00
#define SPLAT_KOBJ_NAME "kobj"
-#define SPLAT_KOBJ_DESC "Kernel File Tests"
+#define SPLAT_KOBJ_DESC "Kernel Kobj Tests"
#define SPLAT_KOBJ_TEST1_ID 0x0a01
#define SPLAT_KOBJ_TEST1_NAME "open"
-#define SPLAT_KOBJ_TEST1_DESC "File Open/Close Test"
+#define SPLAT_KOBJ_TEST1_DESC "Kobj Open/Close Test"
#define SPLAT_KOBJ_TEST2_ID 0x0a02
#define SPLAT_KOBJ_TEST2_NAME "size/read"
-#define SPLAT_KOBJ_TEST2_DESC "File Size/Read Test"
+#define SPLAT_KOBJ_TEST2_DESC "Kobj Size/Read Test"
#define SPLAT_KOBJ_TEST_FILE "/etc/fstab"