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