register_chrdev(9) Kernel Functions register_chrdev(9)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 nor‐
mally 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 ALSOregister_blkdev(9)mknod(2)AUTHOR
Stephen Williams (steve@icarus.com)
BUGSLinux 2.0 $Date:$ register_chrdev(9)