iPXE
|
Mellanox bit operations. More...
Go to the source code of this file.
Macros | |
#define | MLX_DECLARE_STRUCT(_structure) |
Wrapper structure for pseudo_bit_t structures. More... | |
#define | MLX_PSEUDO_STRUCT(_ptr) typeof ( *((_ptr)->u.dummy[0]) ) |
Get pseudo_bit_t structure type from wrapper structure pointer. More... | |
#define | MLX_BIT_OFFSET(_structure_st, _field) offsetof ( _structure_st, _field ) |
Bit offset of a field within a pseudo_bit_t structure. More... | |
#define | MLX_DWORD_OFFSET(_structure_st, _field) ( MLX_BIT_OFFSET ( _structure_st, _field ) / 32 ) |
Dword offset of a field within a pseudo_bit_t structure. More... | |
#define | MLX_DWORD_BIT_OFFSET(_structure_st, _index, _field) ( MLX_BIT_OFFSET ( _structure_st, _field ) - ( 32 * (_index) ) ) |
Dword bit offset of a field within a pseudo_bit_t structure. More... | |
#define | MLX_BIT_WIDTH(_structure_st, _field) sizeof ( ( ( _structure_st * ) NULL )->_field ) |
Bit width of a field within a pseudo_bit_t structure. More... | |
#define | MLX_BIT_MASK(_structure_st, _field) |
Bit mask for a field within a pseudo_bit_t structure. More... | |
#define | MLX_ASSEMBLE_1(_structure_st, _index, _field, _value) ( (_value) << MLX_DWORD_BIT_OFFSET ( _structure_st, _index, _field ) ) |
#define | MLX_ASSEMBLE_2(_structure_st, _index, _field, _value, ...) |
#define | MLX_ASSEMBLE_3(_structure_st, _index, _field, _value, ...) |
#define | MLX_ASSEMBLE_4(_structure_st, _index, _field, _value, ...) |
#define | MLX_ASSEMBLE_5(_structure_st, _index, _field, _value, ...) |
#define | MLX_ASSEMBLE_6(_structure_st, _index, _field, _value, ...) |
#define | MLX_ASSEMBLE_7(_structure_st, _index, _field, _value, ...) |
#define | MLX_ASSEMBLE_8(_structure_st, _index, _field, _value, ...) |
#define | MLX_MASK_1(_structure_st, _index, _field) |
#define | MLX_MASK_2(_structure_st, _index, _field, ...) |
#define | MLX_MASK_3(_structure_st, _index, _field, ...) |
#define | MLX_MASK_4(_structure_st, _index, _field, ...) |
#define | MLX_MASK_5(_structure_st, _index, _field, ...) |
#define | MLX_MASK_6(_structure_st, _index, _field, ...) |
#define | MLX_MASK_7(_structure_st, _index, _field, ...) |
#define | MLX_MASK_8(_structure_st, _index, _field, ...) |
#define | MLX_FILL(_ptr, _index, _assembled) |
#define | MLX_FILL_1(_ptr, _index, ...) |
#define | MLX_FILL_2(_ptr, _index, ...) |
#define | MLX_FILL_3(_ptr, _index, ...) |
#define | MLX_FILL_4(_ptr, _index, ...) |
#define | MLX_FILL_5(_ptr, _index, ...) |
#define | MLX_FILL_6(_ptr, _index, ...) |
#define | MLX_FILL_7(_ptr, _index, ...) |
#define | MLX_FILL_8(_ptr, _index, ...) |
#define | MLX_SET(_ptr, _field, _value) |
#define | MLX_GET(_ptr, _field) |
#define | MLX_FILL_H(_structure_st, _index, _field, _address) |
Typedefs | |
typedef unsigned char | pseudo_bit_t |
Functions | |
FILE_LICENCE (GPL2_OR_LATER) | |
Mellanox bit operations.
Definition in file mlx_bitops.h.
#define MLX_DECLARE_STRUCT | ( | _structure | ) |
Wrapper structure for pseudo_bit_t structures.
This structure provides a wrapper around the autogenerated pseudo_bit_t structures. It has the correct size, and also encapsulates type information about the underlying pseudo_bit_t structure, which allows the MLX_FILL etc. macros to work without requiring explicit type information.
Definition at line 44 of file mlx_bitops.h.
#define MLX_PSEUDO_STRUCT | ( | _ptr | ) | typeof ( *((_ptr)->u.dummy[0]) ) |
Get pseudo_bit_t structure type from wrapper structure pointer.
Definition at line 54 of file mlx_bitops.h.
#define MLX_BIT_OFFSET | ( | _structure_st, | |
_field | |||
) | offsetof ( _structure_st, _field ) |
Bit offset of a field within a pseudo_bit_t structure.
Definition at line 58 of file mlx_bitops.h.
#define MLX_DWORD_OFFSET | ( | _structure_st, | |
_field | |||
) | ( MLX_BIT_OFFSET ( _structure_st, _field ) / 32 ) |
Dword offset of a field within a pseudo_bit_t structure.
Definition at line 62 of file mlx_bitops.h.
#define MLX_DWORD_BIT_OFFSET | ( | _structure_st, | |
_index, | |||
_field | |||
) | ( MLX_BIT_OFFSET ( _structure_st, _field ) - ( 32 * (_index) ) ) |
Dword bit offset of a field within a pseudo_bit_t structure.
Yes, using mod-32 would work, but would lose the check for the error of specifying a mismatched field name and dword index.
Definition at line 70 of file mlx_bitops.h.
#define MLX_BIT_WIDTH | ( | _structure_st, | |
_field | |||
) | sizeof ( ( ( _structure_st * ) NULL )->_field ) |
Bit width of a field within a pseudo_bit_t structure.
Definition at line 74 of file mlx_bitops.h.
#define MLX_BIT_MASK | ( | _structure_st, | |
_field | |||
) |
Bit mask for a field within a pseudo_bit_t structure.
Definition at line 78 of file mlx_bitops.h.
#define MLX_ASSEMBLE_1 | ( | _structure_st, | |
_index, | |||
_field, | |||
_value | |||
) | ( (_value) << MLX_DWORD_BIT_OFFSET ( _structure_st, _index, _field ) ) |
Definition at line 87 of file mlx_bitops.h.
#define MLX_ASSEMBLE_2 | ( | _structure_st, | |
_index, | |||
_field, | |||
_value, | |||
... | |||
) |
Definition at line 90 of file mlx_bitops.h.
#define MLX_ASSEMBLE_3 | ( | _structure_st, | |
_index, | |||
_field, | |||
_value, | |||
... | |||
) |
Definition at line 94 of file mlx_bitops.h.
#define MLX_ASSEMBLE_4 | ( | _structure_st, | |
_index, | |||
_field, | |||
_value, | |||
... | |||
) |
Definition at line 98 of file mlx_bitops.h.
#define MLX_ASSEMBLE_5 | ( | _structure_st, | |
_index, | |||
_field, | |||
_value, | |||
... | |||
) |
Definition at line 102 of file mlx_bitops.h.
#define MLX_ASSEMBLE_6 | ( | _structure_st, | |
_index, | |||
_field, | |||
_value, | |||
... | |||
) |
Definition at line 106 of file mlx_bitops.h.
#define MLX_ASSEMBLE_7 | ( | _structure_st, | |
_index, | |||
_field, | |||
_value, | |||
... | |||
) |
Definition at line 110 of file mlx_bitops.h.
#define MLX_ASSEMBLE_8 | ( | _structure_st, | |
_index, | |||
_field, | |||
_value, | |||
... | |||
) |
Definition at line 114 of file mlx_bitops.h.
#define MLX_MASK_1 | ( | _structure_st, | |
_index, | |||
_field | |||
) |
Definition at line 123 of file mlx_bitops.h.
#define MLX_MASK_2 | ( | _structure_st, | |
_index, | |||
_field, | |||
... | |||
) |
Definition at line 127 of file mlx_bitops.h.
#define MLX_MASK_3 | ( | _structure_st, | |
_index, | |||
_field, | |||
... | |||
) |
Definition at line 131 of file mlx_bitops.h.
#define MLX_MASK_4 | ( | _structure_st, | |
_index, | |||
_field, | |||
... | |||
) |
Definition at line 135 of file mlx_bitops.h.
#define MLX_MASK_5 | ( | _structure_st, | |
_index, | |||
_field, | |||
... | |||
) |
Definition at line 139 of file mlx_bitops.h.
#define MLX_MASK_6 | ( | _structure_st, | |
_index, | |||
_field, | |||
... | |||
) |
Definition at line 143 of file mlx_bitops.h.
#define MLX_MASK_7 | ( | _structure_st, | |
_index, | |||
_field, | |||
... | |||
) |
Definition at line 147 of file mlx_bitops.h.
#define MLX_MASK_8 | ( | _structure_st, | |
_index, | |||
_field, | |||
... | |||
) |
Definition at line 151 of file mlx_bitops.h.
#define MLX_FILL | ( | _ptr, | |
_index, | |||
_assembled | |||
) |
Definition at line 160 of file mlx_bitops.h.
#define MLX_FILL_1 | ( | _ptr, | |
_index, | |||
... | |||
) |
Definition at line 167 of file mlx_bitops.h.
#define MLX_FILL_2 | ( | _ptr, | |
_index, | |||
... | |||
) |
Definition at line 171 of file mlx_bitops.h.
#define MLX_FILL_3 | ( | _ptr, | |
_index, | |||
... | |||
) |
Definition at line 175 of file mlx_bitops.h.
#define MLX_FILL_4 | ( | _ptr, | |
_index, | |||
... | |||
) |
Definition at line 179 of file mlx_bitops.h.
#define MLX_FILL_5 | ( | _ptr, | |
_index, | |||
... | |||
) |
Definition at line 183 of file mlx_bitops.h.
#define MLX_FILL_6 | ( | _ptr, | |
_index, | |||
... | |||
) |
Definition at line 187 of file mlx_bitops.h.
#define MLX_FILL_7 | ( | _ptr, | |
_index, | |||
... | |||
) |
Definition at line 191 of file mlx_bitops.h.
#define MLX_FILL_8 | ( | _ptr, | |
_index, | |||
... | |||
) |
Definition at line 195 of file mlx_bitops.h.
#define MLX_SET | ( | _ptr, | |
_field, | |||
_value | |||
) |
Definition at line 204 of file mlx_bitops.h.
#define MLX_GET | ( | _ptr, | |
_field | |||
) |
Definition at line 222 of file mlx_bitops.h.
#define MLX_FILL_H | ( | _structure_st, | |
_index, | |||
_field, | |||
_address | |||
) |
Definition at line 240 of file mlx_bitops.h.
typedef unsigned char pseudo_bit_t |
Definition at line 33 of file mlx_bitops.h.
FILE_LICENCE | ( | GPL2_OR_LATER | ) |