1*8269e767SBrooks Davis.\" 2*8269e767SBrooks Davis.\" Copyright (c) 1999 Chris Costello 3*8269e767SBrooks Davis.\" All rights reserved. 4*8269e767SBrooks Davis.\" 5*8269e767SBrooks Davis.\" Redistribution and use in source and binary forms, with or without 6*8269e767SBrooks Davis.\" modification, are permitted provided that the following conditions 7*8269e767SBrooks Davis.\" are met: 8*8269e767SBrooks Davis.\" 1. Redistributions of source code must retain the above copyright 9*8269e767SBrooks Davis.\" notice, this list of conditions and the following disclaimer. 10*8269e767SBrooks Davis.\" 2. Redistributions in binary form must reproduce the above copyright 11*8269e767SBrooks Davis.\" notice, this list of conditions and the following disclaimer in the 12*8269e767SBrooks Davis.\" documentation and/or other materials provided with the distribution. 13*8269e767SBrooks Davis.\" 14*8269e767SBrooks Davis.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15*8269e767SBrooks Davis.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16*8269e767SBrooks Davis.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17*8269e767SBrooks Davis.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18*8269e767SBrooks Davis.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19*8269e767SBrooks Davis.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20*8269e767SBrooks Davis.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21*8269e767SBrooks Davis.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22*8269e767SBrooks Davis.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23*8269e767SBrooks Davis.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24*8269e767SBrooks Davis.\" SUCH DAMAGE. 25*8269e767SBrooks Davis.\" 26*8269e767SBrooks Davis.Dd March 28, 2012 27*8269e767SBrooks Davis.Dt KLDSTAT 2 28*8269e767SBrooks Davis.Os 29*8269e767SBrooks Davis.Sh NAME 30*8269e767SBrooks Davis.Nm kldstat 31*8269e767SBrooks Davis.Nd get status of kld file 32*8269e767SBrooks Davis.Sh LIBRARY 33*8269e767SBrooks Davis.Lb libc 34*8269e767SBrooks Davis.Sh SYNOPSIS 35*8269e767SBrooks Davis.In sys/linker.h 36*8269e767SBrooks Davis.Ft int 37*8269e767SBrooks Davis.Fn kldstat "int fileid" "struct kld_file_stat *stat" 38*8269e767SBrooks Davis.Sh DESCRIPTION 39*8269e767SBrooks DavisThe 40*8269e767SBrooks Davis.Fn kldstat 41*8269e767SBrooks Davissystem call writes the info for the file referred to by 42*8269e767SBrooks Davis.Fa fileid 43*8269e767SBrooks Davisinto 44*8269e767SBrooks Davis.Fa stat . 45*8269e767SBrooks Davis.Bd -literal 46*8269e767SBrooks Davisstruct kld_file_stat { 47*8269e767SBrooks Davis int version; /* set to sizeof(struct kld_file_stat) */ 48*8269e767SBrooks Davis char name[MAXPATHLEN]; 49*8269e767SBrooks Davis int refs; 50*8269e767SBrooks Davis int id; 51*8269e767SBrooks Davis caddr_t address; 52*8269e767SBrooks Davis size_t size; 53*8269e767SBrooks Davis char pathname[MAXPATHLEN]; 54*8269e767SBrooks Davis}; 55*8269e767SBrooks Davis.Ed 56*8269e767SBrooks Davis.Bl -tag -width XXXaddress 57*8269e767SBrooks Davis.It version 58*8269e767SBrooks DavisThis field is set to the size of the structure mentioned above by the code 59*8269e767SBrooks Daviscalling 60*8269e767SBrooks Davis.Fn kldstat , 61*8269e767SBrooks Davisand not 62*8269e767SBrooks Davis.Fn kldstat 63*8269e767SBrooks Davisitself. 64*8269e767SBrooks Davis.It name 65*8269e767SBrooks DavisThe name of the file referred to by 66*8269e767SBrooks Davis.Fa fileid . 67*8269e767SBrooks Davis.It refs 68*8269e767SBrooks DavisThe number of modules referenced by 69*8269e767SBrooks Davis.Fa fileid . 70*8269e767SBrooks Davis.It id 71*8269e767SBrooks DavisThe id of the file specified in 72*8269e767SBrooks Davis.Fa fileid . 73*8269e767SBrooks Davis.It address 74*8269e767SBrooks DavisThe load address of the kld file. 75*8269e767SBrooks Davis.It size 76*8269e767SBrooks DavisThe amount of memory in bytes allocated by the file. 77*8269e767SBrooks Davis.It pathname 78*8269e767SBrooks DavisThe full name of the file referred to by 79*8269e767SBrooks Davis.Fa fileid , 80*8269e767SBrooks Davisincluding the path. 81*8269e767SBrooks Davis.El 82*8269e767SBrooks Davis.Sh RETURN VALUES 83*8269e767SBrooks Davis.Rv -std kldstat 84*8269e767SBrooks Davis.Sh ERRORS 85*8269e767SBrooks DavisThe information for the file referred to by 86*8269e767SBrooks Davis.Fa fileid 87*8269e767SBrooks Davisis filled into the structure pointed to by 88*8269e767SBrooks Davis.Fa stat 89*8269e767SBrooks Davisunless: 90*8269e767SBrooks Davis.Bl -tag -width Er 91*8269e767SBrooks Davis.It Bq Er ENOENT 92*8269e767SBrooks DavisThe file was not found (probably not loaded). 93*8269e767SBrooks Davis.It Bq Er EINVAL 94*8269e767SBrooks DavisThe version specified in the 95*8269e767SBrooks Davis.Fa version 96*8269e767SBrooks Davisfield of stat is not the proper version. 97*8269e767SBrooks DavisYou would need to rebuild world, the 98*8269e767SBrooks Daviskernel, or your application, if this error occurs, given that you did properly 99*8269e767SBrooks Davisfill in the 100*8269e767SBrooks Davis.Fa version 101*8269e767SBrooks Davisfield. 102*8269e767SBrooks Davis.It Bq Er EFAULT 103*8269e767SBrooks DavisThere was a problem copying one, some, or all of the fields into 104*8269e767SBrooks Davis.Fa stat 105*8269e767SBrooks Davisin the 106*8269e767SBrooks Davis.Xr copyout 9 107*8269e767SBrooks Davisfunction. 108*8269e767SBrooks Davis.El 109*8269e767SBrooks Davis.Sh SEE ALSO 110*8269e767SBrooks Davis.Xr kldfind 2 , 111*8269e767SBrooks Davis.Xr kldfirstmod 2 , 112*8269e767SBrooks Davis.Xr kldload 2 , 113*8269e767SBrooks Davis.Xr kldnext 2 , 114*8269e767SBrooks Davis.Xr kldsym 2 , 115*8269e767SBrooks Davis.Xr kldunload 2 , 116*8269e767SBrooks Davis.Xr modfind 2 , 117*8269e767SBrooks Davis.Xr modfnext 2 , 118*8269e767SBrooks Davis.Xr modnext 2 , 119*8269e767SBrooks Davis.Xr modstat 2 , 120*8269e767SBrooks Davis.Xr kld 4 , 121*8269e767SBrooks Davis.Xr kldstat 8 122*8269e767SBrooks Davis.Sh HISTORY 123*8269e767SBrooks DavisThe 124*8269e767SBrooks Davis.Nm kld 125*8269e767SBrooks Davisinterface first appeared in 126*8269e767SBrooks Davis.Fx 3.0 . 127*8269e767SBrooks Davis.Sh BUGS 128*8269e767SBrooks DavisThe pathname may not be accurate if the file system mounts have 129*8269e767SBrooks Davischanged since the module was loaded, or if this function is called 130*8269e767SBrooks Daviswithin a chrooted environment. 131