From: braam Date: Wed, 19 Feb 2003 04:29:19 +0000 (+0000) Subject: - add new files move over from portals X-Git-Tag: v1_7_100~1^94~101 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=7c9ba105a6e8b03b36d11049a2307dbcfc4534aa;p=fs%2Flustre-release.git - add new files move over from portals --- diff --git a/lustre/include/linux/lustre_handles.h b/lustre/include/linux/lustre_handles.h new file mode 100644 index 0000000..993a323 --- /dev/null +++ b/lustre/include/linux/lustre_handles.h @@ -0,0 +1,39 @@ +#ifndef __LINUX_HANDLES_H_ +#define __LINUX_HANDLES_H_ + +#ifdef __KERNEL__ +#include +#include +#include +#endif + +typedef void (*portals_handle_addref_cb)(void *object); + +/* These handles are most easily used by having them appear at the very top of + * whatever object that you want to make handles for. ie: + * + * struct ldlm_lock { + * struct portals_handle handle; + * ... + * }; + * + * Now you're able to assign the results of cookie2handle directly to an + * ldlm_lock. If it's not at the top, you'll want to hack up a macro that + * uses some offsetof() magic. */ + +struct portals_handle { + struct list_head h_link; + __u64 h_cookie; + portals_handle_addref_cb h_addref; +}; + +/* handles.c */ + +/* Add a handle to the hash table */ +void portals_handle_hash(struct portals_handle *, portals_handle_addref_cb); +void portals_handle_unhash(struct portals_handle *); +void *portals_handle2object(__u64 cookie); +int portals_handle_init(void); +void portals_handle_cleanup(void); + +#endif