__register_chrdev — create and register a cdev occupying a range of minors


int __register_chrdev (unsigned int major,
 unsigned int baseminor,
 unsigned int count,
 const char * name,
 const struct file_operations * fops);


unsigned int major

major device number or 0 for dynamic allocation

unsigned int baseminor

first of the requested range of minor numbers

unsigned int count

the number of minor numbers required

const char * name

name of this range of devices

const struct file_operations * fops

file operations associated with this devices


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.