Author: bonefish Date: 2010-06-02 20:22:38 +0200 (Wed, 02 Jun 2010) New Revision: 36996 Changeset: http://dev.haiku-os.org/changeset/36996/haiku Modified: haiku/trunk/headers/build/config_build/types.h haiku/trunk/headers/build/os/support/SupportDefs.h haiku/trunk/headers/config/types.h haiku/trunk/headers/os/support/SupportDefs.h haiku/trunk/headers/private/fs_shell/fssh_api_wrapper.h haiku/trunk/headers/private/fs_shell/fssh_types.h Log: Introduced types [__haiku_]generic_{addr,size}_t which are wide enough for virtual and physical addresses. Modified: haiku/trunk/headers/build/config_build/types.h =================================================================== --- haiku/trunk/headers/build/config_build/types.h 2010-06-01 19:04:00 UTC (rev 36995) +++ haiku/trunk/headers/build/config_build/types.h 2010-06-02 18:22:38 UTC (rev 36996) @@ -70,5 +70,14 @@ #endif #define __HAIKU_PHYS_SADDR_MIN (-__HAIKU_SADDR_MAX-1) +/* a generic address type wide enough for virtual and physical addresses */ +#if __HAIKU_ARCH_BITS >= __HAIKU_ARCH_PHYSICAL_BITS + typedef __haiku_addr_t __haiku_generic_addr_t; +# define __HAIKU_GENERIC_ADDR_MAX __HAIKU_ADDR_MAX +#else + typedef __haiku_phys_addr_t __haiku_generic_addr_t; +# define __HAIKU_GENERIC_ADDR_MAX __HAIKU_PHYS_ADDR_MAX +#endif + #endif /* _CONFIG_BUILD_TYPES_H */ Modified: haiku/trunk/headers/build/os/support/SupportDefs.h =================================================================== --- haiku/trunk/headers/build/os/support/SupportDefs.h 2010-06-01 19:04:00 UTC (rev 36995) +++ haiku/trunk/headers/build/os/support/SupportDefs.h 2010-06-02 18:22:38 UTC (rev 36996) @@ -64,7 +64,10 @@ #endif typedef phys_addr_t phys_size_t; +typedef addr_t generic_addr_t; +typedef size_t generic_size_t; + /* printf()/scanf() format strings for [u]int* types */ #define B_PRId8 PRId8 #define B_PRIi8 PRIi8 @@ -150,6 +153,11 @@ # define B_PRIxPHYSADDR B_PRIx32 # define B_PRIXPHYSADDR B_PRIX32 #endif +/* generic_addr_t */ +#define B_PRIuGENADDR B_PRIuADDR +#define B_PRIoGENADDR B_PRIoADDR +#define B_PRIxGENADDR B_PRIxADDR +#define B_PRIXGENADDR B_PRIXADDR /* off_t */ #define B_PRIdOFF B_PRId64 #define B_PRIiOFF B_PRIi64 Modified: haiku/trunk/headers/config/types.h =================================================================== --- haiku/trunk/headers/config/types.h 2010-06-01 19:04:00 UTC (rev 36995) +++ haiku/trunk/headers/config/types.h 2010-06-02 18:22:38 UTC (rev 36996) @@ -98,4 +98,16 @@ #endif +/* a generic address type wide enough for virtual and physical addresses */ +#if __HAIKU_ARCH_BITS >= __HAIKU_ARCH_PHYSICAL_BITS + typedef __haiku_addr_t __haiku_generic_addr_t; +# define __HAIKU_GENERIC_ADDR_MAX __HAIKU_ADDR_MAX +# define __HAIKU_PRI_PREFIX_GENERIC_ADDR __HAIKU_PRI_PREFIX_ADDR +#else + typedef __haiku_phys_addr_t __haiku_generic_addr_t; +# define __HAIKU_GENERIC_ADDR_MAX __HAIKU_PHYS_ADDR_MAX +# define __HAIKU_PRI_PREFIX_GENERIC_ADDR __HAIKU_PRI_PREFIX_PHYS_ADDR +#endif + + #endif /* _CONFIG_TYPES_H */ Modified: haiku/trunk/headers/os/support/SupportDefs.h =================================================================== --- haiku/trunk/headers/os/support/SupportDefs.h 2010-06-01 19:04:00 UTC (rev 36995) +++ haiku/trunk/headers/os/support/SupportDefs.h 2010-06-02 18:22:38 UTC (rev 36996) @@ -59,7 +59,10 @@ typedef __haiku_phys_addr_t phys_addr_t; typedef phys_addr_t phys_size_t; +typedef __haiku_generic_addr_t generic_addr_t; +typedef generic_addr_t generic_size_t; + /* printf()/scanf() format strings for [u]int* types */ #define B_PRId8 "d" #define B_PRIi8 "i" @@ -126,6 +129,11 @@ #define B_PRIoPHYSADDR __HAIKU_PRI_PREFIX_PHYS_ADDR "o" #define B_PRIxPHYSADDR __HAIKU_PRI_PREFIX_PHYS_ADDR "x" #define B_PRIXPHYSADDR __HAIKU_PRI_PREFIX_PHYS_ADDR "X" +/* generic_addr_t */ +#define B_PRIuGENADDR __HAIKU_PRI_PREFIX_GENERIC_ADDR "u" +#define B_PRIoGENADDR __HAIKU_PRI_PREFIX_GENERIC_ADDR "o" +#define B_PRIxGENADDR __HAIKU_PRI_PREFIX_GENERIC_ADDR "x" +#define B_PRIXGENADDR __HAIKU_PRI_PREFIX_GENERIC_ADDR "X" /* off_t */ #define B_PRIdOFF B_PRId64 #define B_PRIiOFF B_PRIi64 Modified: haiku/trunk/headers/private/fs_shell/fssh_api_wrapper.h =================================================================== --- haiku/trunk/headers/private/fs_shell/fssh_api_wrapper.h 2010-06-01 19:04:00 UTC (rev 36995) +++ haiku/trunk/headers/private/fs_shell/fssh_api_wrapper.h 2010-06-02 18:22:38 UTC (rev 36996) @@ -1493,6 +1493,8 @@ #define addr_t fssh_addr_t #define phys_addr_t fssh_phys_addr_t #define phys_size_t fssh_phys_size_t +#define generic_addr_t fssh_generic_addr_t +#define generic_size_t fssh_generic_size_t #define dev_t fssh_dev_t #define ino_t fssh_ino_t @@ -1573,6 +1575,16 @@ #define B_PRIoADDR FSSH_B_PRIoADDR #define B_PRIxADDR FSSH_B_PRIxADDR #define B_PRIXADDR FSSH_B_PRIXADDR +/* phys_addr_t */ +#define B_PRIuPHYSADDR FSSH_B_PRIuPHYSADDR +#define B_PRIoPHYSADDR FSSH_B_PRIoPHYSADDR +#define B_PRIxPHYSADDR FSSH_B_PRIxPHYSADDR +#define B_PRIXPHYSADDR FSSH_B_PRIXPHYSADDR +/* generic_addr_t */ +#define B_PRIuGENADDR FSSH_B_PRIuGENADDR +#define B_PRIoGENADDR FSSH_B_PRIoGENADDR +#define B_PRIxGENADDR FSSH_B_PRIxGENADDR +#define B_PRIXGENADDR FSSH_B_PRIXGENADDR /* off_t */ #define B_PRIdOFF FSSH_B_PRIdOFF #define B_PRIiOFF FSSH_B_PRIiOFF Modified: haiku/trunk/headers/private/fs_shell/fssh_types.h =================================================================== --- haiku/trunk/headers/private/fs_shell/fssh_types.h 2010-06-01 19:04:00 UTC (rev 36995) +++ haiku/trunk/headers/private/fs_shell/fssh_types.h 2010-06-02 18:22:38 UTC (rev 36996) @@ -15,15 +15,18 @@ #ifdef HAIKU_HOST_PLATFORM_64_BIT typedef uint64_t fssh_addr_t; typedef uint64_t fssh_phys_addr_t; +typedef uint64_t fssh_generic_addr_t; typedef uint64_t fssh_size_t; typedef int64_t fssh_ssize_t; #else typedef uint32_t fssh_addr_t; typedef uint32_t fssh_phys_addr_t; +typedef uint32_t fssh_generic_addr_t; typedef uint32_t fssh_size_t; typedef int32_t fssh_ssize_t; #endif typedef fssh_phys_addr_t fssh_phys_size_t; +typedef fssh_generic_addr_t fssh_generic_size_t; typedef int32_t fssh_dev_t; typedef int64_t fssh_ino_t; @@ -134,6 +137,11 @@ # define FSSH_B_PRIxPHYSADDR FSSH_B_PRIx32 # define FSSH_B_PRIXPHYSADDR FSSH_B_PRIX32 #endif +/* generic_addr_t */ +#define FSSH_B_PRIuGENADDR FSSH_B_PRIuPHYSADDR +#define FSSH_B_PRIoGENADDR FSSH_B_PRIoPHYSADDR +#define FSSH_B_PRIxGENADDR FSSH_B_PRIxPHYSADDR +#define FSSH_B_PRIXGENADDR FSSH_B_PRIXPHYSADDR /* off_t */ #define FSSH_B_PRIdOFF FSSH_B_PRId64 #define FSSH_B_PRIiOFF FSSH_B_PRIi64