最近在学习Android源代码的结构,需要经常编译内核
在单独编译Andrioid linux kernel的时候再编译到/driver/misc/akm8975.c 时出现
问题主要是linux 2.6.36的驱动机制里file_operation关于ioctl这块改动比较大
所以导致了unknown field 'ioctl' specified in initializer的这个问题
原来内核的ioctl注册方法:
例:
static int ***_ioctl(Struct inode *in,struct file *filp,unsigned int cmd,unsigned long arg)
{
..........//内容
}
.........
static struct file_operations ***_fops={
.open = ***_open,
.read = ***_read,
.ioctl = ***_ioctl,
}
**********************************************//
2.6.36内核的ioctl改动: