1 /*-
2  ***********************************************************************
3  *
4  * $Id: fsinfo.h,v 1.47 2014/07/18 06:40:44 mavrik Exp $
5  *
6  ***********************************************************************
7  *
8  * Copyright 2000-2014 The FTimes Project, All Rights Reserved.
9  *
10  ***********************************************************************
11  */
12 #ifndef _FSINFO_H_INCLUDED
13 #define _FSINFO_H_INCLUDED
14 
15 /*-
16  ***********************************************************************
17  *
18  * Defines
19  *
20  ***********************************************************************
21  */
22 #define FSINFO_MAX_STRING 255
23 
24 enum eFSTypes
25 {
26   FSTYPE_UNSUPPORTED = 0,
27   FSTYPE_AIX,
28   FSTYPE_CDFS,
29   FSTYPE_CIFS,
30   FSTYPE_CRAMFS,
31   FSTYPE_DATAPLOW_ZFS,
32   FSTYPE_DEVFS,
33   FSTYPE_EXT2,
34   FSTYPE_FAT,
35   FSTYPE_FAT_REMOTE,
36   FSTYPE_FFS,
37   FSTYPE_GETDATAFS,
38   FSTYPE_HFS,
39   FSTYPE_JFS,
40   FSTYPE_MINIX,
41   FSTYPE_NA,
42   FSTYPE_NFS,
43   FSTYPE_NFS3,
44   FSTYPE_NTFS,
45   FSTYPE_NTFS3G,
46   FSTYPE_NTFS_REMOTE,
47   FSTYPE_NWCOMPAT,
48   FSTYPE_NWCOMPAT_REMOTE,
49   FSTYPE_NWFS,
50   FSTYPE_NWFS_REMOTE,
51   FSTYPE_PTS,
52   FSTYPE_RAMFS,
53   FSTYPE_REISER,
54   FSTYPE_SMB,
55   FSTYPE_SQUASHFS,
56   FSTYPE_TMPFS,
57   FSTYPE_UDF,
58   FSTYPE_UFS,
59   FSTYPE_UFS2,
60   FSTYPE_VXFS,
61   FSTYPE_VZFS,
62   FSTYPE_XFS,
63   FSTYPE_YAFFS,
64   FSTYPE_ZFS
65 };
66 
67 
68 /*-
69  ***********************************************************************
70  *
71  * Platform Specific Defines
72  *
73  ***********************************************************************
74  */
75 #ifdef FTimes_AIX
76 #ifndef MNT_AIX
77 #define MNT_AIX      0       /* AIX physical fs "oaix"         */
78 #endif
79 #ifndef MNT_NFS
80 #define MNT_NFS      2       /* SUN Network File System "nfs"  */
81 #endif
82 #ifndef MNT_JFS
83 #define MNT_JFS      3       /* AIX R3 physical fs "jfs"       */
84 #endif
85 #ifndef MNT_CDROM
86 #define MNT_CDROM    5       /* CDROM File System "cdrom"      */
87 #endif
88 #ifndef MNT_SFS
89 #define MNT_SFS     16       /* AIX Special FS (STREAM mounts) */
90 #endif
91 #ifndef MNT_CACHEFS
92 #define MNT_CACHEFS 17       /* Cachefs file system            */
93 #endif
94 #ifndef MNT_NFS3
95 #define MNT_NFS3    18       /* NFSv3 file system              */
96 #endif
97 #ifndef MNT_AUTOFS
98 #define MNT_AUTOFS  19       /* Automount file system          */
99 #endif
100 #ifndef MNT_VXFS
101 #define MNT_VXFS  0x20       /* Veritas file system            */
102 #endif
103 #endif
104 
105 #ifdef FTimes_LINUX
106 #ifndef CIFS_SUPER_MAGIC
107 #define CIFS_SUPER_MAGIC 0xff534d42
108 #endif
109 #ifndef CRAMFS_SUPER_MAGIC
110 #define CRAMFS_SUPER_MAGIC 0x28cd3d45
111 #endif
112 #ifndef EXT2_OLD_SUPER_MAGIC
113 #define EXT2_OLD_SUPER_MAGIC  0xEF51
114 #endif
115 #ifndef EXT2_SUPER_MAGIC
116 #define EXT2_SUPER_MAGIC      0xEF53
117 #endif
118 #ifndef ISOFS_SUPER_MAGIC
119 #define ISOFS_SUPER_MAGIC     0x9660
120 #endif
121 #ifndef JFS_SUPER_MAGIC
122 #define JFS_SUPER_MAGIC   0x3153464a /* JFS1 */
123 #endif
124 #ifndef MINIX_SUPER_MAGIC
125 #define MINIX_SUPER_MAGIC     0x138f
126 #endif
127 #ifndef MSDOS_SUPER_MAGIC
128 #define MSDOS_SUPER_MAGIC     0x4d44
129 #endif
130 #ifndef NFS_SUPER_MAGIC
131 #define NFS_SUPER_MAGIC       0x6969
132 #endif
133 #ifndef NTFS_SUPER_MAGIC
134 #define NTFS_SUPER_MAGIC  0x5346544e
135 #endif
136 #ifndef NTFS3G_SUPER_MAGIC
137 #define NTFS3G_SUPER_MAGIC 0x65735546
138 #endif
139 #ifndef PROC_SUPER_MAGIC
140 #define PROC_SUPER_MAGIC      0x9fa0
141 #endif
142 #ifndef PTS_SUPER_MAGIC
143 #define PTS_SUPER_MAGIC       0x1cd1
144 #endif
145 #ifndef UFS_MAGIC
146 #define UFS_MAGIC         0x00011954
147 #endif
148 #ifndef UFS2_MAGIC
149 #define UFS2_MAGIC        0x19540119
150 #endif
151 #ifndef REISERFS_SUPER_MAGIC
152 #define REISERFS_SUPER_MAGIC 0x52654973
153 #endif
154 #ifndef SMB_SUPER_MAGIC
155 #define SMB_SUPER_MAGIC       0x517B
156 #endif
157 #ifndef SQUASHFS_SUPER_MAGIC
158 #define SQUASHFS_SUPER_MAGIC 0x71736873
159 #endif
160 #ifndef TMPFS_SUPER_MAGIC
161 #define TMPFS_SUPER_MAGIC  0x1021994
162 #endif
163 #ifndef VXFS_SUPER_MAGIC
164 #define VXFS_SUPER_MAGIC  0xa501fcf5
165 #endif
166 #ifndef VZFS_SUPER_MAGIC
167 #define VZFS_SUPER_MAGIC  0x565a4653
168 #endif
169 #ifndef RAMFS_SUPER_MAGIC
170 #define RAMFS_SUPER_MAGIC 0x858458f6
171 #endif
172 #ifndef XFS_SUPER_MAGIC
173 #define XFS_SUPER_MAGIC   0x58465342
174 #endif
175 #ifndef UDF_SUPER_MAGIC
176 #define UDF_SUPER_MAGIC   0x15013346
177 #endif
178 #ifndef YAFFS_SUPER_MAGIC
179 #define YAFFS_SUPER_MAGIC 0x5941ff53
180 #endif
181 #endif
182 
183 
184 /*-
185  ***********************************************************************
186  *
187  * Function Prototypes
188  *
189  ***********************************************************************
190  */
191 int                 GetFileSystemType(char *pcPath, char *pcError);
192 
193 
194 /*-
195  ***********************************************************************
196  *
197  * External Variables
198  *
199  ***********************************************************************
200  */
201 extern char         gaacFSType[][FSINFO_MAX_STRING];
202 
203 #endif /* !_FSINFO_H_INCLUDED */
204