qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 3/3] memory: move RAM test functions to memory


From: Avi Kivity
Subject: Re: [Qemu-devel] [PATCH 3/3] memory: move RAM test functions to memory
Date: Tue, 10 Apr 2012 13:15:42 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:11.0) Gecko/20120316 Thunderbird/11.0

On 04/09/2012 10:19 PM, Blue Swirl wrote:
> Rename functions with memory_region_ prefix to avoid future clashes.
>
> Change the RAM/ROM/ROMD test functions to take MemoryRegion
> instead of MemoryRegionSection.
> -
>  #endif
>  #endif
> diff --git a/exec.c b/exec.c
> index 0dda7b5..5080dde 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -507,10 +507,10 @@ target_phys_addr_t
> memory_region_section_get_iotlb(CPUArchState *env,
>      target_phys_addr_t iotlb;
>      CPUWatchpoint *wp;
>
> -    if (is_ram_rom(section)) {
> +    if (memory_region_is_ram_rom(section->mr)) {

Just call memory_region_is_ram()

>  /**
> + * memory_region_is_ram_rom: check whether a memory region is RAM or ROM
> + *
> + * Returns %true is a memory region is RAM or ROM
> + *
> + * @mr: the memory region being queried
> + */
> +static inline bool memory_region_is_ram_rom(MemoryRegion *mr)
> +{
> +    return memory_region_is_ram(mr);
> +}

Redundant

> +
> +/**
> + * memory_region_is_romd: check whether a memory region is ROMD
> + *
> + * Returns %true is a memory region is ROMD

and currently set to allow direct reads.

> + *
> + * @mr: the memory region being queried
> + */
> +static inline bool memory_region_is_romd(MemoryRegion *mr)
> +{
> +    return mr->rom_device && mr->readable;
> +}
> +
> +/**
> + * memory_region_is_ram_rom_romd: check whether a memory region is
> + * RAM, ROM or ROMD
> + *
> + * Returns %true is a memory region is RAM, ROM or ROMD
> + *
> + * @mr: the memory region being queried
> + */
> +static inline bool memory_region_is_ram_rom_romd(MemoryRegion *mr)
> +{
> +    return memory_region_is_ram_rom(mr) || memory_region_is_romd(mr);
> +}

Doesn't seem to warrant a public API.  Fold into callers?

> +
> +/**
>   * memory_region_name: get a memory region's name
>   *
>   * Returns the string that was used to initialize the memory region.
> @@ -666,6 +703,22 @@ void memory_region_set_alias_offset(MemoryRegion *mr,
>  MemoryRegionSection memory_region_find(MemoryRegion *address_space,
>                                         target_phys_addr_t addr, uint64_t 
> size);
>
> +/**
> + * memory_region_section_addr: get offset within MemoryRegionSection
> + *
> + * Returns offset within MemoryRegionSection
> + *
> + * @section: the memory region section being queried
> + * @addr: address in address space
> + */
> +static inline target_phys_addr_t
> +memory_region_section_addr(MemoryRegionSection *section,
> +                           target_phys_addr_t addr)
> +{
> +    addr -= section->offset_within_address_space;
> +    addr += section->offset_within_region;
> +    return addr;
> +}
>

Looks generally useful.

-- 
error compiling committee.c: too many arguments to function




reply via email to

[Prev in Thread] Current Thread [Next in Thread]