make_dev(9)
NAME
- make_dev, make_dev_alias, destroy_dev, dev_depends - manage
- cdev's and
DEVFS registration for devices
SYNOPSIS
#include <sys/param.h>
#include <sys/conf.h>
struct cdev
make_dev(struct cdevsw *cdevsw, int minor, uid_t uid, gid_t
gid,
int perms, const char *fmt, ...);
struct cdev
make_dev_alias(struct cdev pdev, const char *fmt, ...);
void
destroy_dev(struct cdev dev);
void
dev_depends(struct cdev pdev, struct cdev cdev);
DESCRIPTION
- The make_dev() function creates a cdev structure for a new
- device. If
DEVFS is available, it is also notified of the presence of
- the new
device. The device will be owned by uid, with the group
- ownership as
gid, and with the name as specified in name. The permis
- sions of the file
specified in perms are defined in
#define S_IRWXU 0000700 /* RWX mask for owner */
#define S_IRUSR 0000400 /* R for owner */
#define S_IWUSR 0000200 /* W for owner */
#define S_IXUSR 0000100 /* X for owner */
- #define S_IRWXG 0000070 /* RWX mask for group */
#define S_IRGRP 0000040 /* R for group */
#define S_IWGRP 0000020 /* W for group */
#define S_IXGRP 0000010 /* X for group */
- #define S_IRWXO 0000007 /* RWX mask for other */
#define S_IROTH 0000004 /* R for other */
#define S_IWOTH 0000002 /* W for other */
#define S_IXOTH 0000001 /* X for other */
- #define S_ISUID 0004000 /* set user id on execution
- */
#define S_ISGID 0002000 /* set group id on execu
- tion */
#define S_ISVTX 0001000 /* sticky bit */
#ifndef _POSIX_SOURCE
#define S_ISTXT 0001000
#endif
- The make_dev_alias() function takes the returned cdev from
- make_dev() and
makes another (aliased) name for this device. It is an er
- ror to call
make_dev_alias() prior to calling make_dev().
- The destroy_dev() function takes the returned cdev from
- make_dev() and
destroys the registration for that device. Do not call
- destroy_dev() on
devices that were created with make_dev_alias().
- The dev_depends() function establishes a parent-child rela
- tionship
between two devices. The net effect is that a destroy_dev()
- of the parent device will also result in the destruction of the child
- device(s), if
any exist. A device may simultaneously be a parent and a
- child, so it is
possible to build a complete hierarchy.
SEE ALSO
devfs(5)
HISTORY
- The make_dev() and destroy_dev() functions first appeared in
- FreeBSD 4.0.
The function make_dev_alias() first appeared in FreeBSD 4.1.
- The function dev_depends() first appeared in FreeBSD 5.0.
- BSD March 28, 2005