---
name: "make_dev_alias"
section: "9"
platform: "linux"
package: "freebsd-manpages"
version: "6.0-5"
release: "Debian 4.0 (Etch)"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/make_dev_alias"
---

# make\_dev\_alias(9)

manage cdev's and DEVFS registration for devices

## 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 permissions of the file specified in *perms* are defined in ⟨sys/stat.h⟩:

```
#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 execution */
#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 error 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 relationship 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.
