Message ID | 20230202044427.1253816-4-rpathak@ventanamicro.com |
---|---|
State | Accepted |
Headers | show |
Series | Add endianness conversion support | expand |
On Thu, Feb 2, 2023 at 10:15 AM Rahul Pathak <rpathak@ventanamicro.com> wrote: > > If any variable/memory-location follows certain > endianness then its important to annotate it properly > so that proper conversion can be done before read/write > from that variable/memory. > > Also, use these new typedefs in libfdt_env.h for deriving > its own custom fdtX_t types > > Signed-off-by: Rahul Pathak <rpathak@ventanamicro.com> Looks good to me. Reviewed-by: Anup Patel <anup@brainfault.org> Applied this patch to the riscv/opensbi repo. Thanks, Anup > --- > include/sbi/sbi_types.h | 7 +++++++ > lib/utils/libfdt/libfdt_env.h | 6 +++--- > 2 files changed, 10 insertions(+), 3 deletions(-) > > diff --git a/include/sbi/sbi_types.h b/include/sbi/sbi_types.h > index 9c1fef3b8dc6..def88bbad2c3 100644 > --- a/include/sbi/sbi_types.h > +++ b/include/sbi/sbi_types.h > @@ -54,6 +54,13 @@ typedef unsigned long virtual_size_t; > typedef unsigned long physical_addr_t; > typedef unsigned long physical_size_t; > > +typedef uint16_t le16_t; > +typedef uint16_t be16_t; > +typedef uint32_t le32_t; > +typedef uint32_t be32_t; > +typedef uint64_t le64_t; > +typedef uint64_t be64_t; > + > #define true 1 > #define false 0 > > diff --git a/lib/utils/libfdt/libfdt_env.h b/lib/utils/libfdt/libfdt_env.h > index e5ad7698efca..6ebbae01b514 100644 > --- a/lib/utils/libfdt/libfdt_env.h > +++ b/lib/utils/libfdt/libfdt_env.h > @@ -38,9 +38,9 @@ > #define strlen sbi_strlen > #define strnlen sbi_strnlen > > -typedef uint16_t FDT_BITWISE fdt16_t; > -typedef uint32_t FDT_BITWISE fdt32_t; > -typedef uint64_t FDT_BITWISE fdt64_t; > +typedef be16_t FDT_BITWISE fdt16_t; > +typedef be32_t FDT_BITWISE fdt32_t; > +typedef be64_t FDT_BITWISE fdt64_t; > > static inline uint16_t fdt16_to_cpu(fdt16_t x) > { > -- > 2.34.1 > > > -- > opensbi mailing list > opensbi@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/opensbi
diff --git a/include/sbi/sbi_types.h b/include/sbi/sbi_types.h index 9c1fef3b8dc6..def88bbad2c3 100644 --- a/include/sbi/sbi_types.h +++ b/include/sbi/sbi_types.h @@ -54,6 +54,13 @@ typedef unsigned long virtual_size_t; typedef unsigned long physical_addr_t; typedef unsigned long physical_size_t; +typedef uint16_t le16_t; +typedef uint16_t be16_t; +typedef uint32_t le32_t; +typedef uint32_t be32_t; +typedef uint64_t le64_t; +typedef uint64_t be64_t; + #define true 1 #define false 0 diff --git a/lib/utils/libfdt/libfdt_env.h b/lib/utils/libfdt/libfdt_env.h index e5ad7698efca..6ebbae01b514 100644 --- a/lib/utils/libfdt/libfdt_env.h +++ b/lib/utils/libfdt/libfdt_env.h @@ -38,9 +38,9 @@ #define strlen sbi_strlen #define strnlen sbi_strnlen -typedef uint16_t FDT_BITWISE fdt16_t; -typedef uint32_t FDT_BITWISE fdt32_t; -typedef uint64_t FDT_BITWISE fdt64_t; +typedef be16_t FDT_BITWISE fdt16_t; +typedef be32_t FDT_BITWISE fdt32_t; +typedef be64_t FDT_BITWISE fdt64_t; static inline uint16_t fdt16_to_cpu(fdt16_t x) {
If any variable/memory-location follows certain endianness then its important to annotate it properly so that proper conversion can be done before read/write from that variable/memory. Also, use these new typedefs in libfdt_env.h for deriving its own custom fdtX_t types Signed-off-by: Rahul Pathak <rpathak@ventanamicro.com> --- include/sbi/sbi_types.h | 7 +++++++ lib/utils/libfdt/libfdt_env.h | 6 +++--- 2 files changed, 10 insertions(+), 3 deletions(-)