Blame view
fs/btrfs/hash.h
1.17 KB
6cbd55707
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
/* * Copyright (C) 2007 Oracle. All rights reserved. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public * License v2 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 for more details. * * You should have received a copy of the GNU General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 021110-1307, USA. */ |
24af03ea5
|
18 19 |
#ifndef __HASH__ #define __HASH__ |
615f996fb
|
20 |
|
14a958e67
|
21 22 23 24 25 |
int __init btrfs_hash_init(void); void btrfs_hash_exit(void); u32 btrfs_crc32c(u32 crc, const void *address, unsigned int length); |
615f996fb
|
26 27 |
static inline u64 btrfs_name_hash(const char *name, int len) { |
14a958e67
|
28 |
return btrfs_crc32c((u32)~1, name, len); |
615f996fb
|
29 |
} |
f186373fe
|
30 31 32 33 34 35 36 |
/* * Figure the key offset of an extended inode ref */ static inline u64 btrfs_extref_hash(u64 parent_objectid, const char *name, int len) { |
14a958e67
|
37 |
return (u64) btrfs_crc32c(parent_objectid, name, len); |
f186373fe
|
38 |
} |
24af03ea5
|
39 |
#endif |