- used by kernel to identify driver that handles request
- many statically assigned (
Documentation/devices.txt
) (but no new ones will be)
- need to be allocated (=claimed)
- static or dynamic allocation
API: Device numbers
type:
kdev_t
include/linux/types.h
creation, accessors:
MKDEV(int major, int minor)
MAJOR(dev_t dev)
MINOR(dev_t dev)
include/linux/kdev_t.h
register a (known) range of numbers:
int register_chrdev_region(dev_t first, unsigned int count, char *name);
- first: first number in range
- count: how many minor numbers?
- name: name of device
allocate a range of free numbers:
int alloc_chrdev_region(dev_t *dev, unsigned int firstminor, unsigned int count, char *name);
- dev: will contain allocated major/minor
- firstminor: usually 0 (but not required)
- name: name of device
free allocated or registered range of numbers:
void unregister_chrdev_region(dev_t first, unsigned int count);
include/linux/fs.h