Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

Testing with TEST_LENGTH = 27

test _bit_byte, _bit_mask, and bitstr_size
  i   _bit_byte(i)   _bit_mask(i) bitstr_size(i)
  0              0              1              0
  1              0              2              1
  2              0              4              1
  3              0              8              1
  4              0             16              1
  5              0             32              1
  6              0             64              1
  7              0            128              1
  8              1              1              1
  9              1              2              2
 10              1              4              2
 11              1              8              2
 12              1             16              2
 13              1             32              2
 14              1             64              2
 15              1            128              2
 16              2              1              2
 17              2              2              3
 18              2              4              3
 19              2              8              3
 20              2             16              3
 21              2             32              3
 22              2             64              3
 23              2            128              3
 24              3              1              3
 25              3              2              4
 26              3              4              4

test bit_alloc, clearbits, bit_ffc, bit_ffs
be:   0  -1 000000000000000000000000000
is:   0  -1 000000000000000000000000000

test bit_set
be:   1   0 100100100100100100100100100
is:   1   0 100100100100100100100100100

test bit_clear
be:   0   3 000100000100000100000100000
is:   0   3 000100000100000100000100000

test bit_test using previous bitstring
  i    bit_test(i)
  0              0
  1              0
  2              0
  3              8
  4              0
  5              0
  6              0
  7              0
  8              0
  9              2
 10              0
 11              0
 12              0
 13              0
 14              0
 15            128
 16              0
 17              0
 18              0
 19              0
 20              0
 21             32
 22              0
 23              0
 24              0
 25              0
 26              0

test clearbits
be:   0  -1 000000000000000000000000000
is:   0  -1 000000000000000000000000000

test bit_nset and bit_nclear
be:   0   1 011111111111111111111111110
is:   0   1 011111111111111111111111110
be:   0   1 010000000000000000000000010
is:   0   1 010000000000000000000000010
be:   0  -1 000000000000000000000000000
is:   0  -1 000000000000000000000000000
be:  26   0 111111111111111111111111110
is:  26   0 111111111111111111111111110
be:   0  -1 000000000000000000000000000
is:   0  -1 000000000000000000000000000

first 1 bit should move right 1 position each line
  0  -1   0 111111111111111111111111111
  1   0   1 011111111111111111111111111
  2   0   2 001111111111111111111111111
  3   0   3 000111111111111111111111111
  4   0   4 000011111111111111111111111
  5   0   5 000001111111111111111111111
  6   0   6 000000111111111111111111111
  7   0   7 000000011111111111111111111
  8   0   8 000000001111111111111111111
  9   0   9 000000000111111111111111111
 10   0  10 000000000011111111111111111
 11   0  11 000000000001111111111111111
 12   0  12 000000000000111111111111111
 13   0  13 000000000000011111111111111
 14   0  14 000000000000001111111111111
 15   0  15 000000000000000111111111111
 16   0  16 000000000000000011111111111
 17   0  17 000000000000000001111111111
 18   0  18 000000000000000000111111111
 19   0  19 000000000000000000011111111
 20   0  20 000000000000000000001111111
 21   0  21 000000000000000000000111111
 22   0  22 000000000000000000000011111
 23   0  23 000000000000000000000001111
 24   0  24 000000000000000000000000111
 25   0  25 000000000000000000000000011
 26   0  26 000000000000000000000000001

first 0 bit should move right 1 position each line
  0   0  -1 000000000000000000000000000
  1   1   0 100000000000000000000000000
  2   2   0 110000000000000000000000000
  3   3   0 111000000000000000000000000
  4   4   0 111100000000000000000000000
  5   5   0 111110000000000000000000000
  6   6   0 111111000000000000000000000
  7   7   0 111111100000000000000000000
  8   8   0 111111110000000000000000000
  9   9   0 111111111000000000000000000
 10  10   0 111111111100000000000000000
 11  11   0 111111111110000000000000000
 12  12   0 111111111111000000000000000
 13  13   0 111111111111100000000000000
 14  14   0 111111111111110000000000000
 15  15   0 111111111111111000000000000
 16  16   0 111111111111111100000000000
 17  17   0 111111111111111110000000000
 18  18   0 111111111111111111000000000
 19  19   0 111111111111111111100000000
 20  20   0 111111111111111111110000000
 21  21   0 111111111111111111111000000
 22  22   0 111111111111111111111100000
 23  23   0 111111111111111111111110000
 24  24   0 111111111111111111111111000
 25  25   0 111111111111111111111111100
 26  26   0 111111111111111111111111110

