Changeset View
Changeset View
Standalone View
Standalone View
head/sys/fs/devfs/devfs_devs.c
Show All 22 Lines | |||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||||
* SUCH DAMAGE. | * SUCH DAMAGE. | ||||
* | * | ||||
* From: FreeBSD: src/sys/miscfs/kernfs/kernfs_vfsops.c 1.36 | * From: FreeBSD: src/sys/miscfs/kernfs/kernfs_vfsops.c 1.36 | ||||
* | * | ||||
* $FreeBSD$ | * $FreeBSD$ | ||||
*/ | */ | ||||
#include "opt_compat.h" | |||||
#include <sys/param.h> | #include <sys/param.h> | ||||
#include <sys/systm.h> | #include <sys/systm.h> | ||||
#include <sys/conf.h> | #include <sys/conf.h> | ||||
#include <sys/dirent.h> | #include <sys/dirent.h> | ||||
#include <sys/kernel.h> | #include <sys/kernel.h> | ||||
#include <sys/limits.h> | #include <sys/limits.h> | ||||
#include <sys/lock.h> | #include <sys/lock.h> | ||||
#include <sys/malloc.h> | #include <sys/malloc.h> | ||||
Show All 36 Lines | |||||
* Helper sysctl for devname(3). We're given a dev_t and return the | * Helper sysctl for devname(3). We're given a dev_t and return the | ||||
* name, if any, registered by the device driver. | * name, if any, registered by the device driver. | ||||
*/ | */ | ||||
static int | static int | ||||
sysctl_devname(SYSCTL_HANDLER_ARGS) | sysctl_devname(SYSCTL_HANDLER_ARGS) | ||||
{ | { | ||||
int error; | int error; | ||||
dev_t ud; | dev_t ud; | ||||
#ifdef COMPAT_FREEBSD11 | |||||
uint32_t ud_compat; | |||||
#endif | |||||
struct cdev_priv *cdp; | struct cdev_priv *cdp; | ||||
struct cdev *dev; | struct cdev *dev; | ||||
#ifdef COMPAT_FREEBSD11 | |||||
if (req->newlen == sizeof(ud_compat)) { | |||||
error = SYSCTL_IN(req, &ud_compat, sizeof(ud_compat)); | |||||
if (error == 0) | |||||
ud = ud_compat == (uint32_t)NODEV ? NODEV : ud_compat; | |||||
} else | |||||
#endif | |||||
error = SYSCTL_IN(req, &ud, sizeof (ud)); | error = SYSCTL_IN(req, &ud, sizeof (ud)); | ||||
if (error) | if (error) | ||||
return (error); | return (error); | ||||
if (ud == NODEV) | if (ud == NODEV) | ||||
return (EINVAL); | return (EINVAL); | ||||
dev = NULL; | dev = NULL; | ||||
dev_lock(); | dev_lock(); | ||||
TAILQ_FOREACH(cdp, &cdevp_list, cdp_list) | TAILQ_FOREACH(cdp, &cdevp_list, cdp_list) | ||||
if (cdp->cdp_inode == ud) { | if (cdp->cdp_inode == ud) { | ||||
▲ Show 20 Lines • Show All 635 Lines • Show Last 20 Lines |