我正在用内核版本3.14.17编写一个简单的LSM代码。
代码片段:
#include <linux/module.h> // included for all kernel modules
#include <linux/kernel.h> // included for KERN_INFO
#include <linux/init.h> // included for __init and __exit macros
#include <linux/security.h>
#include <linux/trace
正如在这个问题中指出的,Linux内核模块中的ioctl函数的原型是:
(第1版)
int ioctl(struct inode *i, struct file *f, unsigned int cmd, unsigned long arg);
或
(第2版)
long ioctl(struct file *f, unsigned int cmd, unsigned long arg);
我想在实现字符设备驱动程序的内核模块中使用它们。
在这种情况下,上述两种原型是否都适合?如果是,为什么?如果没有,如何选择正确的?
哪些头/源文件(S)包含这些原型?换句话说:这些原型的官方参考文件是什么?