[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] no such file or directory
Oh, no... You can not use C's standard IO library in Xen at all. For example, Xen has no knowledge about the file system at all, so it can't understand a file path "/home/a.txt" at all. By a serial cable, you can use printk() to output the info you need(if you have no a cable at hand, check the "xm dmesg" in Dom0), or use some relatively complex methods to export the data in Xen to Dom0's userspace. -- Paul. S. 2008/11/23 lijiandm <lijiandm@xxxxxxx>: > hello list: > I add some code to xen-3.1.0-src\xen\arch\x86\hvm\vmx\vmx.c to export some > information when vmx_vmexit_handler() executed: > ------------------------------------------------------------------------------------------------- > --- vmx.c 2007-05-18 22:45:22.000000000 +0800 > +++ vmx-patch.c 2008-11-24 14:19:18.000000000 +0800 > @@ -50,7 +50,9 @@ > #include <asm/hvm/vpt.h> > #include <public/hvm/save.h> > #include <asm/hvm/trace.h> > - > +#include <stdio.h> > +#include <stdlib.h> > +#include <unistd.h> > char *vmx_msr_bitmap; > > static void vmx_ctxt_switch_from(struct vcpu *v); > @@ -2590,9 +2592,13 @@ > unsigned int exit_reason; > unsigned long exit_qualification, inst_len = 0; > struct vcpu *v = current; > + int test; > + unsigned long FS_SELECTOR,FS_LIMIT,FS_AR_BYTES,FS_BASE,CR3; > + FILE *fp; > + char a='\n',b='%'; > > exit_reason = __vmread(VM_EXIT_REASON); > - > + > HVMTRACE_2D(VMEXIT, v, __vmread(GUEST_RIP), exit_reason); > > perfc_incra(vmexits, exit_reason); > @@ -2711,6 +2717,27 @@ > } > case EXIT_REASON_CR_ACCESS: > { > + FS_SELECTOR=(unsigned long)__vmread(EXIT_QUALIFICATION); > + FS_LIMIT=(unsigned long)__vmread(EXIT_QUALIFICATION); > + FS_AR_BYTES=(unsigned long)__vmread(EXIT_QUALIFICATION); > + FS_BASE=(unsigned long)__vmread(EXIT_QUALIFICATION); > + CR3=(unsigned long)__vmread(EXIT_QUALIFICATION); > + > + fp=fopen("/home/a.txt","a+"); > + > + fwrite(&FS_SELECTOR,sizeof(unsigned long),1,fp); > + fwrite(&b,sizeof(char),1,fp); > + fwrite(&FS_LIMIT,sizeof(unsigned long),1,fp); > + fwrite(&b,sizeof(char),1,fp); > + fwrite(&FS_AR_BYTES,sizeof(unsigned long),1,fp); > + fwrite(&b,sizeof(char),1,fp); > + fwrite(&FS_BASE,sizeof(unsigned long),1,fp); > + fwrite(&b,sizeof(char),1,fp); > + fwrite(&CR3,sizeof(unsigned long),1,fp); > + fwrite(&a,sizeof(char),1,fp); > + > + fclose(fp); > + > exit_qualification = __vmread(EXIT_QUALIFICATION); > inst_len = __get_instruction_length(); /* Safe: MOV Cn, LMSW, CLTS > */ > if ( vmx_cr_access(exit_qualification, regs) ) > ----------------------------------------------------------------------------------------------------- > > but when I compiled the xen,the error occured: > vmx.c:53:19: 错误:stdio.h:No such file or directory > vmx.c:54:20: 错误:stdlib.h:No such file or directory > vmx.c:55:20: 错误:unistd.h:No such file or directory > > How can I slove this problem? > Thanks. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |