作者fish39 (醒醒吧!!宅宅)
看板LinuxDev
标题Re: [问题] block type driver利用kmalloc
时间Fri Mar 30 13:15:51 2007
※ 引述《fish39 (醒醒吧!!宅宅)》之铭言:
: 首先
: 在驱动程式方面
: #define b_data (8)
: //先取得一块记忆空间
: data=kmalloc(b_data* sizeof(short int),GFP_KERNEL);
: //ioctl
: static int blk_ioctl(struct inode* inode, struct file* filp,
: unsigned int cmd,unsigned long arg)
: switch (cmd)
: AAA: copy_from_user(&data,(short int *)arg,16);
: break;
: 在应用程式方面
: //准备一些资料
: short int BB[8]={12217,2490 ,-1277,-58,882,-36,-304,78};
: //想利用ioctl 将资料传送到驱动程式的data里面
: ioctl(devfp,AAA,&BB,16);
: 但是执行後,把data[]里面的值输出,却不是我要的
: 请问哪边有错呢?
: 我怀疑是ioctl那边有错,但又不知道哪边
: 请高手指点一下吧,THX@@
感谢roylee17网友
copy_from_user(&data,(short int *)arg,16);
^^
正确应该是
copy_from_user(data,(short int *)arg,16);
就可以正确储存资料了
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.120.108.99