int
device_ioctl(fd,argv)
{
/*
your
function
*/
}
static
struct
file_operations
device
=
{
.ioctl
=
device_ioctl
//预留外部接口
}
应用程序如下:
ioctl(device,argv);
上面这句就可以完成你的模块中ioctl中的功能。
驱动程序工作在内核空间
,由内核来调用
比如某硬件的驱动程序中实现了hd_write()函数,则用户在
用户空间
打开这硬件的设备文件并调用
系统调用
函数write()时,内核就调用hd_write()函数。
你是要获取原始数据帧?获取原始数据可以使用AF_PACKET 或者RAW类型的socket。
什么叫直接调用网卡驱动,驱动是加载到内核中的核心模块,由硬件中断调用,你怎么能调用。
可以去看《understanding-linux-network-internals》和《linux.device.drivers》
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)