1 /* Copyright 2001, 2002, 2003 by Hans Reiser, licensing governed by
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"
13 #include <linux/rcupdate.h>
16 typedef struct plugin_set plugin_set
;
18 TYPE_SAFE_HASH_DECLARE(ps
, plugin_set
);
21 unsigned long hashval
;
26 /* perm plugin for this file */
28 /* tail policy plugin. Only meaningful for regular files */
29 formatting_plugin
*formatting
;
30 /* hash plugin. Only meaningful for directories. */
32 /* fibration plugin. Only meaningful for directories. */
33 fibration_plugin
*fibration
;
34 /* plugin of stat-data */
36 /* plugin of items a directory is built of */
37 item_plugin
*dir_item
;
39 cipher_plugin
*cipher
;
41 digest_plugin
*digest
;
42 /* compression plugin */
43 compression_plugin
*compression
;
44 /* compression mode plugin */
45 compression_mode_plugin
*compression_mode
;
47 cluster_plugin
*cluster
;
48 /* this specifies file plugin of regular children.
49 only meaningful for directories */
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__ */
72 c-indentation-style: "K&R"