mm-only debug patch...
[mmotm.git] / fs / reiser4 / plugin / plugin_set.h
blob5afb61a3d9ab8b206ff68ef15e3b6c5629ac5e56
1 /* Copyright 2001, 2002, 2003 by Hans Reiser, licensing governed by
2 * reiser4/README */
4 /* Reiser4 plugin set definition.
5 See fs/reiser4/plugin/plugin_set.c for details */
7 #if !defined(__PLUGIN_SET_H__)
8 #define __PLUGIN_SET_H__
10 #include "../type_safe_hash.h"
11 #include "plugin.h"
13 #include <linux/rcupdate.h>
15 struct plugin_set;
16 typedef struct plugin_set plugin_set;
18 TYPE_SAFE_HASH_DECLARE(ps, plugin_set);
20 struct plugin_set {
21 unsigned long hashval;
22 /* plugin of file */
23 file_plugin *file;
24 /* plugin of dir */
25 dir_plugin *dir;
26 /* perm plugin for this file */
27 perm_plugin *perm;
28 /* tail policy plugin. Only meaningful for regular files */
29 formatting_plugin *formatting;
30 /* hash plugin. Only meaningful for directories. */
31 hash_plugin *hash;
32 /* fibration plugin. Only meaningful for directories. */
33 fibration_plugin *fibration;
34 /* plugin of stat-data */
35 item_plugin *sd;
36 /* plugin of items a directory is built of */
37 item_plugin *dir_item;
38 /* cipher plugin */
39 cipher_plugin *cipher;
40 /* digest plugin */
41 digest_plugin *digest;
42 /* compression plugin */
43 compression_plugin *compression;
44 /* compression mode plugin */
45 compression_mode_plugin *compression_mode;
46 /* cluster plugin */
47 cluster_plugin *cluster;
48 /* this specifies file plugin of regular children.
49 only meaningful for directories */
50 file_plugin *create;
51 ps_hash_link link;
54 extern plugin_set *plugin_set_get_empty(void);
55 extern void plugin_set_put(plugin_set * set);
57 extern int init_plugin_set(void);
58 extern void done_plugin_set(void);
60 extern reiser4_plugin *aset_get(plugin_set * set, pset_member memb);
61 extern int set_plugin(plugin_set ** set, pset_member memb,
62 reiser4_plugin * plugin);
63 extern int aset_set_unsafe(plugin_set ** set, pset_member memb,
64 reiser4_plugin * plugin);
65 extern reiser4_plugin_type aset_member_to_type_unsafe(pset_member memb);
67 /* __PLUGIN_SET_H__ */
68 #endif
70 /* Make Linus happy.
71 Local variables:
72 c-indentation-style: "K&R"
73 mode-name: "LC"
74 c-basic-offset: 8
75 tab-width: 8
76 fill-column: 120
77 End: