X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?p=palacios.git;a=blobdiff_plain;f=linux_usr%2Fv3_guest_mem.c;h=fa398e959b35f9cfc89b24bfcba29f5b201447fc;hp=b0798a6e3862989efd1fa29d98096854f57dbe32;hb=f240f8a3c11478abe180bd906c746c68eb8c3a3c;hpb=f1c8d924817188c4f08a97205e97392ff304913f diff --git a/linux_usr/v3_guest_mem.c b/linux_usr/v3_guest_mem.c index b0798a6..fa398e9 100644 --- a/linux_usr/v3_guest_mem.c +++ b/linux_usr/v3_guest_mem.c @@ -22,6 +22,7 @@ struct v3_guest_mem_map * v3_guest_mem_get_map(char *vmdev) uint64_t start, end, num; uint64_t guest_cur; uint64_t num_regions; + uint64_t num_regions_shown; if (!(f=fopen(GUEST_FILE,"r"))) { @@ -48,10 +49,15 @@ struct v3_guest_mem_map * v3_guest_mem_get_map(char *vmdev) fprintf(stderr,"Could not find number of regions for %s\n",vmdev); return 0; } - if (sscanf(buf,"Regions: %llu",&num_regions)==1) { + if (sscanf(buf,"Regions: %llu (%llu shown)",&num_regions,&num_regions_shown)==2) { break; } } + + if (num_regions != num_regions_shown) { + fprintf(stderr,"Cannot see all regions for %s\n",vmdev); + return 0; + } struct v3_guest_mem_map *m = (struct v3_guest_mem_map *) malloc(sizeof(struct v3_guest_mem_map)+num_regions*sizeof(struct v3_guest_mem_block));