mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
bitkeeper revision 1.1236.23.1 (42305c30ANG71NeXhipzTkvkmsry9Q)
Merge freefall.cl.cam.ac.uk:/auto/groups/xeno-xenod/BK/xen-2.0-testing.bk into freefall.cl.cam.ac.uk:/auto/groups/xeno/users/iap10/xeno-clone/xen-unstable.bk
This commit is contained in:
commit
18ec56e8ed
3 files changed
+28
-9
No files matched your search
@@ -99,7 +99,7 @@ int xc_linux_restore(int xc_handle, XcIOContext *ioctxt)
|
||||
/* A temporary mapping of the guest's suspend record. */
|
||||
suspend_record_t *p_srec;
|
||||
|
||||
char *region_base;
|
||||
char *region_base, *p_gdt;
|
||||
|
||||
mmu_t *mmu = NULL;
|
||||
|
||||
@@ -542,6 +542,13 @@ int xc_linux_restore(int xc_handle, XcIOContext *ioctxt)
|
||||
ctxt.gdt_frames[i] = pfn_to_mfn_table[pfn];
|
||||
}
|
||||
|
||||
/* Zero hypervisor GDT entries (supresses ugly warning) */
|
||||
p_gdt = xc_map_foreign_range(
|
||||
xc_handle, dom, PAGE_SIZE, PROT_WRITE, ctxt.gdt_frames[0]);
|
||||
memset( p_gdt + FIRST_RESERVED_GDT_ENTRY*8, 0,
|
||||
NR_RESERVED_GDT_ENTRIES*8 );
|
||||
munmap( p_gdt, PAGE_SIZE );
|
||||
|
||||
/* Uncanonicalise the page table base pointer. */
|
||||
pfn = ctxt.pt_base >> PAGE_SHIFT;
|
||||
if ( (pfn >= nr_pfns) || ((pfn_type[pfn]<ABTYPE_MASK) != L2TAB) )
|
||||
|
||||
@@ -69,18 +69,28 @@ IOStream *iostdout = &_iostdout;
|
||||
/** IOStream for stderr. */
|
||||
IOStream *iostderr = &_iostderr;
|
||||
|
||||
/** Get the underlying FILE*.
|
||||
*
|
||||
/* Get the underlying FILE*.
|
||||
*
|
||||
* @param s file stream
|
||||
* @return the stream s wraps
|
||||
*/
|
||||
static inline FILE *get_file(IOStream *s){
|
||||
switch((long)s->data){
|
||||
case 1: s->data = stdin; break;
|
||||
case 2: s->data = stdout; break;
|
||||
case 3: s->data = stderr; break;
|
||||
}
|
||||
return (FILE*)s->data;
|
||||
FILE *data = NULL;
|
||||
switch((long)s->data){
|
||||
case 1:
|
||||
data = stdin;
|
||||
break;
|
||||
case 2:
|
||||
data = stdout;
|
||||
break;
|
||||
case 3:
|
||||
data = stderr;
|
||||
break;
|
||||
default:
|
||||
data = (FILE*)s->data;
|
||||
break;
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
/** Control buffering on the underlying stream, like setvbuf().
|
||||
|
||||
@@ -1007,6 +1007,8 @@ int xfrd_accept(Args *args, int sock){
|
||||
}
|
||||
iprintf("> Accepted connection from %s:%d on %d\n",
|
||||
inet_ntoa(peer_in.sin_addr), htons(peer_in.sin_port), sock);
|
||||
fflush(stdout);
|
||||
fflush(stderr);
|
||||
pid = fork();
|
||||
if(pid > 0){
|
||||
// Parent, fork succeeded.
|
||||
|
||||