Kernel header inclusion practice
Hi, How do you include the kernel headers? For example, Currently I have the headers: #include <linux/module.h> #include <linux/kthread.h> #include <linux/delay.h> And now I wanna use the `struct workqueue_struct'. It turns out I don't have to include the "linux/workqueue.h". So it must have already been included by the three headers above. My question is: What's the practice of including headers? Should I specifically include "linux/workqueue.h" ? Another question is particular to the above three headers: does any of them guarantee to include the "linux/queue.h"? If there is any documentation about the API of the headers (e.g., what they include), that will be great. Best
On Wed, Jul 05, 2017 at 02:50:59PM +0800, Shiyao MA wrote:
Hi,
How do you include the kernel headers?
For example, Currently I have the headers: #include <linux/module.h> #include <linux/kthread.h> #include <linux/delay.h>
And now I wanna use the `struct workqueue_struct'. It turns out I don't have to include the "linux/workqueue.h".
So it must have already been included by the three headers above.
My question is:
What's the practice of including headers? Should I specifically include "linux/workqueue.h" ?
To be safe, yes, please do, sometimes other arches will not pull in the .h files automatically that you expect them to. So be specific.
Another question is particular to the above three headers: does any of them guarantee to include the "linux/queue.h"?
Nope, if you need it, list it.
If there is any documentation about the API of the headers (e.g., what they include), that will be great.
What exactly do you mean by this? thanks, greg k-h
Thanks!
On 5 Jul 2017, at 20:07, Greg KH <greg@kroah.com> wrote:
If there is any documentation about the API of the headers (e.g., what they include), that will be great.
What exactly do you mean by this?
I mean if any kernel documentation specifies what the headers provide, IOW, what they include, and what functions/variables they declare. So I guess probably not, the source code of kernel headers are their own documentation/specification. Best,
On Wed, Jul 05, 2017 at 08:13:08PM +0800, Shiyao Ma wrote:
Thanks!
On 5 Jul 2017, at 20:07, Greg KH <greg@kroah.com> wrote:
If there is any documentation about the API of the headers (e.g., what they include), that will be great.
What exactly do you mean by this?
I mean if any kernel documentation specifies what the headers provide, IOW, what they include, and what functions/variables they declare.
So I guess probably not, the source code of kernel headers are their own documentation/specification.
Yes, the source itself is always the best documentation, it's always kept up to date :)
participants (3)
-
Greg KH -
Shiyao MA -
Shiyao Ma