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"
12 #include <linux/rcupdate.h>
15 typedef struct plugin_set plugin_set
;
17 TYPE_SAFE_HASH_DECLARE(ps
, plugin_set
);
20 unsigned long hashval
;
25 /* perm plugin for this file */
27 /* tail policy plugin. Only meaningful for regular files */
28 formatting_plugin
*formatting
;
29 /* hash plugin. Only meaningful for directories. */
31 /* fibration plugin. Only meaningful for directories. */
32 fibration_plugin
*fibration
;
33 /* plugin of stat-data */
35 /* plugin of items a directory is built of */
36 item_plugin
*dir_item
;
38 cipher_plugin
*cipher
;
40 digest_plugin
*digest
;
41 /* compression plugin */
42 compression_plugin
*compression
;
43 /* compression mode plugin */
44 compression_mode_plugin
*compression_mode
;
46 cluster_plugin
*cluster
;
47 /* this specifies file plugin of regular children.
48 only meaningful for directories */
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__ */
71 c-indentation-style: "K&R"