first 0 bit should move left 1 position each line
  0  -1   0 111111111111111111111111111
  1  26   0 111111111111111111111111110
  2  25   0 111111111111111111111111100
  3  24   0 111111111111111111111111000
  4  23   0 111111111111111111111110000
  5  22   0 111111111111111111111100000
  6  21   0 111111111111111111111000000
  7  20   0 111111111111111111110000000
  8  19   0 111111111111111111100000000
  9  18   0 111111111111111111000000000
 10  17   0 111111111111111110000000000
 11  16   0 111111111111111100000000000
 12  15   0 111111111111111000000000000
 13  14   0 111111111111110000000000000
 14  13   0 111111111111100000000000000
 15  12   0 111111111111000000000000000
 16  11   0 111111111110000000000000000
 17  10   0 111111111100000000000000000
 18   9   0 111111111000000000000000000
 19   8   0 111111110000000000000000000
 20   7   0 111111100000000000000000000
 21   6   0 111111000000000000000000000
 22   5   0 111110000000000000000000000
 23   4   0 111100000000000000000000000
 24   3   0 111000000000000000000000000
 25   2   0 110000000000000000000000000
 26   1   0 100000000000000000000000000

first 1 bit should move left 1 position each line
  0   0  -1 000000000000000000000000000
  1   0  26 000000000000000000000000001
  2   0  25 000000000000000000000000011
  3   0  24 000000000000000000000000111
  4   0  23 000000000000000000000001111
  5   0  22 000000000000000000000011111
  6   0  21 000000000000000000000111111
  7   0  20 000000000000000000001111111
  8   0  19 000000000000000000011111111
  9   0  18 000000000000000000111111111
 10   0  17 000000000000000001111111111
 11   0  16 000000000000000011111111111
 12   0  15 000000000000000111111111111
 13   0  14 000000000000001111111111111
 14   0  13 000000000000011111111111111
 15   0  12 000000000000111111111111111
 16   0  11 000000000001111111111111111
 17   0  10 000000000011111111111111111
 18   0   9 000000000111111111111111111
 19   0   8 000000001111111111111111111
 20   0   7 000000011111111111111111111
 21   0   6 000000111111111111111111111
 22   0   5 000001111111111111111111111
 23   0   4 000011111111111111111111111
 24   0   3 000111111111111111111111111
 25   0   2 001111111111111111111111111
 26   0   1 011111111111111111111111111

0 bit should move right 1 position each line
  0   0   1 011111111111111111111111111
  1   1   0 101111111111111111111111111
  2   2   0 110111111111111111111111111
  3   3   0 111011111111111111111111111
  4   4   0 111101111111111111111111111
  5   5   0 111110111111111111111111111
  6   6   0 111111011111111111111111111
  7   7   0 111111101111111111111111111
  8   8   0 111111110111111111111111111
  9   9   0 111111111011111111111111111
 10  10   0 111111111101111111111111111
 11  11   0 111111111110111111111111111
 12  12   0 111111111111011111111111111
 13  13   0 111111111111101111111111111
 14  14   0 111111111111110111111111111
 15  15   0 111111111111111011111111111
 16  16   0 111111111111111101111111111
 17  17   0 111111111111111110111111111
 18  18   0 111111111111111111011111111
 19  19   0 111111111111111111101111111
 20  20   0 111111111111111111110111111
 21  21   0 111111111111111111111011111
 22  22   0 111111111111111111111101111
 23  23   0 111111111111111111111110111
 24  24   0 111111111111111111111111011
 25  25   0 111111111111111111111111101
 26  26   0 111111111111111111111111110

1 bit should move right 1 position each line
  0   1   0 100000000000000000000000000
  1   0   1 010000000000000000000000000
  2   0   2 001000000000000000000000000
  3   0   3 000100000000000000000000000
  4   0   4 000010000000000000000000000
  5   0   5 000001000000000000000000000
  6   0   6 000000100000000000000000000
  7   0   7 000000010000000000000000000
  8   0   8 000000001000000000000000000
  9   0   9 000000000100000000000000000
 10   0  10 000000000010000000000000000
 11   0  11 000000000001000000000000000
 12   0  12 000000000000100000000000000
 13   0  13 000000000000010000000000000
 14   0  14 000000000000001000000000000
 15   0  15 000000000000000100000000000
 16   0  16 000000000000000010000000000
 17   0  17 000000000000000001000000000
 18   0  18 000000000000000000100000000
 19   0  19 000000000000000000010000000
 20   0  20 000000000000000000001000000
 21   0  21 000000000000000000000100000
 22   0  22 000000000000000000000010000
 23   0  23 000000000000000000000001000
 24   0  24 000000000000000000000000100
 25   0  25 000000000000000000000000010
 26   0  26 000000000000000000000000001