Hi Pranay Thanks a lot. That cleared it all. On 21 March 2015 at 13:45, Pranay Srivastava <pranjas@gmail.com> wrote:
Hi Sahil
On Fri, Mar 20, 2015 at 6:14 PM, sahil aggarwal <sahil.agg15@gmail.com> wrote:
Does it mean that in kernel space the direction bitfields are reversed.?
No it doesn't mean that.
On 20 March 2015 at 18:12, sahil aggarwal <sahil.agg15@gmail.com> wrote:
Hi Pranay,
Can you help me with this too.? In case of _IOC_READ why VERIFY_WRITE and in case of _IOC_WRITE why VERIFY_READ.? . Book says its kernel oriented so concept of read and write is reversed.
if(_IOC_DIR(cmd) & _IOC_READ) err = !access_ok(VERIFY_WRITE, (void __user*)arg, _IOC_SIZE(cmd)); else if(_IOC_DIR(cmd) & _IOC_WRITE) err = !access_ok(VERIFY_READ, (void __user*)arg, _IOC_SIZE(cmd)); if(err) return -EFAULT;
Thanks Regards
On 20 March 2015 at 12:36, sahil aggarwal <sahil.agg15@gmail.com> wrote:
Hi Pranay
Well explained.
Thank you.
On 20 March 2015 at 11:46, Pranay Srivastava <pranjas@gmail.com> wrote:
Hi Sahil
On Sun, Mar 15, 2015 at 10:17 AM, sahil aggarwal <sahil.agg15@gmail.com> wrote:
hi all,
Going through scull driver code, i see read function reads only till end of 1 quantum, so do kernel call read multiple times if count from q_pos exceeds quantum size limit.?
Ref: ldd3.
if(count > quantum - q_pos) count = quantum - q_pos; if(copy_to_user(buf, dptr->data[s_pos] + q_pos,count)){ retval = -EFAULT; goto out; }
If you are not using the default read/write routines, then its up to you to code that.
Kernel doesn't do multiple read calls. It'll do only what you asked it for no more but it can do less. For example, a file is say 100 KiB and you are reading say 4KiB in a loop when do you stop?
Simply put it's the user space application which is doing the looping and repeatedly doing read calls because it assumes that file isn't finished.
So again when do you stop reading from the file, without knowing size of the file.?
*f_pos += count; retval = count;
Thanks Regards
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
-- ---P.K.S
-- ---P.K.S