summaryrefslogtreecommitdiffstats
path: root/fs/hfs/hfs.h
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>1999-01-04 16:03:48 +0000
committerRalf Baechle <ralf@linux-mips.org>1999-01-04 16:03:48 +0000
commit78c388aed2b7184182c08428db1de6c872d815f5 (patch)
tree4b2003b1b4ceb241a17faa995da8dd1004bb8e45 /fs/hfs/hfs.h
parenteb7a5bf93aaa4be1d7c6181100ab7639e74d67f7 (diff)
Merge with Linux 2.1.131 and more MIPS goodies.
(Did I mention that CVS is buggy ...)
Diffstat (limited to 'fs/hfs/hfs.h')
-rw-r--r--fs/hfs/hfs.h53
1 files changed, 29 insertions, 24 deletions
diff --git a/fs/hfs/hfs.h b/fs/hfs/hfs.h
index 9112a6db8..06138ab2d 100644
--- a/fs/hfs/hfs.h
+++ b/fs/hfs/hfs.h
@@ -64,12 +64,16 @@
#define HFS_EXT_CNID 3 /* EXTents B-tree */
#define HFS_CAT_CNID 4 /* CATalog B-tree */
#define HFS_BAD_CNID 5 /* BAD blocks file */
+#define HFS_ALLOC_CNID 6 /* ALLOCation file (HFS+) */
+#define HFS_START_CNID 7 /* STARTup file (HFS+) */
+#define HFS_ATTR_CNID 8 /* ATTRibutes file (HFS+) */
+#define HFS_EXCH_CNID 15 /* ExchangeFiles temp id */
/* values for hfs_cat_rec.cdrType */
-#define HFS_CDR_DIR 0x01
-#define HFS_CDR_FIL 0x02
-#define HFS_CDR_THD 0x03
-#define HFS_CDR_FTH 0x04
+#define HFS_CDR_DIR 0x01 /* folder (directory) */
+#define HFS_CDR_FIL 0x02 /* file */
+#define HFS_CDR_THD 0x03 /* folder (directory) thread */
+#define HFS_CDR_FTH 0x04 /* file thread */
/* legal values for hfs_ext_key.FkType and hfs_file.fork */
#define HFS_FK_DATA 0x00
@@ -484,42 +488,43 @@ extern void hfs_mdb_put(struct hfs_mdb *, int);
extern int hfs_part_find(hfs_sysmdb, int, int, hfs_s32 *, hfs_s32 *);
/* string.c */
-extern unsigned long hfs_strhash(const struct hfs_name *);
-extern int hfs_strcmp(const struct hfs_name *, const struct hfs_name *);
-extern int hfs_streq(const struct hfs_name *, const struct hfs_name *);
+extern unsigned int hfs_strhash(const unsigned char *, unsigned int);
+extern int hfs_strcmp(const unsigned char *, unsigned int,
+ const unsigned char *, unsigned int);
+extern int hfs_streq(const unsigned char *, unsigned int,
+ const unsigned char *, unsigned int);
extern void hfs_tolower(unsigned char *, int);
-extern __inline__ struct dentry
-*hfs_lookup_dentry(const char *name, const int len,
- struct dentry *base)
+static __inline__ struct dentry
+*hfs_lookup_dentry(struct dentry *base, const char *name, const int len)
{
struct qstr this;
this.name = name;
this.len = len;
- this.hash = full_name_hash(name, len);
+ this.hash = hfs_strhash(name, len);
return d_lookup(base, &this);
}
-/* drop a dentry for one of the special subdirectories */
-extern __inline__ void hfs_drop_special(const struct hfs_name *name,
- struct dentry *base,
+/* drop a dentry for one of the special directories.
+ * it's in the form of base/name/dentry. */
+static __inline__ void hfs_drop_special(struct dentry *base,
+ const struct hfs_name *name,
struct dentry *dentry)
{
struct dentry *dparent, *de;
- dparent = hfs_lookup_dentry(name->Name, name->Len, base);
+ dparent = hfs_lookup_dentry(base, name->Name, name->Len);
if (dparent) {
- de = hfs_lookup_dentry(dentry->d_name.name, dentry->d_name.len,
- dparent);
- dput(dparent);
-
- if (de) {
- if (!de->d_inode)
- d_drop(de);
- dput(de);
- }
+ de = hfs_lookup_dentry(dparent, dentry->d_name.name,
+ dentry->d_name.len);
+ if (de) {
+ if (!de->d_inode)
+ d_drop(de);
+ dput(de);
+ }
+ dput(dparent);
}
}