|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [RFC PATCH v3 01/18] xen/arm: Add bitmap_find_next_zero_area helper function
Hi,
Please include all the relevant maintainers. See scripts/get_maintainers.pl.
On 22/06/15 13:01, vijay.kilari@xxxxxxxxx wrote:
> From: Vijaya Kumar K <Vijaya.Kumar@xxxxxxxxxxxxxxxxxx>
>
> bitmap_find_next_zero_area helper function will be used
> by physical ITS driver imported from linux
>
> Signed-off-by: Vijaya Kumar K <Vijaya.Kumar@xxxxxxxxxxxxxxxxxx>
> ---
> v3: Moved changes to xen/common/bitmap.c and
> xen/include/xen/bitmap.h
> ---
> xen/common/bitmap.c | 39 +++++++++++++++++++++++++++++++++++++++
> xen/include/xen/bitmap.h | 5 +++++
> 2 files changed, 44 insertions(+)
>
> diff --git a/xen/common/bitmap.c b/xen/common/bitmap.c
> index 61d1ea4..ba060b2 100644
> --- a/xen/common/bitmap.c
> +++ b/xen/common/bitmap.c
> @@ -489,6 +489,45 @@ int bitmap_allocate_region(unsigned long *bitmap, int
> pos, int order)
> }
> EXPORT_SYMBOL(bitmap_allocate_region);
>
> +/*
> + * bitmap_find_next_zero_area - find a contiguous aligned zero area
> + * @map: The address to base the search on
> + * @size: The bitmap size in bits
> + * @start: The bitnumber to start searching at
> + * @nr: The number of zeroed bits we're looking for
> + * @align_mask: Alignment mask for zero area
> + *
> + * The @align_mask should be one less than a power of 2; the effect is that
> + * the bit offset of all zero areas this function finds is multiples of that
> + * power of 2. A @align_mask of 0 means no alignment is required.
> + */
> +#define ALIGN_MASK(x, mask) (((x) + (mask)) & ~(mask))
This is not bitmap specific, I would move this macro in lib.h
> +unsigned long bitmap_find_next_zero_area(unsigned long *map,
> + unsigned long size,
> + unsigned long start,
> + unsigned int nr,
> + unsigned long align_mask)
> +{
> + unsigned long index, end, i;
> +again:
> + index = find_next_zero_bit(map, size, start);
> +
> + /* Align allocation */
> + index = ALIGN_MASK(index, align_mask);
> +
> + end = index + nr;
> + if (end > size)
> + return end;
> + i = find_next_bit(map, end, index);
> + if (i < end) {
> + start = i + 1;
> + goto again;
> + }
> + return index;
> +}
> +EXPORT_SYMBOL(bitmap_find_next_zero_area);
> +
bitmap.c is using Linux coding style which include hard tabs. Please
retain them.
Regards,
--
Julien Grall
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |