[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH ] linux-user: add tee systemcall support
From: |
vibi sreenivasan |
Subject: |
Re: [Qemu-devel] [PATCH ] linux-user: add tee systemcall support |
Date: |
Tue, 19 May 2009 18:06:14 +0530 |
hi ,
thanks for looking into my code.
On Tue, 2009-05-19 at 14:36 +0300, Riku Voipio wrote:
> On Tue, May 19, 2009 at 01:42:03PM +0530, vibi sreenivasan wrote:
> > hi all,
>
> > >Subject: [Qemu-devel] [PATCH ] linux-user: add tee systemcall support
>
> > Is there any thing wrong with this patch. Please give some feedback
> > So if there is anything wrong i will be able to correct it.
>
> The implementation of tee appears fine. However, the tee testcases
> I found all also used splice. What did you use to test this
i used a small test code
----------------------------------------------------------------------------------------
#define _GNU_SOURCE
#include <fcntl.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define die(X) do { perror(#X);exit(EXIT_FAILURE); } while(0)
#define SZ 255
#define TEST_STRING "This is a test to check the presence of tee system call\n\
This print states that tee system call is present\n"
int main(void)
{
int pipe1[2], pipe2[2],strln = strlen(TEST_STRING);
char data[SZ] = {0};
if (pipe(pipe1) || pipe(pipe2))
die("perror");
if (write(pipe1[1], TEST_STRING, strln) < 0)
die("write");
if(tee(pipe1[0], pipe2[1], strln, SPLICE_F_MOVE) != strln)
die("tee");
if(read(pipe2[0], data, SZ - 1) < 0)
die("read");
printf("%s",data);
fflush(stdout);
}
----------------------------------------------------------------------------------------------
> , or do
> you plan to implement splice too?
>
yes i am plannig to implement splice & vmsplice.
Also i have a plan to look in to adding support for
unimplemented syscalls (got that idea from TODO),if any.
Before that i was trying to make sure that i am going in the
right path.
thanks & regards
vibi sreenivasan
> >
> > Thanks & Regards
> > vibi sreenivasan
> >
> > >Signed-off-by: vibi <address@hidden>
> > >---
> > >linux-user/syscall.c | 8 ++++++++
> > >1 files changed, 8 insertions(+), 0 deletions(-)
> >
> > >diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> > >index 76f0c95..f2f87c3 100644
> > >--- a/linux-user/syscall.c
> > >+++ b/linux-user/syscall.c
> > >@@ -6580,6 +6580,14 @@ abi_long do_syscall(void *cpu_env, int num,
> > >abi_long arg1,
> > break;
> > >#endif
> >
> > >+#ifdef TARGET_NR_tee
> > >+ case TARGET_NR_tee:
> > >+ {
> > >+ ret = get_errno(tee(arg1,arg2,arg3,arg4));
> > >+ }
> > >+ break;
> > >+#endif
> > >+
> > > default:
> > > unimplemented:
> > > gemu_log("qemu: Unsupported syscall: %d\n", num);
> >
> >
> >
> >
>
>
>
>