1 /*
2  * linux/include/linux/hfs_fs_sb.h
3  *
4  * Copyright (C) 1995-1997  Paul H. Hargrove
5  * This file may be distributed under the terms of the GNU General Public License.
6  *
7  * This file defines the type (struct hfs_sb_info) which contains the
8  * HFS-specific information in the in-core superblock.
9  */
10 
11 #ifndef _LINUX_HFS_FS_SB_H
12 #define _LINUX_HFS_FS_SB_H
13 
14 /* forward declaration: */
15 struct hfs_name;
16 
17 typedef int (*hfs_namein_fn) (char *, const struct hfs_name *);
18 typedef void (*hfs_nameout_fn) (struct hfs_name *, const char *, int);
19 typedef void (*hfs_ifill_fn) (struct inode *, ino_t, const int);
20 
21 /*
22  * struct hfs_sb_info
23  *
24  * The HFS-specific part of a Linux (struct super_block)
25  */
26 struct hfs_sb_info {
27 	int			magic;		/* A magic number */
28 	struct hfs_mdb		*s_mdb;		/* The HFS MDB */
29 	int			s_quiet;	/* Silent failure when
30 						   changing owner or mode? */
31 	int			s_lowercase;	/* Map names to lowercase? */
32 	int			s_afpd;		/* AFPD compatible mode? */
33 	int                     s_version;      /* version info */
34 	hfs_namein_fn		s_namein;	/* The function used to
35 						   map Mac filenames to
36 						   Linux filenames */
37 	hfs_nameout_fn		s_nameout;	/* The function used to
38 						    map Linux filenames
39 						    to Mac filenames */
40 	hfs_ifill_fn		s_ifill;	/* The function used
41 						   to fill in inode fields */
42 	const struct hfs_name	*s_reserved1;	/* Reserved names */
43 	const struct hfs_name	*s_reserved2;	/* Reserved names */
44 	__u32			s_type;		/* Type for new files */
45 	__u32			s_creator;	/* Creator for new files */
46 	umode_t			s_umask;	/* The umask applied to the
47 						   permissions on all files */
48 	uid_t			s_uid;		/* The uid of all files */
49 	gid_t			s_gid;		/* The gid of all files */
50 	char			s_conv;		/* Type of text conversion */
51 };
52 
53 #endif
54