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: */
15struct hfs_name;
16
17typedef int (*hfs_namein_fn) (char *, const struct hfs_name *);
18typedef void (*hfs_nameout_fn) (struct hfs_name *, const char *, int);
19typedef 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 */
26struct 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