Editing IOCTL
Jump to navigation
Jump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
In computing, ioctl (an abbreviation of input/output control) is a system call for device-specific input/output operations and other operations which cannot be expressed by regular file semantics. It takes a parameter specifying a request code; the effect of a call depends completely on the request code. Request codes are often device-specific. For instance, a CD-ROM device driver which can instruct a physical device to eject a disc would provide an ioctl request code to do so. Device-independent request codes are sometimes used to give | In computing, ioctl (an abbreviation of input/output control) is a system call for device-specific input/output operations and other operations which cannot be expressed by regular file semantics. It takes a parameter specifying a request code; the effect of a call depends completely on the request code. Request codes are often device-specific. For instance, a CD-ROM device driver which can instruct a physical device to eject a disc would provide an ioctl request code to do so. Device-independent request codes are sometimes used to give usermdoe access to kernel functions which are only used by core system software or still under development. | ||
See also [https://en.wikipedia.org/wiki/Ioctl wikipedia page about IOCTL]. | See also [https://en.wikipedia.org/wiki/Ioctl wikipedia page about IOCTL]. | ||
= Description = | = Description = | ||
Line 32: | Line 30: | ||
= List of IOCTL by kernel device = | = List of IOCTL by kernel device = | ||
== sbl == | == sbl == | ||
Line 385: | Line 375: | ||
* Thanks to SocraticBliss for the names. | * Thanks to SocraticBliss for the names. | ||
= | = FInding the IOCTL handler address for a device in kernel = | ||
<pre> | |||
Find a string of the device name in kernel. | |||
There should be only two cross-references from function: make_dev and mutex_init. make_dev is the interesting one. | |||
The structure before the device string is where we want to go. | |||
Follow the structure then go to the very last offset of the structure. | |||
It is the handler function in charge of IOCTLs for that device. | |||
</pre> | </pre> | ||