summaryrefslogtreecommitdiffstats
path: root/include/linux/hfs_fs_sb.h
blob: 826f388c50b72948014c296f5cc78e7302a7d5e4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/* 
 * linux/include/linux/hfs_fs_sb.h
 *
 * Copyright (C) 1995-1997  Paul H. Hargrove
 * This file may be distributed under the terms of the GNU Public License.
 *
 * This file defines the type (struct hfs_sb_info) which contains the
 * HFS-specific information in the in-core superblock.
 */

#ifndef _LINUX_HFS_FS_SB_H
#define _LINUX_HFS_FS_SB_H

/* forward declaration: */
struct hfs_name;

typedef int (*hfs_namein_fn) (char *, const struct hfs_name *);
typedef void (*hfs_nameout_fn) (struct hfs_name *, const char *, int);
typedef void (*hfs_ifill_fn) (struct inode *, ino_t, const int);

/*
 * struct hfs_sb_info
 *
 * The HFS-specific part of a Linux (struct super_block)
 */
struct hfs_sb_info {
	int			magic;		/* A magic number */
	struct hfs_mdb		*s_mdb;		/* The HFS MDB */
	int			s_quiet;	/* Silent failure when 
						   changing owner or mode? */
	int			s_lowercase;	/* Map names to lowercase? */
	int			s_afpd;		/* AFPD compatible mode? */
	int                     s_version;      /* version info */
	hfs_namein_fn		s_namein;	/* The function used to
						   map Mac filenames to
						   Linux filenames */
	hfs_nameout_fn		s_nameout;	/* The function used to
						    map Linux filenames
						    to Mac filenames */
	hfs_ifill_fn		s_ifill;	/* The function used
						   to fill in inode fields */
	const struct hfs_name	*s_reserved1;	/* Reserved names */
	const struct hfs_name	*s_reserved2;	/* Reserved names */
	__u32			s_type;		/* Type for new files */
	__u32			s_creator;	/* Creator for new files */
	umode_t			s_umask;	/* The umask applied to the
						   permissions on all files */
	uid_t			s_uid;		/* The uid of all files */
	gid_t			s_gid;		/* The gid of all files */
	char			s_conv;		/* Type of text conversion */
};

#endif