summaryrefslogtreecommitdiffhomepage
path: root/libfdt
diff options
context:
space:
mode:
authorAmlal <amlal@nekernel.org>2025-04-25 13:28:08 +0200
committerAmlal <amlal@nekernel.org>2025-04-25 13:28:08 +0200
commit1c8414d3348c55fcf132839a04fdedec5efaacbe (patch)
tree5c7386fae0504a798801e0b34b588f4177ba67c1 /libfdt
parentd7e35959ebb6b1dd892a99f23c2a7f23c0f99041 (diff)
dev: refactor codebase.
Signed-off-by: Amlal <amlal@nekernel.org>
Diffstat (limited to 'libfdt')
-rw-r--r--libfdt/libfdt.h197
-rw-r--r--libfdt/libfdt_address.c165
-rw-r--r--libfdt/libfdt_empty_tree.c32
-rw-r--r--libfdt/libfdt_env.h55
-rw-r--r--libfdt/libfdt_strerror.c76
5 files changed, 233 insertions, 292 deletions
diff --git a/libfdt/libfdt.h b/libfdt/libfdt.h
index dbd27fc..5019eb2 100644
--- a/libfdt/libfdt.h
+++ b/libfdt/libfdt.h
@@ -1,6 +1,6 @@
/* -------------------------------------------
- Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved.
+ Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved.
------------------------------------------- */
@@ -10,129 +10,121 @@
#define FDT_FIRST_SUPPORTED_VERSION (0x02)
#define FDT_LAST_COMPATIBLE_VERSION (0x10)
-#define FDT_LAST_SUPPORTED_VERSION (0x11)
-
-#define FDT_ERR_NOTFOUND (1U)
-#define FDT_ERR_EXISTS (2U)
-#define FDT_ERR_NOSPACE (3U)
-#define FDT_ERR_BADOFFSET (4U)
-#define FDT_ERR_BADPATH (5U)
-#define FDT_ERR_BADPHANDLE (6U)
-#define FDT_ERR_BADSTATE (7U)
-#define FDT_ERR_TRUNCATED (8U)
-#define FDT_ERR_BADMAGIC (9U)
-#define FDT_ERR_BADVERSION (10U)
+#define FDT_LAST_SUPPORTED_VERSION (0x11)
+
+#define FDT_ERR_NOTFOUND (1U)
+#define FDT_ERR_EXISTS (2U)
+#define FDT_ERR_NOSPACE (3U)
+#define FDT_ERR_BADOFFSET (4U)
+#define FDT_ERR_BADPATH (5U)
+#define FDT_ERR_BADPHANDLE (6U)
+#define FDT_ERR_BADSTATE (7U)
+#define FDT_ERR_TRUNCATED (8U)
+#define FDT_ERR_BADMAGIC (9U)
+#define FDT_ERR_BADVERSION (10U)
#define FDT_ERR_BADSTRUCTURE (11U)
-#define FDT_ERR_BADLAYOUT (12U)
-#define FDT_ERR_INTERNAL (13U)
-#define FDT_ERR_BADNCELLS (14U)
-#define FDT_ERR_BADVALUE (15U)
-#define FDT_ERR_BADOVERLAY (16U)
-#define FDT_ERR_NOPHANDLES (17U)
-#define FDT_ERR_BADFLAGS (18U)
-#define FDT_ERR_ALIGNMENT (19U)
+#define FDT_ERR_BADLAYOUT (12U)
+#define FDT_ERR_INTERNAL (13U)
+#define FDT_ERR_BADNCELLS (14U)
+#define FDT_ERR_BADVALUE (15U)
+#define FDT_ERR_BADOVERLAY (16U)
+#define FDT_ERR_NOPHANDLES (17U)
+#define FDT_ERR_BADFLAGS (18U)
+#define FDT_ERR_ALIGNMENT (19U)
#define FDT_ERR_MAX (FDT_ERR_ALIGNMENT)
#define FDT_MAX_PHANDLE (0xfffffffe)
-#define FDT_MAGIC 0xd00dfeed /* 4: version, 4: total size */
+#define FDT_MAGIC 0xd00dfeed /* 4: version, 4: total size */
#define FDT_TAGSIZE sizeof(fdt32_t)
-struct fdt_header
-{
- fdt32_t magic; /* magic word FDT_MAGIC */
- fdt32_t totalsize; /* total size of DT block */
- fdt32_t off_dt_struct; /* offset to structure */
- fdt32_t off_dt_strings; /* offset to strings */
- fdt32_t off_mem_rsvmap; /* offset to memory reserve map */
- fdt32_t version; /* format version */
- fdt32_t last_cocb_version; /* last compatible version */
-
- /* version 2 fields below */
- fdt32_t boot_cpuid_phys; /* Which physical CPU id we're
- booting on */
- /* version 3 fields below */
- fdt32_t size_dt_strings; /* size of the strings block */
-
- /* version 17 fields below */
- fdt32_t size_dt_struct; /* size of the structure block */
+struct fdt_header {
+ fdt32_t magic; /* magic word FDT_MAGIC */
+ fdt32_t totalsize; /* total size of DT block */
+ fdt32_t off_dt_struct; /* offset to structure */
+ fdt32_t off_dt_strings; /* offset to strings */
+ fdt32_t off_mem_rsvmap; /* offset to memory reserve map */
+ fdt32_t version; /* format version */
+ fdt32_t last_cocb_version; /* last compatible version */
+
+ /* version 2 fields below */
+ fdt32_t boot_cpuid_phys; /* Which physical CPU id we're
+ booting on */
+ /* version 3 fields below */
+ fdt32_t size_dt_strings; /* size of the strings block */
+
+ /* version 17 fields below */
+ fdt32_t size_dt_struct; /* size of the structure block */
};
-struct fdt_reserve_entry
-{
- fdt64_t address;
- fdt64_t size;
+struct fdt_reserve_entry {
+ fdt64_t address;
+ fdt64_t size;
};
-struct fdt_node_header
-{
- fdt32_t tag;
- char name[];
+struct fdt_node_header {
+ fdt32_t tag;
+ char name[];
};
-struct fdt_property
-{
- fdt32_t tag;
- fdt32_t len;
- fdt32_t nameoff;
- char data[];
+struct fdt_property {
+ fdt32_t tag;
+ fdt32_t len;
+ fdt32_t nameoff;
+ char data[];
};
const void* fdt_offset_ptr(const void* fdt, int offset, unsigned int checklen);
-static inline voidptr_t fdt_offset_ptr_w(const voidptr_t fdt, int32_t offset, uint32_t checklen)
-{
- return (voidptr_t)(fdt_offset_ptr(fdt, offset, checklen));
+static inline voidptr_t fdt_offset_ptr_w(const voidptr_t fdt, int32_t offset, uint32_t checklen) {
+ return (voidptr_t) (fdt_offset_ptr(fdt, offset, checklen));
}
/*
* External helpers to access words from a device tree blob.
*/
-static inline uint16_t fdt16_ld(const fdt16_t* p)
-{
- const uint8_t* bp = (const uint8_t*)p;
+static inline uint16_t fdt16_ld(const fdt16_t* p) {
+ const uint8_t* bp = (const uint8_t*) p;
- return ((uint16_t)bp[0] << 8) | bp[1];
+ return ((uint16_t) bp[0] << 8) | bp[1];
}
-static inline uint32_t fdt32_ld(const fdt32_t* p)
-{
- const uint8_t* bp = (const uint8_t*)p;
+static inline uint32_t fdt32_ld(const fdt32_t* p) {
+ const uint8_t* bp = (const uint8_t*) p;
- return ((uint32_t)bp[0] << 24) | ((uint32_t)bp[1] << 16) | ((uint32_t)bp[2] << 8) | bp[3];
+ return ((uint32_t) bp[0] << 24) | ((uint32_t) bp[1] << 16) | ((uint32_t) bp[2] << 8) | bp[3];
}
-static inline void fdt32_st(void* property, uint32_t value)
-{
- uint8_t* bp = (uint8_t*)property;
+static inline void fdt32_st(void* property, uint32_t value) {
+ uint8_t* bp = (uint8_t*) property;
- bp[0] = value >> 24;
- bp[1] = (value >> 16) & 0xff;
- bp[2] = (value >> 8) & 0xff;
- bp[3] = value & 0xff;
+ bp[0] = value >> 24;
+ bp[1] = (value >> 16) & 0xff;
+ bp[2] = (value >> 8) & 0xff;
+ bp[3] = value & 0xff;
}
-static inline uint64_t fdt64_ld(const fdt64_t* p)
-{
- const uint8_t* bp = (const uint8_t*)p;
+static inline uint64_t fdt64_ld(const fdt64_t* p) {
+ const uint8_t* bp = (const uint8_t*) p;
- return ((uint64_t)bp[0] << 56) | ((uint64_t)bp[1] << 48) | ((uint64_t)bp[2] << 40) | ((uint64_t)bp[3] << 32) | ((uint64_t)bp[4] << 24) | ((uint64_t)bp[5] << 16) | ((uint64_t)bp[6] << 8) | bp[7];
+ return ((uint64_t) bp[0] << 56) | ((uint64_t) bp[1] << 48) | ((uint64_t) bp[2] << 40) |
+ ((uint64_t) bp[3] << 32) | ((uint64_t) bp[4] << 24) | ((uint64_t) bp[5] << 16) |
+ ((uint64_t) bp[6] << 8) | bp[7];
}
-static inline void fdt64_st(void* property, uint64_t value)
-{
- uint8_t* bp = (uint8_t*)property;
-
- bp[0] = value >> 56;
- bp[1] = (value >> 48) & 0xff;
- bp[2] = (value >> 40) & 0xff;
- bp[3] = (value >> 32) & 0xff;
- bp[4] = (value >> 24) & 0xff;
- bp[5] = (value >> 16) & 0xff;
- bp[6] = (value >> 8) & 0xff;
- bp[7] = value & 0xff;
+static inline void fdt64_st(void* property, uint64_t value) {
+ uint8_t* bp = (uint8_t*) property;
+
+ bp[0] = value >> 56;
+ bp[1] = (value >> 48) & 0xff;
+ bp[2] = (value >> 40) & 0xff;
+ bp[3] = (value >> 32) & 0xff;
+ bp[4] = (value >> 24) & 0xff;
+ bp[5] = (value >> 16) & 0xff;
+ bp[6] = (value >> 8) & 0xff;
+ bp[7] = value & 0xff;
}
//
@@ -155,25 +147,24 @@ int fdt_first_subnode(const void* fdt, int offset);
int fdt_next_subnode(const void* fdt, int offset);
-#define fdt_get_header(fdt, field) (fdt32_ld(&((const struct fdt_header*)(fdt))->field))
+#define fdt_get_header(fdt, field) (fdt32_ld(&((const struct fdt_header*) (fdt))->field))
-#define fdt_magic(fdt) (fdt_get_header(fdt, magic))
-#define fdt_totalsize(fdt) (fdt_get_header(fdt, totalsize))
-#define fdt_off_dt_struct(fdt) (fdt_get_header(fdt, off_dt_struct))
-#define fdt_off_dt_strings(fdt) (fdt_get_header(fdt, off_dt_strings))
-#define fdt_off_mem_rsvmap(fdt) (fdt_get_header(fdt, off_mem_rsvmap))
-#define fdt_version(fdt) (fdt_get_header(fdt, version))
+#define fdt_magic(fdt) (fdt_get_header(fdt, magic))
+#define fdt_totalsize(fdt) (fdt_get_header(fdt, totalsize))
+#define fdt_off_dt_struct(fdt) (fdt_get_header(fdt, off_dt_struct))
+#define fdt_off_dt_strings(fdt) (fdt_get_header(fdt, off_dt_strings))
+#define fdt_off_mem_rsvmap(fdt) (fdt_get_header(fdt, off_mem_rsvmap))
+#define fdt_version(fdt) (fdt_get_header(fdt, version))
#define fdt_last_cocb_version(fdt) (fdt_get_header(fdt, last_cocb_version))
-#define fdt_boot_cpuid_phys(fdt) (fdt_get_header(fdt, boot_cpuid_phys))
-#define fdt_size_dt_strings(fdt) (fdt_get_header(fdt, size_dt_strings))
-#define fdt_size_dt_struct(fdt) (fdt_get_header(fdt, size_dt_struct))
+#define fdt_boot_cpuid_phys(fdt) (fdt_get_header(fdt, boot_cpuid_phys))
+#define fdt_size_dt_strings(fdt) (fdt_get_header(fdt, size_dt_strings))
+#define fdt_size_dt_struct(fdt) (fdt_get_header(fdt, size_dt_struct))
#define fdt_set_hdr_(name) \
- static inline void fdt_set_##name(void* fdt, uint32_t val) \
- { \
- struct fdt_header* fdth = (struct fdt_header*)fdt; \
- fdth->name = cpu_to_fdt32(val); \
- }
+ static inline void fdt_set_##name(void* fdt, uint32_t val) { \
+ struct fdt_header* fdth = (struct fdt_header*) fdt; \
+ fdth->name = cpu_to_fdt32(val); \
+ }
fdt_set_hdr_(magic);
fdt_set_hdr_(totalsize);
diff --git a/libfdt/libfdt_address.c b/libfdt/libfdt_address.c
index 8d0af55..a9950dc 100644
--- a/libfdt/libfdt_address.c
+++ b/libfdt/libfdt_address.c
@@ -1,13 +1,14 @@
/* -------------------------------------------
- Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved.
+ Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved.
------------------------------------------- */
#include <libfdt/libfdt_env.h>
extern fdt32_t* fdt_getprop(const void* fdt, int nodeoffset, const char* name, int* len);
-extern fdt32_t* fdt_append_prop(const void* fdt, int nodeoffset, const char* name, uint8_t* data, int32_t len);
+extern fdt32_t* fdt_append_prop(const void* fdt, int nodeoffset, const char* name, uint8_t* data,
+ int32_t len);
#ifndef FDT_MAX_NCELLS
#define FDT_MAX_NCELLS (4)
@@ -25,110 +26,86 @@ extern fdt32_t* fdt_append_prop(const void* fdt, int nodeoffset, const char* nam
#define FDT_BAD_VALUE (15)
#endif
-static int fdt_cells(const void* fdt, int nodeoffset, const char* name)
-{
- const fdt32_t* c = null;
- uint32_t val = 0;
- int len = 0;
+static int fdt_cells(const void* fdt, int nodeoffset, const char* name) {
+ const fdt32_t* c = null;
+ uint32_t val = 0;
+ int len = 0;
- c = fdt_getprop(fdt, nodeoffset, name, &len);
- if (c == null)
- return len;
+ c = fdt_getprop(fdt, nodeoffset, name, &len);
+ if (c == null) return len;
- if (len != sizeof(*c))
- return len;
+ if (len != sizeof(*c)) return len;
- val = fdt32_to_cpu(*c);
- if (val > FDT_MAX_NCELLS)
- return -FDT_BAD_NCELLS;
+ val = fdt32_to_cpu(*c);
+ if (val > FDT_MAX_NCELLS) return -FDT_BAD_NCELLS;
- return (int)val;
+ return (int) val;
}
-int fdt_address_cells(const void* fdt, int nodeoffset)
-{
- int val = 0;
- val = fdt_cells(fdt, nodeoffset, "#address-cells");
- if (val == 0)
- return -FDT_BAD_NCELLS;
+int fdt_address_cells(const void* fdt, int nodeoffset) {
+ int val = 0;
+ val = fdt_cells(fdt, nodeoffset, "#address-cells");
+ if (val == 0) return -FDT_BAD_NCELLS;
- if (val == -FDT_NOT_FOUND)
- return 2;
+ if (val == -FDT_NOT_FOUND) return 2;
- return (int)val;
+ return (int) val;
}
-int fdt_size_cells(const void* fdt, int nodeoffset)
-{
- int val = 0;
- val = fdt_cells(fdt, nodeoffset, "#size-cells");
+int fdt_size_cells(const void* fdt, int nodeoffset) {
+ int val = 0;
+ val = fdt_cells(fdt, nodeoffset, "#size-cells");
- if (val == -FDT_NOT_FOUND)
- return 2;
+ if (val == -FDT_NOT_FOUND) return 2;
- return (int)val;
+ return (int) val;
}
-int fdt_append_prop_addr_range(void* fdt, int parent, int nodeoffset, const char* name, uint64_t addr, uint64_t size)
-{
- int addr_cells, size_cells, ret;
- uint8_t data[sizeof(fdt64_t) * 2], *prop;
-
- ret = fdt_address_cells(fdt, nodeoffset);
- if (ret < 0)
- return ret;
-
- addr_cells = ret;
-
- ret = fdt_size_cells(fdt, nodeoffset);
- if (ret < 0)
- return ret;
-
- size_cells = ret;
-
- // check address validity
- prop = data;
- if (addr_cells == 1)
- {
- // seems to do a check according to two parameters.
- // addr > __UINT32_MAX__ detects any out of range addresses?
- // ((__UINT32_MAX__ + 1 - addr) < size check if it's lower than it's size
-
- if ((addr > __UINT32_MAX__) || ((__UINT32_MAX__ + 1 - addr) < size))
- return -FDT_BAD_VALUE;
-
- // finally set the flat device tree.
- fdt32_st(prop, (uint32_t)addr);
- }
- else if (addr_cells == 2)
- {
- // no need to check, apparently.
- fdt64_st(prop, addr);
- }
- else
- {
- return -FDT_BAD_NCELLS;
- }
-
- // access size
- prop += addr_cells * sizeof(fdt32_t);
-
- if (size_cells == 1)
- {
- if (size > __UINT32_MAX__)
- return -FDT_BAD_VALUE;
-
- fdt32_st(prop, (uint32_t)size);
- }
- else if (size_cells == 2)
- {
- fdt64_st(prop, size);
- }
- else
- {
- return -FDT_BAD_NCELLS;
- }
-
- return fdt_append_prop(fdt, nodeoffset, name, data,
- (addr_cells + size_cells) * sizeof(fdt32_t));
+int fdt_append_prop_addr_range(void* fdt, int parent, int nodeoffset, const char* name,
+ uint64_t addr, uint64_t size) {
+ int addr_cells, size_cells, ret;
+ uint8_t data[sizeof(fdt64_t) * 2], *prop;
+
+ ret = fdt_address_cells(fdt, nodeoffset);
+ if (ret < 0) return ret;
+
+ addr_cells = ret;
+
+ ret = fdt_size_cells(fdt, nodeoffset);
+ if (ret < 0) return ret;
+
+ size_cells = ret;
+
+ // check address validity
+ prop = data;
+ if (addr_cells == 1) {
+ // seems to do a check according to two parameters.
+ // addr > __UINT32_MAX__ detects any out of range addresses?
+ // ((__UINT32_MAX__ + 1 - addr) < size check if it's lower than it's size
+
+ if ((addr > __UINT32_MAX__) || ((__UINT32_MAX__ + 1 - addr) < size)) return -FDT_BAD_VALUE;
+
+ // finally set the flat device tree.
+ fdt32_st(prop, (uint32_t) addr);
+ } else if (addr_cells == 2) {
+ // no need to check, apparently.
+ fdt64_st(prop, addr);
+ } else {
+ return -FDT_BAD_NCELLS;
+ }
+
+ // access size
+ prop += addr_cells * sizeof(fdt32_t);
+
+ if (size_cells == 1) {
+ if (size > __UINT32_MAX__) return -FDT_BAD_VALUE;
+
+ fdt32_st(prop, (uint32_t) size);
+ } else if (size_cells == 2) {
+ fdt64_st(prop, size);
+ } else {
+ return -FDT_BAD_NCELLS;
+ }
+
+ return fdt_append_prop(fdt, nodeoffset, name, data, (addr_cells + size_cells) * sizeof(fdt32_t));
}
diff --git a/libfdt/libfdt_empty_tree.c b/libfdt/libfdt_empty_tree.c
index 2edfcc2..0cc854f 100644
--- a/libfdt/libfdt_empty_tree.c
+++ b/libfdt/libfdt_empty_tree.c
@@ -1,6 +1,6 @@
/* -------------------------------------------
- Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved.
+ Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved.
------------------------------------------- */
@@ -14,8 +14,7 @@ extern int fdt_finish(void* buf);
extern int fdt_finish_reverse_map(void* buf);
#define fdt_check_err(err) \
- if (err) \
- return err
+ if (err) return err
/**
* @brief creates a empty tree with a specified buffer and size.
@@ -25,25 +24,24 @@ extern int fdt_finish_reverse_map(void* buf);
* @return int
*/
-int fdt_create_empty_tree(void* buf, int bufsize)
-{
- int err;
- err = fdt_create(buf, bufsize);
- fdt_check_err(err);
+int fdt_create_empty_tree(void* buf, int bufsize) {
+ int err;
+ err = fdt_create(buf, bufsize);
+ fdt_check_err(err);
- err = fdt_finish_reverse_map(buf);
- fdt_check_err(err);
+ err = fdt_finish_reverse_map(buf);
+ fdt_check_err(err);
- err = fdt_begin_node(buf, "");
- fdt_check_err(err);
+ err = fdt_begin_node(buf, "");
+ fdt_check_err(err);
- err = fdt_end_node(buf);
- fdt_check_err(err);
+ err = fdt_end_node(buf);
+ fdt_check_err(err);
- err = fdt_finish(buf);
- fdt_check_err(err);
+ err = fdt_finish(buf);
+ fdt_check_err(err);
- return fdt_open_into(buf, buf, bufsize);
+ return fdt_open_into(buf, buf, bufsize);
}
#undef fdt_check_err
diff --git a/libfdt/libfdt_env.h b/libfdt/libfdt_env.h
index bc8f389..6c5616c 100644
--- a/libfdt/libfdt_env.h
+++ b/libfdt/libfdt_env.h
@@ -1,6 +1,6 @@
/* -------------------------------------------
- Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved.
+ Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved.
------------------------------------------- */
@@ -10,7 +10,7 @@
#include <lib/boot.h>
#ifdef __USE_SPARSE__
-#define FDT_FORCE __attribute__((force))
+#define FDT_FORCE __attribute__((force))
#define FDT_BITWISE __attribute__((bitwise))
#else
#define FDT_FORCE
@@ -21,43 +21,38 @@ typedef uint16_t FDT_BITWISE fdt16_t;
typedef uint32_t FDT_BITWISE fdt32_t;
typedef uint64_t FDT_BITWISE fdt64_t;
-#define EXTRACT_BYTE(x, n) ((unsigned long long)((uint8_t*)&x)[n])
-#define CPU_TO_FDT16(x) ((EXTRACT_BYTE(x, 0) << 8) | EXTRACT_BYTE(x, 1))
-#define CPU_TO_FDT32(x) ((EXTRACT_BYTE(x, 0) << 24) | (EXTRACT_BYTE(x, 1) << 16) | \
- (EXTRACT_BYTE(x, 2) << 8) | EXTRACT_BYTE(x, 3))
-#define CPU_TO_FDT64(x) ((EXTRACT_BYTE(x, 0) << 56) | (EXTRACT_BYTE(x, 1) << 48) | \
- (EXTRACT_BYTE(x, 2) << 40) | (EXTRACT_BYTE(x, 3) << 32) | \
- (EXTRACT_BYTE(x, 4) << 24) | (EXTRACT_BYTE(x, 5) << 16) | \
- (EXTRACT_BYTE(x, 6) << 8) | EXTRACT_BYTE(x, 7))
-
-static inline uint16_t fdt16_to_cpu(fdt16_t x)
-{
- return (FDT_FORCE uint16_t)CPU_TO_FDT16(x);
+#define EXTRACT_BYTE(x, n) ((unsigned long long) ((uint8_t*) &x)[n])
+#define CPU_TO_FDT16(x) ((EXTRACT_BYTE(x, 0) << 8) | EXTRACT_BYTE(x, 1))
+#define CPU_TO_FDT32(x) \
+ ((EXTRACT_BYTE(x, 0) << 24) | (EXTRACT_BYTE(x, 1) << 16) | (EXTRACT_BYTE(x, 2) << 8) | \
+ EXTRACT_BYTE(x, 3))
+#define CPU_TO_FDT64(x) \
+ ((EXTRACT_BYTE(x, 0) << 56) | (EXTRACT_BYTE(x, 1) << 48) | (EXTRACT_BYTE(x, 2) << 40) | \
+ (EXTRACT_BYTE(x, 3) << 32) | (EXTRACT_BYTE(x, 4) << 24) | (EXTRACT_BYTE(x, 5) << 16) | \
+ (EXTRACT_BYTE(x, 6) << 8) | EXTRACT_BYTE(x, 7))
+
+static inline uint16_t fdt16_to_cpu(fdt16_t x) {
+ return (FDT_FORCE uint16_t) CPU_TO_FDT16(x);
}
-static inline fdt16_t cpu_to_fdt16(uint16_t x)
-{
- return (FDT_FORCE fdt16_t)CPU_TO_FDT16(x);
+static inline fdt16_t cpu_to_fdt16(uint16_t x) {
+ return (FDT_FORCE fdt16_t) CPU_TO_FDT16(x);
}
-static inline uint32_t fdt32_to_cpu(fdt32_t x)
-{
- return (FDT_FORCE uint32_t)CPU_TO_FDT32(x);
+static inline uint32_t fdt32_to_cpu(fdt32_t x) {
+ return (FDT_FORCE uint32_t) CPU_TO_FDT32(x);
}
-static inline fdt32_t cpu_to_fdt32(uint32_t x)
-{
- return (FDT_FORCE fdt32_t)CPU_TO_FDT32(x);
+static inline fdt32_t cpu_to_fdt32(uint32_t x) {
+ return (FDT_FORCE fdt32_t) CPU_TO_FDT32(x);
}
-static inline uint64_t fdt64_to_cpu(fdt64_t x)
-{
- return (FDT_FORCE uint64_t)CPU_TO_FDT64(x);
+static inline uint64_t fdt64_to_cpu(fdt64_t x) {
+ return (FDT_FORCE uint64_t) CPU_TO_FDT64(x);
}
-static inline fdt64_t cpu_to_fdt64(uint64_t x)
-{
- return (FDT_FORCE fdt64_t)CPU_TO_FDT64(x);
+static inline fdt64_t cpu_to_fdt64(uint64_t x) {
+ return (FDT_FORCE fdt64_t) CPU_TO_FDT64(x);
}
#undef CPU_TO_FDT64
@@ -65,4 +60,4 @@ static inline fdt64_t cpu_to_fdt64(uint64_t x)
#undef CPU_TO_FDT16
#undef EXTRACT_BYTE
-#endif //!__CB_FDT_H__
+#endif //!__CB_FDT_H__
diff --git a/libfdt/libfdt_strerror.c b/libfdt/libfdt_strerror.c
index c4a1abd..accd58a 100644
--- a/libfdt/libfdt_strerror.c
+++ b/libfdt/libfdt_strerror.c
@@ -1,49 +1,36 @@
/* -------------------------------------------
- Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved.
+ Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved.
------------------------------------------- */
-#include <libfdt/libfdt_env.h>
#include <libfdt/libfdt.h>
+#include <libfdt/libfdt_env.h>
/***********************************************************************************/
/* @brief FDT error reporting system */
/***********************************************************************************/
/// @brief Error information structure.
-struct fdt_err
-{
- const char* e_str;
+struct fdt_err {
+ const char* e_str;
};
#define fdt_error(VAL) \
- [(VAL)] = { \
- .e_str = #VAL, \
- }
+ [(VAL)] = { \
+ .e_str = #VAL, \
+ }
static struct fdt_err cb_fdtErrTbl[] = {
- fdt_error(FDT_ERR_NOTFOUND),
- fdt_error(FDT_ERR_EXISTS),
- fdt_error(FDT_ERR_NOSPACE),
+ fdt_error(FDT_ERR_NOTFOUND), fdt_error(FDT_ERR_EXISTS), fdt_error(FDT_ERR_NOSPACE),
- fdt_error(FDT_ERR_BADOFFSET),
- fdt_error(FDT_ERR_BADPATH),
- fdt_error(FDT_ERR_BADPHANDLE),
- fdt_error(FDT_ERR_BADSTATE),
+ fdt_error(FDT_ERR_BADOFFSET), fdt_error(FDT_ERR_BADPATH), fdt_error(FDT_ERR_BADPHANDLE),
+ fdt_error(FDT_ERR_BADSTATE),
- fdt_error(FDT_ERR_TRUNCATED),
- fdt_error(FDT_ERR_BADMAGIC),
- fdt_error(FDT_ERR_BADVERSION),
- fdt_error(FDT_ERR_BADSTRUCTURE),
- fdt_error(FDT_ERR_BADLAYOUT),
- fdt_error(FDT_ERR_INTERNAL),
- fdt_error(FDT_ERR_BADNCELLS),
- fdt_error(FDT_ERR_BADVALUE),
- fdt_error(FDT_ERR_BADOVERLAY),
- fdt_error(FDT_ERR_NOPHANDLES),
- fdt_error(FDT_ERR_BADFLAGS),
- fdt_error(FDT_ERR_ALIGNMENT),
+ fdt_error(FDT_ERR_TRUNCATED), fdt_error(FDT_ERR_BADMAGIC), fdt_error(FDT_ERR_BADVERSION),
+ fdt_error(FDT_ERR_BADSTRUCTURE), fdt_error(FDT_ERR_BADLAYOUT), fdt_error(FDT_ERR_INTERNAL),
+ fdt_error(FDT_ERR_BADNCELLS), fdt_error(FDT_ERR_BADVALUE), fdt_error(FDT_ERR_BADOVERLAY),
+ fdt_error(FDT_ERR_NOPHANDLES), fdt_error(FDT_ERR_BADFLAGS), fdt_error(FDT_ERR_ALIGNMENT),
};
#define fdt_error_length() mpux_array_size(cb_fdtErrTbl)
@@ -51,25 +38,18 @@ static struct fdt_err cb_fdtErrTbl[] = {
/// @brief Returns the error value as a string.
/// @param errval
/// @return
-const char* fdt_strerror(int32_t errval)
-{
- if (errval > 0)
- {
- return ("<valid offset/length>");
- }
- else if (errval == 0)
- {
- return ("<no error>");
- }
- else if (-errval < fdt_error_length())
- {
- const char* serr = cb_fdtErrTbl[errval].e_str;
-
- if (serr != null)
- {
- return serr;
- }
- }
-
- return ("<unknown error>");
+const char* fdt_strerror(int32_t errval) {
+ if (errval > 0) {
+ return ("<valid offset/length>");
+ } else if (errval == 0) {
+ return ("<no error>");
+ } else if (-errval < fdt_error_length()) {
+ const char* serr = cb_fdtErrTbl[errval].e_str;
+
+ if (serr != null) {
+ return serr;
+ }
+ }
+
+ return ("<unknown error>");
}