Re: [問題] block type driver利用kmalloc
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章