devfs_devs.c (149144) | devfs_devs.c (149146) |
---|---|
1/*- 2 * Copyright (c) 2000,2004 3 * Poul-Henning Kamp. All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 11 unchanged lines hidden (view full) --- 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 * 26 * From: FreeBSD: src/sys/miscfs/kernfs/kernfs_vfsops.c 1.36 27 * | 1/*- 2 * Copyright (c) 2000,2004 3 * Poul-Henning Kamp. All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 11 unchanged lines hidden (view full) --- 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 * 26 * From: FreeBSD: src/sys/miscfs/kernfs/kernfs_vfsops.c 1.36 27 * |
28 * $FreeBSD: head/sys/fs/devfs/devfs_devs.c 149144 2005-08-16 19:08:01Z phk $ | 28 * $FreeBSD: head/sys/fs/devfs/devfs_devs.c 149146 2005-08-16 19:25:02Z phk $ |
29 */ 30 31#include "opt_devfs.h" 32#include "opt_mac.h" 33 34#include <sys/param.h> 35#include <sys/systm.h> 36#include <sys/conf.h> --- 29 unchanged lines hidden (view full) --- 66 &devfs_noverflowwant, 0, "Size of DEVFS overflow table"); 67SYSCTL_UINT(_vfs_devfs, OID_AUTO, generation, CTLFLAG_RD, 68 &devfs_generation, 0, "DEVFS generation number"); 69SYSCTL_UINT(_vfs_devfs, OID_AUTO, inodes, CTLFLAG_RD, 70 &devfs_numino, 0, "DEVFS inodes"); 71SYSCTL_UINT(_vfs_devfs, OID_AUTO, topinode, CTLFLAG_RD, 72 &devfs_topino, 0, "DEVFS highest inode#"); 73 | 29 */ 30 31#include "opt_devfs.h" 32#include "opt_mac.h" 33 34#include <sys/param.h> 35#include <sys/systm.h> 36#include <sys/conf.h> --- 29 unchanged lines hidden (view full) --- 66 &devfs_noverflowwant, 0, "Size of DEVFS overflow table"); 67SYSCTL_UINT(_vfs_devfs, OID_AUTO, generation, CTLFLAG_RD, 68 &devfs_generation, 0, "DEVFS generation number"); 69SYSCTL_UINT(_vfs_devfs, OID_AUTO, inodes, CTLFLAG_RD, 70 &devfs_numino, 0, "DEVFS inodes"); 71SYSCTL_UINT(_vfs_devfs, OID_AUTO, topinode, CTLFLAG_RD, 72 &devfs_topino, 0, "DEVFS highest inode#"); 73 |
74/* 75 * Helper sysctl for devname(3). We're given a struct cdev * and return 76 * the name, if any, registered by the device driver. 77 */ 78static int 79sysctl_devname(SYSCTL_HANDLER_ARGS) 80{ 81 int error; 82 dev_t ud; 83 struct cdev *dev, **dp; 84 85 error = SYSCTL_IN(req, &ud, sizeof (ud)); 86 if (error) 87 return (error); 88 if (ud == NODEV) 89 return(EINVAL); 90 dp = devfs_itod(ud); 91 if (dp == NULL) 92 return(ENOENT); 93 dev = *dp; 94 if (dev == NULL) 95 return(ENOENT); 96 return(SYSCTL_OUT(req, dev->si_name, strlen(dev->si_name) + 1)); 97 return (error); 98} 99 100SYSCTL_PROC(_kern, OID_AUTO, devname, CTLTYPE_OPAQUE|CTLFLAG_RW|CTLFLAG_ANYBODY, 101 NULL, 0, sysctl_devname, "", "devname(3) handler"); 102 103SYSCTL_INT(_debug_sizeof, OID_AUTO, cdev, CTLFLAG_RD, 104 0, sizeof(struct cdev), "sizeof(struct cdev)"); 105 |
|
74static int * 75devfs_itor(int inode) 76{ 77 if (inode < NDEVFSINO) 78 return (&devfs_ref[inode]); 79 else if (inode < NDEVFSINO + devfs_noverflow) 80 return (&devfs_refoverflow[inode - NDEVFSINO]); 81 else --- 348 unchanged lines hidden --- | 106static int * 107devfs_itor(int inode) 108{ 109 if (inode < NDEVFSINO) 110 return (&devfs_ref[inode]); 111 else if (inode < NDEVFSINO + devfs_noverflow) 112 return (&devfs_refoverflow[inode - NDEVFSINO]); 113 else --- 348 unchanged lines hidden --- |