Files
linux/include/linux
Andy Shevchenko de5f843389 lib/bitmap: Introduce bitmap_scatter() and bitmap_gather() helpers
These helpers scatters or gathers a bitmap with the help of the mask
position bits parameter.

bitmap_scatter() does the following:
  src:  0000000001011010
                  ||||||
           +------+|||||
           |  +----+||||
           |  |+----+|||
           |  ||   +-+||
           |  ||   |  ||
  mask: ...v..vv...v..vv
        ...0..11...0..10
  dst:  0000001100000010

and bitmap_gather() performs this one:
   mask: ...v..vv...v..vv
   src:  0000001100000010
            ^  ^^   ^   0
            |  ||   |  10
            |  ||   > 010
            |  |+--> 1010
            |  +--> 11010
            +----> 011010
   dst:  0000000000011010

bitmap_gather() can the seen as the reverse bitmap_scatter() operation.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/lkml/20230926052007.3917389-3-andriy.shevchenko@linux.intel.com/
Co-developed-by: Herve Codina <herve.codina@bootlin.com>
Signed-off-by: Herve Codina <herve.codina@bootlin.com>
Acked-by: Yury Norov <yury.norov@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2024-03-11 09:36:11 +00:00
..
2024-01-02 17:54:05 +01:00
2023-12-20 19:26:32 -05:00
2023-12-02 22:24:36 +00:00
2023-12-15 16:25:55 -08:00
2023-12-20 14:48:13 -08:00
2024-02-09 23:31:16 -05:00
2023-12-20 07:39:52 -05:00
2023-12-12 14:24:14 +01:00
2024-01-08 09:36:55 +09:00
2024-01-19 11:59:11 -08:00
2024-03-05 11:38:14 +01:00
2024-01-02 11:25:28 +01:00
2024-01-18 21:10:43 +01:00
2024-02-28 19:36:39 -08:00
2024-02-23 16:45:05 +01:00
2023-12-20 19:26:31 -05:00
2023-12-20 19:26:31 -05:00
2023-12-20 19:26:31 -05:00
2023-12-20 19:26:30 -05:00
2023-11-28 15:48:39 +01:00
2023-11-15 22:41:27 -05:00
2024-03-01 08:44:54 +00:00
2024-03-07 21:13:25 -08:00
2024-01-04 10:47:56 -05:00
2023-12-20 19:26:30 -05:00
2024-01-15 12:10:41 -06:00
2024-01-15 12:10:41 -06:00
2023-11-15 10:15:40 +01:00
2023-12-20 19:26:31 -05:00
2023-12-20 19:26:31 -05:00
2023-12-20 19:26:31 -05:00
2023-12-20 19:26:31 -05:00
2024-01-09 15:00:09 +01:00
2023-12-20 19:26:30 -05:00
2023-12-27 11:49:56 -05:00
2023-12-20 19:26:32 -05:00
2023-12-27 11:49:56 -05:00
2023-12-20 19:26:31 -05:00
2023-11-15 10:15:33 +01:00
2023-12-20 19:26:32 -05:00
2024-01-24 16:21:01 -08:00
2023-12-20 19:26:32 -05:00
2023-12-20 19:26:32 -05:00
2024-02-15 12:17:28 -05:00
2023-12-08 12:02:38 +01:00
2023-12-20 19:26:31 -05:00
2024-03-08 11:38:45 -08:00
2024-01-21 18:09:30 +00:00
2024-01-19 11:59:11 -08:00
2023-12-28 05:02:42 -08:00
2024-03-04 20:46:18 -08:00
2023-11-17 15:48:03 +01:00
2023-12-20 19:26:31 -05:00
2023-12-20 19:26:31 -05:00
2023-12-08 12:02:37 +01:00
2023-12-20 19:26:30 -05:00
2024-03-06 10:52:12 +01:00
2023-12-29 11:58:24 -08:00
2024-02-09 12:07:48 +00:00