---
name: "__register_chrdev"
section: "9"
platform: "linux"
package: "linux-manual-4.9"
version: "4.9.228-1"
release: "Debian 9 (Stretch)"
platforms: ["linux"]
url: "https://new.carta.tech/__register_chrdev"
---

# \_\_register\_chrdev(9)

create and register a cdev occupying a range of minors

## NAME

\_\_register\_chrdev - create and register a cdev occupying a range of minors

## SYNOPSIS

**int \_\_register\_chrdev(unsigned int** *major***, unsigned int** *baseminor***, unsigned int** *count***, const char \*** *name***, const struct file\_operations \*** *fops***);**

## ARGUMENTS

*major*

major device number or 0 for dynamic allocation

*baseminor*

first of the requested range of minor numbers

*count*

the number of minor numbers required

*name*

name of this range of devices

*fops*

file operations associated with this devices

## DESCRIPTION

If *major* == 0 this functions will dynamically allocate a major and return its number.

If *major* \> 0 this function will attempt to reserve a device with the given major number and will return zero on success.

Returns a -ve errno on failure.

The name of this device has nothing to do with the name of the device in /dev. It only helps to keep track of the different owners of devices. If your module name has only one type of devices it's ok to use e.g. the name of the module here.

## COPYRIGHT
