That's exactly what alloc_chrdev_region is for.
More information can be found at page 45 of LDD3:
http://lwn.net/images/pdf/LDD3/ch03.pdf
http://lxr.linux.no/linux+v2.6.28.3/fs/char_dev.c#L229
Cheers,
Aviv
More information can be found at page 45 of LDD3:
http://lwn.net/images/pdf/LDD3/ch03.pdf
http://lxr.linux.no/linux+v2.6.28.3/fs/char_dev.c#L229
Cheers,
Aviv
On Wed, Feb 4, 2009 at 21:00, Kevin Wilson <wkevils@xxxxxxxxx> wrote:
Hello,
I want to write a simple device driver that will be controlled by IOCTLs
from user space. These IOCTLs will operate on /dev/myDev file , which will
represent a character device; I know that I can register a char device
by register_chrdev(MY_MAJOR_NUM, "mymodule", &mymodule_fops);The thing is
that this binds me to a specific major number for the device (MY_MAJOR_NUM).
Suppose I will choose an arbitrary number, say 300, for MY_MAJOR_NUM.
Then,if this module will be run on a machine on which this major number is held
by a diffrent driver (from let's say some different device) , than I will be
unable to work with my driver ; since 300 (MY_MAJOR_NUM)
, which I had chosen as MY_MAJOR_NUM, will be held by a different
driver ,so register_chrdev() will fail.
Is there a way to avoid using a specific major number and use some dynamic
mechanism which will give me a free char device for /dev/myDev?
Rgs,
Rgs,
Kevin Wilson
--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