X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Finclude%2Flinux%2Flustre_handles.h;h=365010b21b2d30283506ccf944c9d68918eaed5c;hp=f644cf15928e6bd6251c356801d4762956d2fc79;hb=9c71dacaf0b16c10952b4d788016e70b667cd77b;hpb=040033cef24c5aca2967daf2da7a862abcd074cf diff --git a/lustre/include/linux/lustre_handles.h b/lustre/include/linux/lustre_handles.h index f644cf1..365010b 100644 --- a/lustre/include/linux/lustre_handles.h +++ b/lustre/include/linux/lustre_handles.h @@ -1,39 +1,55 @@ -#ifndef __LINUX_HANDLES_H_ -#define __LINUX_HANDLES_H_ +/* + * GPL HEADER START + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 only, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License version 2 for more details (a copy is included + * in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU General Public License + * version 2 along with this program; If not, see + * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + * + * GPL HEADER END + */ +/* + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. + * Use is subject to license terms. + */ +/* + * This file is part of Lustre, http://www.lustre.org/ + * Lustre is a trademark of Sun Microsystems, Inc. + */ + +#ifndef __LINUX_LUSTRE_HANDLES_H_ +#define __LINUX_LUSTRE_HANDLES_H_ + +#ifndef __LUSTRE_HANDLES_H_ +#error Do not #include this file directly. #include instead +#endif #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; -}; +#include +#include +#include -/* handles.c */ +#include /* for rcu_head{} */ +typedef struct rcu_head cfs_rcu_head_t; -/* Add a handle to the hash table */ -void class_handle_hash(struct portals_handle *, portals_handle_addref_cb); -void class_handle_unhash(struct portals_handle *); -void *class_handle2object(__u64 cookie); -int class_handle_init(void); -void class_handle_cleanup(void); +#endif /* ifdef __KERNEL__ */ #endif