Re: Doubt regarding struct cdev

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On Fri, Jan 22, 2010 at 11:39 AM, Leelakrishna A <amudala.krishna@xxxxxxxxx> wrote:
Hi All,
 
In Oreilly's LDD 3rd edition it is given that struct cdev is the kernel's internal structure that represents char devices.
Also given that before kernel invokes your device's operations, you must allocate and register one or more of these structures.
My doubt is who will create this structure for a char device ( either kernel will create it or the driver author has to explicitly create it using cdev_alloc() )
 
Its a responsibilty of driver to allocate the 'cdev' structure, now driver can allocate it dynamically using 'cdev_alloc' or driver can have pre-allocated (may be a global structure).
But in both the case driver has to initialize 'ops' field of the cdev structure and then register cdev with the kernel using 'cdev_add'.
 
If kernel creates it then at what situation it will create it or If driver author has to create it , when it has to create?

appropriate place for this would be the init function of your driver. 

And once it get created how to link the file_operations structure to it?
Just initializing ops field and registering the cdev with kernel is enough.
 
Thanks in advance,
LeelaKrishna.
 
  
Thanks,
Chetan Nanda

[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux