> > --- a/target-arm/kvm.c
> > +++ b/target-arm/kvm.c
> > @@ -627,3 +627,17 @@ int kvm_arch_msi_data_to_gsi(uint32_t data)  {
> >      return (data - 32) & 0xffff;
> >  }
> > +
> > +unsigned long get_guest_max_pfn(void) {
> > +    /* To be done */
> > +
> > +    return 0;
> > +}
> > +
> > +unsigned long *tighten_guest_free_page_bmap(unsigned long *bmap) {
> > +    /* To be done */
> > +
> > +    return bmap;
> > +}
> > diff --git a/target-i386/kvm.c b/target-i386/kvm.c index
> > abf50e6..0b394cb 100644
> > --- a/target-i386/kvm.c
> > +++ b/target-i386/kvm.c
> > @@ -3327,3 +3327,38 @@ int kvm_arch_msi_data_to_gsi(uint32_t data)  {
> >      abort();
> >  }
> > +
> > +unsigned long get_guest_max_pfn(void) {
> > +    PCMachineState *pcms = PC_MACHINE(current_machine);
> > +    ram_addr_t above_4g_mem = pcms->above_4g_mem_size;
> > +    unsigned long max_pfn;
> > +
> > +    if (above_4g_mem) {
> > +        max_pfn = ((1ULL << 32) + above_4g_mem) >> TARGET_PAGE_BITS;
> > +    } else {
> > +        max_pfn = pcms->below_4g_mem_size >> TARGET_PAGE_BITS;
> > +    }
> > +
> > +    return max_pfn;
> > +}
> 
> Why is this in kvm?

I can't find a better place. Do you have any suggestion? 

> > +        pos = (above_4g_mem + below_4g_mem) >> TARGET_PAGE_BITS;
> > +        len = ((1ULL << 32) - below_4g_mem) >> TARGET_PAGE_BITS;
> > +        bitmap_clear(bmap, pos, len);
> > +    }
> > +
> > +    return bmap;
> > +}
> 
> what does this do? External APIs should have documentation.

I will add the documentation. Thanks!

Liang

Reply via email to