Deleted Added
full compact
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 ---