On Sat, Jul 20, 2013 at 2:04 PM, Don Raikes <[email protected]> wrote:
> Hello all,**** > > ** ** > > I am very new to kernel programming. In fact, I have been working on it > for a week now.**** > > ** ** > > I am taking a computer science class, and one of our assignments is to > hook some of the system calls in a 2.6.28 kernel.**** > > ** ** > > I have the basic module created, and I am hooking into the sys_read > function. The assignment is to print to the log what is being read using > sys_read.**** > > ** ** > > I have some checks in my function to limit my printing to only a certain > file, so I don’t get the contents of every file being read on the system.* > *** > > ** ** > > OnceI know I have the right file, I decided to print the size of the > buffer.**** > > ** ** > > The function signature is:**** > > ** ** > > Asmlinkage long sys_read(unsigned int fd, char __user *buf, size_t count); > **** > > ** ** > > So I do:**** > > ** ** > > Printk(KERN_INFO “Read buffer is [%d] bytes.\n”,count);**** > > ** ** > > The particular file I am reading has 2 lines the first is 14 bytes long > and the second is 30 bytes long.**** > > ** ** > > The output from my printk statements are 8192 and 4096 respectively.**** > > Why is the count so large? > I think it is the size of one PAGE.I think reading from sys_read is PAGE aligned.Just print the size of the page and i think it will be 4K. > **** > > ** ** > > Also I do a strlen(buf) and print the value as well, and it is 29 and 16 > respectively.**** > > ** ** > > Next I did copy_from_user(tbuf,buf,strlen(buf))**** > > And tried to print the contents of the buffer but it came out garbage.**** > > ** ** > > Does anyone have any ideas how I can get this to work?**** > > ** ** > > BTW: the assignment is due on Sunday so any help would be aappreciated.*** > * > > ** ** > > ** ** > > ** ** > > -- > Best Regards, Donald**** > > [image: Oracle] <http://www.oracle.com/> > Donald raikes | Accessibility Specialist/ QA Engineer > Phone: +15202717608 | Mobile: +15202717608 > Oracle Quality Assurance > | Tucson, Arizona **** > > [image: Green Oracle] <http://www.oracle.com/commitment>**** > > Oracle is committed to developing practices and products that help protect > the environment**** > > ** ** > > _______________________________________________ > Kernelnewbies mailing list > [email protected] > http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies > >
_______________________________________________ Kernelnewbies mailing list [email protected] http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
