register_chrdev

Section: Kernel Functions (9)
Updated: $Date:$
Page Index
 

NAME

register_chrdev, unregister_chrdev - register a driver major number  

SYNOPSIS

#include <linux/fs.h>

int register_chrdev(unsigned int major, const char*name, struct file_operations*ops);
int unregister_chrdev(unsigned int major, const char *name);  

DESCRIPTION

The register_chrdev function associates a character major number with set of driver entry points. The file_operations structure contains pointers to functions that the the driver uses to implement the kernel interface to the driver.

The paramter major is the character major number assigned to the device driver and to be mapped to the function table. The name parameter is a short name for the device and is displayed in the The /proc/devices list. It also must exactly match the name passed to unregister_chrdev function when releasing the functions.

A device driver module may register as many different major numbers as it supports, though this is not typically done.

The unregister_chrdev function releases the major number, and is normally called in the module_cleanup function to remove the driver from the kernel.  

RETURN VALUE

On success, register_chrdev returns 0 if major is a number other then 0, otherwise Linux will choose a major number and return the chosen value.

If there is an error, one of the following codes is returned instead:

-EINVAL
The specified number is not valid (> MAX_CHRDEV)
-EBUSY
The major number is busy

The unregister_chrdev function will return 0 if successful, or -EINVAL if the major number is not registered with the matching name.  

AVAILABILITY

Linux 1.0+  

SEE ALSO

register_blkdev(9) mknod(2)  

AUTHOR

Stephen Williams (steve@icarus.com)  

BUGS


 

Index

NAME
SYNOPSIS
DESCRIPTION
RETURN VALUE
AVAILABILITY
SEE ALSO
AUTHOR
BUGS