64位内核注冊tty设备
在64位系统中,注冊tty设备须要注意的是,Android跑在EL0而且在32位模式下,kernel跑在EL1而且在64位模式下,不但内核须要打开CONFIG_COMPAT选项,非常多android上层应用调用的ioctl在底层驱动模块也要提供对应的compat_ioctl()函数;
注冊tty回调函数时,32位注冊ioctl回调函数,64位就须要注冊compat_ioctl回调,前几天加入Ecall工具时就注冊错回调了,导致始终串口调用内核函数不成功,无法进入到ctl回调里边;同一时候,内核在接收用户态传进来的參数时,要做get_user和copy_from_user处理,主要是在64位内核中,指针是8个字节,用户态指针是4个字节,须要做一下适配,详细使用能够參考内核代码,内核中有非常多使用的地方。