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 = 8

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

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

test bit_set
be:   1   0 10010010
is:   1   0 10010010

test bit_clear
be:   0   3 00010000
is:   0   3 00010000

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

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

test bit_nset and bit_nclear
be:   0   1 01111110
is:   0   1 01111110
be:   0   1 01000010
is:   0   1 01000010
be:   0  -1 00000000
is:   0  -1 00000000
be:   7   0 11111110
is:   7   0 11111110
be:   0  -1 00000000
is:   0  -1 00000000

first 1 bit should move right 1 position each line
  0  -1   0 11111111
  1   0   1 01111111
  2   0   2 00111111
  3   0   3 00011111
  4   0   4 00001111
  5   0   5 00000111
  6   0   6 00000011
  7   0   7 00000001

first 0 bit should move right 1 position each line
  0   0  -1 00000000
  1   1   0 10000000
  2   2   0 11000000
  3   3   0 11100000
  4   4   0 11110000
  5   5   0 11111000
  6   6   0 11111100
  7   7   0 11111110

first 0 bit should move left 1 position each line
  0  -1   0 11111111
  1   7   0 11111110
  2   6   0 11111100
  3   5   0 11111000
  4   4   0 11110000
  5   3   0 11100000
  6   2   0 11000000
  7   1   0 10000000

first 1 bit should move left 1 position each line
  0   0  -1 00000000
  1   0   7 00000001
  2   0   6 00000011
  3   0   5 00000111
  4   0   4 00001111
  5   0   3 00011111
  6   0   2 00111111
  7   0   1 01111111

0 bit should move right 1 position each line
  0   0   1 01111111
  1   1   0 10111111
  2   2   0 11011111
  3   3   0 11101111
  4   4   0 11110111
  5   5   0 11111011
  6   6   0 11111101
  7   7   0 11111110

1 bit should move right 1 position each line
  0   1   0 10000000
  1   0   1 01000000
  2   0   2 00100000
  3   0   3 00010000
  4   0   4 00001000
  5   0   5 00000100
  6   0   6 00000010
  7   0   7 00000001