ioctl 调用方法

原创 2016年08月28日 14:19:16
说明:当struct DDD的长度何long不对等时,不能简单的类型转换,会导致编译错误。
可以使用 memcpy() 方式拷贝解决。

应用程序:
typedef struct DDD{
int aa;
int bb;
int cc;
}ABC;

ABC abc;

abc.aa = 0x12;
abc.bb = 0x34;
abc.cc = 0x56;

ioctl(fd, 0x98, &abc);


驱动程序方式:
typedef struct DDD{
int aa;
int bb;
int cc;
}ABC;

static struct file_operations aa = {
.unlocked_ioctl = aaaIoctl,
};

static long aaaIoctl(struct file *file, unsigned int cmd, unsigned long arg)
{
ABC *ddd = NULL;
ddd = kmalloc(sizeof(struct DDD), GFP_KERNEL);
memcpy(ddd, (void *)arg, sizeof(struct DDD));
printk(KERN_WARNING "%s cmd:0x%02x, 0x%02x 0x%02x 0x%02x  \n", __func__, cmd, ddd->aa, ddd->bb, ddd->cc);
kfree(ddd);
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

linux 驱动程序___高级字符驱动程序___ioctl 方法解读

~ ioctl方法 概述 目的: 通过设备驱动程序执行各种类型的硬件控制 用户空间的调用原型:int ioctl(int fd, unsigned long cmd, ...); fd 指...

ioctl 参数使用方法-实例+测试

下面的代码可以正常显示吗

LDD3中scull字符设备源代码完全解析(三) ioctl方法

以下是scull源代码中ioctl方法的部分,先整体浏览一下,接着慢慢分析。 int scull_ioctl(struct inode *inode, struct file *filp,unsig...

ioctl 的使用方法详细说明与例子

Talking To Device Files 与设备文件对话 (writes and IOCTLs) 设备文件是用来代表相对应的硬件设备。绝大多数的硬件设备是用来进行输出和输入操作的,所以在内核...

ioctl方法详解

设备控制接口(ioctl 函数) 回想一下我们在字符设备驱动中介绍的struct file_operations 结构,这里我们将介绍一个新的方法: int (*ioc...

Linux2.6.32驱动笔记(4)ioctl方法解析及mini2440-led驱动实现

摘要: 介绍了字符设备驱动的控制方式——ioctl,同时利用该方式在mini2440上实现led驱动。 驱动中,除了read,write,open,close之外,还有很多的访问方式,其中对...

使用ioctl方法创建字符设备驱动

1  ioctl介绍: 用户空间ioctl :int ioctl(int fd,unsinged long cmd,...) fd-文件描述符 cmd-对设备的发出的控制命令 ...表示这是一...

ioctl 的使用方法详细说明与例子

Talking To Device Files 与设备文件对话 (writes and IOCTLs) 设备文件是用来代表相对应的硬件设备。绝大多数的硬件设备是用来进行输出和输入操作的,所以在内核...

ioctl系统调用流程

原文地址:http://blog.sina.com.cn/s/blog_60692ff60100ecd2.html   一、系统调用框架 与系统调用相关的数据结构和函数 系统调用函数名以“...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)