MCPcopy Create free account
hub / github.com/F-Stack/f-stack / make_dev_alias_v

Function make_dev_alias_v

freebsd/kern/kern_conf.c:962–1001  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

960}
961
962static int
963make_dev_alias_v(int flags, struct cdev **cdev, struct cdev *pdev,
964 const char *fmt, va_list ap)
965{
966 struct cdev *dev;
967 int error;
968
969 KASSERT(pdev != NULL, ("make_dev_alias_v: pdev is NULL"));
970 KASSERT((flags & MAKEDEV_WAITOK) == 0 || (flags & MAKEDEV_NOWAIT) == 0,
971 ("make_dev_alias_v: both WAITOK and NOWAIT specified"));
972 KASSERT((flags & ~(MAKEDEV_WAITOK | MAKEDEV_NOWAIT |
973 MAKEDEV_CHECKNAME)) == 0,
974 ("make_dev_alias_v: invalid flags specified (flags=%02x)", flags));
975
976 dev = devfs_alloc(flags);
977 if (dev == NULL)
978 return (ENOMEM);
979 dev_lock();
980 dev->si_flags |= SI_ALIAS;
981 error = prep_devname(dev, fmt, ap);
982 if (error != 0) {
983 if ((flags & MAKEDEV_CHECKNAME) == 0) {
984 panic("make_dev_alias_v: bad si_name "
985 "(error=%d, si_name=%s)", error, dev->si_name);
986 }
987 dev_unlock();
988 devfs_free(dev);
989 return (error);
990 }
991 dev->si_flags |= SI_NAMED;
992 devfs_create(dev);
993 dev_dependsl(pdev, dev);
994 clean_unrhdrl(devfs_inos);
995 dev_unlock();
996
997 notify_create(dev, flags);
998 *cdev = dev;
999
1000 return (0);
1001}
1002
1003struct cdev *
1004make_dev_alias(struct cdev *pdev, const char *fmt, ...)

Callers 2

make_dev_aliasFunction · 0.85
make_dev_alias_pFunction · 0.85

Calls 7

dev_lockFunction · 0.85
prep_devnameFunction · 0.85
dev_unlockFunction · 0.85
dev_dependslFunction · 0.85
clean_unrhdrlFunction · 0.85
notify_createFunction · 0.85
panicFunction · 0.70

Tested by

no test coverage detected