<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Nov 27, 2013 at 9:57 PM, 乃宏周 <span dir="ltr">&lt;<a href="mailto:naive231@gmail.com" target="_blank">naive231@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">In module code:<div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px">
<i>unsigned char buf[20];</i></blockquote><div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><i>struct file *device;</i></div>

</blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><i>device = filp_open(...);</i></div></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><i>device-&gt;f_op-&gt;read(device,buf,20,&amp;device-&gt;f_pos);</i></div>


</blockquote>In signature(interface) of <i>read()</i> of <i>struct file</i>, <i>buf</i> should came from user-space. I fed my buffer, and I get correct data from that, Is that correct? Shouldn&#39;t I provide a user-space buffer to that ?</div>
</div></div></blockquote><div><br></div><div style>Some convention in kernel programming:</div><div style><br></div><div>long do_sys_open(int dfd, const char __user *filename, int flags, umode_t mode)</div><div>{</div><div style>
<br></div><div style>here __user is used for declaration - explicitly saying that the pointer is pointing to userspace data.</div><div style><br></div><div style>without it, all pointer necessarily need to point to kernel allocated memory, and u used copy_from_user() to copy data from userspace to kernel pointer.</div>
<div style><br></div><div style><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div>


</div></div>
<br>_______________________________________________<br>
Kernelnewbies mailing list<br>
<a href="mailto:Kernelnewbies@kernelnewbies.org">Kernelnewbies@kernelnewbies.org</a><br>
<a href="http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies" target="_blank">http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a><br>
<br><br></blockquote></div><br clear="all"><div><br></div>-- <br>Regards,<br>Peter Teoh
</div></div>