1f2ee5c6bc
Current users of sys_bitfield*() are bending over backwards to cast what is most of the times a pointer into an integer. Bitfields can be better described with an void *, so uint{8,16,32,64}_t or any other container can be used. Most sys_bitfield*() operations, by extension, can do the same. Note void * has byte arithmetic, like char *. This change will also make it implicit, for any future split of the address space between virtual (what the SW is seeing) and physical (what the HW is seeing) way clearer, as the functions dealing with physical, non directly referentiable/mappeable addreses to use an integer type, like mem_addr_t. - include/arch/ARCH/*asm_inline*: - sys_bitfield*() all modified to take 'void *' Note 'void *' arihtmethic is byte based, which makes some things easier. - include/sys_io.h: - introduces DEFINE_BITFIELD - update docs - tests/kernel/bitfield: remove all the cast contortions, use DEFINE_BITFIELD PENDING: update other TCs - include/arch/nios/nios2.h, drivers/interrupt_controller/ioapic_intr.c: remove cast contortions Change-Id: I901e62c76af46f26ff0d29cdc37099597f884511 Jira: ZEP-1347 Signed-off-by: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com> |
||
---|---|---|
.. | ||
include | ||
src | ||
test | ||
Kbuild | ||
Kconfig | ||
Makefile |