diff options
Diffstat (limited to 'fs/char_dev.c')
-rw-r--r-- | fs/char_dev.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/fs/char_dev.c b/fs/char_dev.c index a4cbc6706ef0..3483d3cf8087 100644 --- a/fs/char_dev.c +++ b/fs/char_dev.c | |||
@@ -182,6 +182,28 @@ int alloc_chrdev_region(dev_t *dev, unsigned baseminor, unsigned count, | |||
182 | return 0; | 182 | return 0; |
183 | } | 183 | } |
184 | 184 | ||
185 | /** | ||
186 | * register_chrdev() - Register a major number for character devices. | ||
187 | * @major: major device number or 0 for dynamic allocation | ||
188 | * @name: name of this range of devices | ||
189 | * @fops: file operations associated with this devices | ||
190 | * | ||
191 | * If @major == 0 this functions will dynamically allocate a major and return | ||
192 | * its number. | ||
193 | * | ||
194 | * If @major > 0 this function will attempt to reserve a device with the given | ||
195 | * major number and will return zero on success. | ||
196 | * | ||
197 | * Returns a -ve errno on failure. | ||
198 | * | ||
199 | * The name of this device has nothing to do with the name of the device in | ||
200 | * /dev. It only helps to keep track of the different owners of devices. If | ||
201 | * your module name has only one type of devices it's ok to use e.g. the name | ||
202 | * of the module here. | ||
203 | * | ||
204 | * This function registers a range of 256 minor numbers. The first minor number | ||
205 | * is 0. | ||
206 | */ | ||
185 | int register_chrdev(unsigned int major, const char *name, | 207 | int register_chrdev(unsigned int major, const char *name, |
186 | const struct file_operations *fops) | 208 | const struct file_operations *fops) |
187 | { | 209 | { |