diff --git a/src/add-ons/kernel/file_systems/bfs/bfs_endian.h b/src/add-ons/kernel/file_systems/bfs/bfs_endian.h index 35a1ec78ee..bf01343453 100644 --- a/src/add-ons/kernel/file_systems/bfs/bfs_endian.h +++ b/src/add-ons/kernel/file_systems/bfs/bfs_endian.h @@ -15,26 +15,24 @@ #endif -#ifdef BFS_LITTLE_ENDIAN_ONLY -# if B_HOST_IS_LENDIAN -# define BFS_ENDIAN_TO_HOST_INT16(value) value -# define BFS_ENDIAN_TO_HOST_INT32(value) value -# define BFS_ENDIAN_TO_HOST_INT64(value) value -# else -# define BFS_ENDIAN_TO_HOST_INT16(value) __swap_int16(value) -# define BFS_ENDIAN_TO_HOST_INT16(value) __swap_int32(value) -# define BFS_ENDIAN_TO_HOST_INT16(value) __swap_int64(value) -# endif -#elif BFS_BIG_ENDIAN_ONLY -# if B_HOST_IS_BENDIAN -# define BFS_ENDIAN_TO_HOST_INT16(value) value -# define BFS_ENDIAN_TO_HOST_INT32(value) value -# define BFS_ENDIAN_TO_HOST_INT64(value) value -# else -# define BFS_ENDIAN_TO_HOST_INT16(value) __swap_int16(value) -# define BFS_ENDIAN_TO_HOST_INT16(value) __swap_int32(value) -# define BFS_ENDIAN_TO_HOST_INT16(value) __swap_int64(value) -# endif +#if defined(BFS_LITTLE_ENDIAN_ONLY) && B_HOST_IS_LENDIAN \ + || defined(BFS_BIG_ENDIAN_ONLY) && B_HOST_IS_BENDIAN + /* host is BFS endian */ +# define BFS_ENDIAN_TO_HOST_INT16(value) value +# define BFS_ENDIAN_TO_HOST_INT32(value) value +# define BFS_ENDIAN_TO_HOST_INT64(value) value +# define HOST_ENDIAN_TO_BFS_INT16(value) value +# define HOST_ENDIAN_TO_BFS_INT32(value) value +# define HOST_ENDIAN_TO_BFS_INT64(value) value +#elif defined(BFS_LITTLE_ENDIAN_ONLY) && B_HOST_IS_BENDIAN \ + || defined(BFS_BIG_ENDIAN_ONLY) && B_HOST_IS_LENDIAN + /* host is big endian, BFS is little endian or vice versa */ +# define BFS_ENDIAN_TO_HOST_INT16(value) __swap_int16(value) +# define BFS_ENDIAN_TO_HOST_INT32(value) __swap_int32(value) +# define BFS_ENDIAN_TO_HOST_INT64(value) __swap_int64(value) +# define HOST_ENDIAN_TO_BFS_INT16(value) __swap_int16(value) +# define HOST_ENDIAN_TO_BFS_INT32(value) __swap_int32(value) +# define HOST_ENDIAN_TO_BFS_INT64(value) __swap_int64(value) #else // ToDo: maybe build a version that supports both, big & little endian? // But since that will need some kind of global data (to