1 /*
2 * SPDX-License-Identifier: BSD-2-Clause
3 *
4 * Copyright (c) 2020 Western Digital Corporation or its affiliates.
5 *
6 * Authors:
7 * Anup Patel <anup.patel@wdc.com>
8 */
9
10 #include <sbi/sbi_bitmap.h>
11
__bitmap_and(unsigned long * dst,const unsigned long * bitmap1,const unsigned long * bitmap2,int bits)12 void __bitmap_and(unsigned long *dst, const unsigned long *bitmap1,
13 const unsigned long *bitmap2, int bits)
14 {
15 int k;
16 int nr = BITS_TO_LONGS(bits);
17
18 for (k = 0; k < nr; k++)
19 dst[k] = bitmap1[k] & bitmap2[k];
20 }
21
__bitmap_or(unsigned long * dst,const unsigned long * bitmap1,const unsigned long * bitmap2,int bits)22 void __bitmap_or(unsigned long *dst, const unsigned long *bitmap1,
23 const unsigned long *bitmap2, int bits)
24 {
25 int k;
26 int nr = BITS_TO_LONGS(bits);
27
28 for (k = 0; k < nr; k++)
29 dst[k] = bitmap1[k] | bitmap2[k];
30 }
31
__bitmap_xor(unsigned long * dst,const unsigned long * bitmap1,const unsigned long * bitmap2,int bits)32 void __bitmap_xor(unsigned long *dst, const unsigned long *bitmap1,
33 const unsigned long *bitmap2, int bits)
34 {
35 int k;
36 int nr = BITS_TO_LONGS(bits);
37
38 for (k = 0; k < nr; k++)
39 dst[k] = bitmap1[k] ^ bitmap2[k];
40 }
41