david/ipxe
david
/
ipxe
Archived
1
0
Fork 0

[bitops] Provide BIT_QWORD_PTR()

Provide BIT_QWORD_PTR() to allow for easy extraction of non-endian
fields (e.g. Infiniband GUIDs) without unnecessary byte swapping.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
Michael Brown 2015-11-24 17:28:23 +00:00
parent 89c767bfd6
commit 1fcd4223cc
1 changed files with 7 additions and 0 deletions

View File

@ -212,6 +212,13 @@ typedef unsigned char pseudo_bit_t;
BIT_ASSEMBLE_6 ( _ptr, QWORD_OFFSET ( _ptr, _field1 ), \
_field1, __VA_ARGS__ ) )
#define BIT_QWORD_PTR( _ptr, _field ) \
( { \
unsigned int __index = QWORD_OFFSET ( _ptr, _field ); \
uint64_t *__ptr = &(_ptr)->u.qwords[__index]; \
__ptr; \
} )
/** Extract value of named field */
#define BIT_GET64( _ptr, _field ) \
( { \