⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 domain-timeoffset

📁 xen虚拟机源代码安装包
💻
字号:
Index: ioemu/vl.c===================================================================--- ioemu.orig/vl.c	2007-05-11 10:04:50.000000000 +0100+++ ioemu/vl.c	2007-05-11 10:04:50.000000000 +0100@@ -7530,6 +7530,9 @@     }     free(page_array); #endif++    timeoffset_get();+ #else  /* !CONFIG_DM */      phys_ram_base = qemu_vmalloc(phys_ram_size);Index: ioemu/vl.h===================================================================--- ioemu.orig/vl.h	2007-05-11 10:04:50.000000000 +0100+++ ioemu/vl.h	2007-05-11 10:04:50.000000000 +0100@@ -1433,6 +1433,10 @@ int xenstore_vm_write(int domid, char *key, char *val); char *xenstore_vm_read(int domid, char *key, int *len); +/* helper2.c */+extern long time_offset;+void timeoffset_get(void);+ void kqemu_record_dump(void);  extern char domain_name[];Index: ioemu/target-i386-dm/helper2.c===================================================================--- ioemu.orig/target-i386-dm/helper2.c	2007-05-11 10:04:48.000000000 +0100+++ ioemu/target-i386-dm/helper2.c	2007-05-11 10:04:50.000000000 +0100@@ -74,6 +74,8 @@  int xc_handle; +long time_offset = 0;+ shared_iopage_t *shared_page = NULL;  /* the evtchn fd for polling */@@ -447,6 +449,34 @@     req->data = tmp1; } +void timeoffset_get()+{+    char *p;++    p = xenstore_vm_read(domid, "rtc/timeoffset", NULL);+    if (!p)+	return;++    if (sscanf(p, "%ld", &time_offset) == 1)+	fprintf(logfile, "Time offset set %ld\n", time_offset);+    else+	time_offset = 0;++    xc_domain_set_time_offset(xc_handle, domid, time_offset);++    free(p);+}++void cpu_ioreq_timeoffset(CPUState *env, ioreq_t *req)+{+    char b[64];++    time_offset += (ulong)req->data;++    sprintf(b, "%ld", time_offset);+    xenstore_vm_write(domid, "rtc/timeoffset", b);+}+ void cpu_ioreq_xchg(CPUState *env, ioreq_t *req) {     unsigned long tmp1;@@ -497,6 +527,9 @@         case IOREQ_TYPE_XCHG:             cpu_ioreq_xchg(env, req);             break;+	case IOREQ_TYPE_TIMEOFFSET:+            cpu_ioreq_timeoffset(env, req);+            break;         default:             hw_error("Invalid ioreq type 0x%x\n", req->type);         }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -