Whamcloud - gitweb
8f027dcc0fd33f20607e08f118bb4dbbf5b90288
[fs/lustre-release.git] / lustre / include / linux / obd_class.h
1 /* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
2  * vim:expandtab:shiftwidth=8:tabstop=8:
3  *
4  * GPL HEADER START
5  *
6  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License version 2 only,
10  * as published by the Free Software Foundation.
11  *
12  * This program is distributed in the hope that it will be useful, but
13  * WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15  * General Public License version 2 for more details (a copy is included
16  * in the LICENSE file that accompanied this code).
17  *
18  * You should have received a copy of the GNU General Public License
19  * version 2 along with this program; If not, see
20  * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf
21  *
22  * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
23  * CA 95054 USA or visit www.sun.com if you need additional information or
24  * have any questions.
25  *
26  * GPL HEADER END
27  */
28 /*
29  * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
30  * Use is subject to license terms.
31  */
32 /*
33  * This file is part of Lustre, http://www.lustre.org/
34  * Lustre is a trademark of Sun Microsystems, Inc.
35  */
36
37 #ifndef __LINUX_CLASS_OBD_H
38 #define __LINUX_CLASS_OBD_H
39
40 #ifndef __CLASS_OBD_H
41 #error Do not #include this file directly. #include <obd_class.h> instead
42 #endif
43
44 #ifndef __KERNEL__
45 #include <sys/types.h>
46 #include <libcfs/list.h>
47 #else
48 #include <asm/uaccess.h>
49 #include <linux/types.h>
50 #include <linux/fs.h>
51 #include <linux/time.h>
52 #include <linux/timer.h>
53 #endif
54
55 #ifdef __KERNEL__
56 # ifndef HAVE_SERVER_SUPPORT
57
58 /* hash info structure used by the directory hash */
59 #  define LDISKFS_DX_HASH_LEGACY        0
60 #  define LDISKFS_DX_HASH_HALF_MD4      1
61 #  define LDISKFS_DX_HASH_TEA           2
62 #  define LDISKFS_DX_HASH_R5            3
63 #  define LDISKFS_DX_HASH_SAME          4
64 #  define LDISKFS_DX_HASH_MAX           4
65
66 /* hash info structure used by the directory hash */
67 struct ldiskfs_dx_hash_info
68 {
69         u32     hash;
70         u32     minor_hash;
71         int     hash_version;
72         u32     *seed;
73 };
74
75 #  define LDISKFS_HTREE_EOF     0x7fffffff
76
77 int ldiskfsfs_dirhash(const char *name, int len, struct ldiskfs_dx_hash_info *hinfo);
78
79 # endif /* HAVE_SERVER_SUPPORT */
80 #endif /* __KERNEL__ */
81
82 /* obdo.c */
83 #ifdef __KERNEL__
84 void obdo_from_la(struct obdo *dst, struct lu_attr *la, obd_flag valid);
85 void obdo_refresh_inode(struct inode *dst, struct obdo *src, obd_flag valid);
86 void obdo_to_inode(struct inode *dst, struct obdo *src, obd_flag valid);
87 #define ll_inode_flags(inode)         (inode->i_flags)
88 #endif
89
90
91 #if !defined(__KERNEL__)
92 #define to_kdev_t(dev) dev
93 #define kdev_t_to_nr(dev) dev
94 #endif
95
96 #endif /* __LINUX_OBD_CLASS_H */