[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: Re: [Xen-devel] no such file or directory
Do you need to export plenty of data of Xen? If not, I think using printk() or debugtrace_printk() is the best choice. If you really have much data to export, I think you can look into how "xm dmesg" or xentrace is implemented. -- Paul. S. 2008/11/23 lijiandm <lijiandm@xxxxxxx>: > "use some relatively complex methods to export the data in Xen to Dom0's > userspace." > What's the complex methods ?Can you give me some suggestion? > Thanks. > > > 在2008-11-24,"Paul Samon" <paul.samon@xxxxxxxxx> 写道: >>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 not 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 |