Regarding enumerating Block devices registered in kernel mode
Hi Mentors, I am working on a kernel module wherein I need to enumerate all the block devices registered with the kernel. Also looking for notifications when a block device gets added/remove. Google didn't help much and the thought of reading the contents of /sys/block from kernel mode looks messy to me. Looking for guidance on performing this enumeration. Thanks, VJ
On Tue, Nov 12, 2013 at 6:24 AM, vaibhav <vaibhav92@hotmail.com> wrote:
I am working on a kernel module wherein I need to enumerate all the block devices registered with the kernel. Also looking for notifications when a block device gets added/remove. Google didn’t help much and the thought of reading the contents of /sys/block from kernel mode looks messy to me. Looking for guidance on performing this enumeration.
Why do you need this within the kernel? Sounds much like a userspace job done in kernel land... -- Thanks, //richard
Thanks for replying Richard, I need to access the blockdevice structure associated with each block device so that I can patch its block_device_operations to receive ioctls calls in my code. In my code I check for ioctls that I handle and pass it to the original ioctl handler if the ioctl is not understood by me. I intend to patch these block_device structures during my module initialization hence I need to iterate all BD's available in the system at that point. Also need to keep track of new BD's appearing in the system so that I can patch them as soon as they are available. Thanks Again, VJ -----Original Message----- From: Richard Weinberger [mailto:richard.weinberger@gmail.com] Sent: Tuesday, November 12, 2013 1:39 PM To: vaibhav Cc: kernelnewbies Subject: Re: Regarding enumerating Block devices registered in kernel mode On Tue, Nov 12, 2013 at 6:24 AM, vaibhav <vaibhav92@hotmail.com> wrote:
I am working on a kernel module wherein I need to enumerate all the block devices registered with the kernel. Also looking for notifications when a block device gets added/remove. Google didn't help much and the thought of reading the contents of /sys/block from kernel mode looks messy to me. Looking for guidance on performing this enumeration.
Why do you need this within the kernel? Sounds much like a userspace job done in kernel land... -- Thanks, //richard
Am 12.11.2013 09:47, schrieb vaibhav:
Thanks for replying Richard,
I need to access the blockdevice structure associated with each block device so that I can patch its block_device_operations to receive ioctls calls in my code. In my code I check for ioctls that I handle and pass it to the original ioctl handler if the ioctl is not understood by me.
I intend to patch these block_device structures during my module initialization hence I need to iterate all BD's available in the system at that point. Also need to keep track of new BD's appearing in the system so that I can patch them as soon as they are available.
Please don't do that. Such patching/hooking/etc...-games are doomed to failure. Thanks, //richard
participants (3)
-
Richard Weinberger -
Richard Weinberger -
vaibhav