1
0
mirror of https://review.coreboot.org/flashrom.git synced 2025-07-02 22:43:17 +02:00

hwaccess: replace macros by C code

Split the code for endian conversion into separate files for big and
little endian. The buildsystem selects the correct file for the used
endianness. Replace the swab macros with `static inline` c functions.
Define macros for returning the same or swapped value. Call those macros
in the endian specific files.

Change-Id: I86d38d816b37c283279c485fac8027f8fb94364a
Signed-off-by: Thomas Heijligen <thomas.heijligen@secunet.com>
Reviewed-on: https://review.coreboot.org/c/flashrom/+/62898
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nico Huber <nico.h@gmx.de>
This commit is contained in:
Thomas Heijligen
2022-02-19 21:17:44 +01:00
committed by Nico Huber
parent b94a5a21c3
commit 6272c71fbb
5 changed files with 167 additions and 69 deletions

View File

@ -29,13 +29,6 @@ add_project_arguments('-D_POSIX_C_SOURCE=200809L', language : 'c') # required fo
add_project_arguments('-D_BSD_SOURCE', language : 'c') # required for glibc < v2.19
add_project_arguments('-DFLASHROM_VERSION="' + meson.project_version() + '"', language : 'c')
if host_machine.endian() == 'little'
add_project_arguments('-D__FLASHROM_LITTLE_ENDIAN__=1', language : 'c')
endif
if host_machine.endian() == 'big'
add_project_arguments('-D__FLASHROM_BIG_ENDIAN__=1', language : 'c')
endif
if host_machine.system() in ['cygwin', 'windows']
add_project_arguments('-DIS_WINDOWS=1', language : 'c')
else
@ -142,6 +135,15 @@ if cc.check_header('sys/utsname.h')
add_project_arguments('-DHAVE_UTSNAME=1', language : 'c')
endif
if host_machine.endian() == 'little'
srcs += 'hwaccess_endian_little.c'
add_project_arguments('-D__FLASHROM_LITTLE_ENDIAN__=1', language : 'c')
endif
if host_machine.endian() == 'big'
srcs += 'hwaccess_endian_big.c'
add_project_arguments('-D__FLASHROM_BIG_ENDIAN__=1', language : 'c')
endif
# some programmers require libusb
if get_option('usb')
srcs += 'usbdev.c'