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