xref: /dragonfly/lib/libfsid/libfsid.3 (revision e6e77800)
1.\" Copyright (c) 2010 The DragonFly Project.  All rights reserved.
2.\"
3.\" This code is derived from software contributed to The DragonFly Project
4.\" by Akos Kovacs <akoskovacs@gmx.com>
5.\"
6.\" Redistribution and use in source and binary forms, with or without
7.\" modification, are permitted provided that the following conditions
8.\" are met:
9.\"
10.\" 1. Redistributions of source code must retain the above copyright
11.\"    notice, this list of conditions and the following disclaimer.
12.\" 2. Redistributions in binary form must reproduce the above copyright
13.\"    notice, this list of conditions and the following disclaimer in
14.\"    the documentation and/or other materials provided with the
15.\"    distribution.
16.\" 3. Neither the name of The DragonFly Project nor the names of its
17.\"    contributors may be used to endorse or promote products derived
18.\"    from this software without specific, prior written permission.
19.\"
20.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
23.\" FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
24.\" COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
25.\" INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING,
26.\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
27.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
28.\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
29.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
30.\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31.\" SUCH DAMAGE.
32.\"
33.Dd December 12, 2010
34.Dt LIBFSID 3
35.Os
36.Sh NAME
37.Nm fsid_probe ,
38.Nm fsid_probe_all ,
39.Nm fsid_volname ,
40.Nm fsid_volname_all ,
41.Nm fsid_fsname ,
42.Nm fsid_fs_count
43.Nd general libfsid functions
44.Sh LIBRARY
45.Lb libfsid
46.Sh SYNOPSIS
47.In libfsid.h
48.Ft fsid_t
49.Fn fsid_probe "const char *dev" "const char *fs_name"
50.Ft fsid_t
51.Fn fsid_probe_all "const char *dev"
52.Ft char *
53.Fn fsid_volname "const char *dev" "const char *fs_name"
54.Ft char *
55.Fn fsid_volname_all "const char *dev"
56.Ft const char *
57.Fn fsid_fsname "fsid_t id"
58.Ft int
59.Fn fsid_fs_count "void"
60.Sh DESCRIPTION
61.\" General description
62The
63.Lb libfsid
64provides an interface to determine several filesystems
65and to get their volume labels.
66.Pp
67Most functions use the parameter
68.Fa dev
69for specifying the full path of the device and some of them have an additional
70.Fa fs_name
71parameter which is the name of the chosen filesystem.
72It can be:
73.Bl -tag -width ".Li MSDOSFS" -offset indent
74.It Li HAMMER
75A
76.Xr HAMMER 5
77filesystem
78.It Li UFS
79A
80.Xr UFS 5
81filesystem
82.It Li CD9660
83An ISO 9660 filesystem
84.It Li EXT2
85Linux' second extended filesystem
86.It Li MSDOSFS
87An
88.Xr msdos 5
89filesystem
90.El
91.Pp
92.\" fsid_probe function
93The
94.Fn fsid_probe
95function returns one of
96.Dv FSID_CD9660 ,
97.Dv FSID_EXT2 ,
98.Dv FSID_HAMMER
99or
100.Dv FSID_UFS
101if the device has the filesystem type as expected by the
102.Fa fs_name
103parameter, otherwise
104.Dv FSID_UNKNOWN .
105.Pp
106.\" fsid_probe_all function
107The
108.Fn fsid_probe_all
109function tries to identify the filesystem type.
110It returns
111.Dv FSID_UNKNOWN
112if the filesystem is unknown, or the check fails.
113Otherwise the returned value is one of:
114.Bl -tag -width ".Dv FSID_MSDOSFS" -offset indent
115.It Dv FSID_HAMMER
116A
117.Xr HAMMER 5
118filesystem
119.It Dv FSID_UFS
120A
121.Xr UFS 5
122filesystem
123.It Dv FSID_CD9660
124An ISO 9660 filesystem
125.It Dv FSID_EXT2
126Linux' second extended filesystem
127.It Dv FSID_MSDOSFS
128An
129.Xr msdos 5
130filesystem
131.El
132.Pp
133The name of the filesystem can be easily queried with the
134.Fn fsid_fsname
135function.
136.Pp
137The
138.Fn fsid_volname
139function returns the volume label, if the filesystem name is the same
140as specified by
141.Fa fs_name .
142If not, it returns
143.Dv NULL .
144.Pp
145The
146.Fn fsid_volname_all
147function returns the volume label, if the filesystem is known.
148Otherwise it returns
149.Dv NULL .
150.Pp
151The
152.Fn fsid_fsname
153function returns the name of the filesystem as a pointer to string.
154The
155.Fa id
156is usually the return value of a
157.Fn fsid_probe_all
158call.
159.Pp
160The
161.Fn fsid_fs_count
162function returns the number of supported filesystems.
163.Sh SEE ALSO
164.Xr devattr 3
165.Sh AUTHORS
166.An -nosplit
167The library and the manual page were written by
168.An Akos Kovacs Aq Mt akoskovacs@gmx.com .
169