From 0686bd470725b4fea28029cf8307d341e555312c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Thu, 11 Sep 2003 02:01:48 +0000 Subject: [PATCH] Fixed and simplified. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4616 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../kernel/file_systems/bfs/bfs_endian.h | 38 +++++++++---------- 1 file changed, 18 insertions(+), 20 deletions(-) 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