From b235f49f31d11e68019c42f48b6641c37e4c986e Mon Sep 17 00:00:00 2001 From: Kimplul Date: Sun, 22 Aug 2021 20:38:48 +0300 Subject: Integrated libfdt + Added new common/ directory, into which code that should be shared with init and kernel is to be added. Currently string.c and bytes.c. Code in common/ should be marked with __weak, so as to allow the arch to implement a better, more optimised version of the function if possible/required. + Created include/apos/types.h with macros essentially providing the libc limits.h and stdint.h. At the moment I use gcc/clang predefined macros for most things. --- lib/fdt.c | 2 ++ lib/fdt_addresses.c | 2 ++ lib/fdt_empty_tree.c | 2 ++ lib/fdt_ro.c | 2 ++ lib/fdt_rw.c | 2 ++ lib/fdt_strerror.c | 2 ++ lib/fdt_sw.c | 2 ++ lib/fdt_wip.c | 2 ++ lib/libfdt_env.h | 17 +++++++++++++++++ 9 files changed, 33 insertions(+) create mode 100644 lib/fdt.c create mode 100644 lib/fdt_addresses.c create mode 100644 lib/fdt_empty_tree.c create mode 100644 lib/fdt_ro.c create mode 100644 lib/fdt_rw.c create mode 100644 lib/fdt_strerror.c create mode 100644 lib/fdt_sw.c create mode 100644 lib/fdt_wip.c create mode 100644 lib/libfdt_env.h (limited to 'lib') diff --git a/lib/fdt.c b/lib/fdt.c new file mode 100644 index 0000000..2d910c0 --- /dev/null +++ b/lib/fdt.c @@ -0,0 +1,2 @@ +#include "libfdt_env.h" +#include "../dtc/libfdt/fdt.c" diff --git a/lib/fdt_addresses.c b/lib/fdt_addresses.c new file mode 100644 index 0000000..f7ac8ae --- /dev/null +++ b/lib/fdt_addresses.c @@ -0,0 +1,2 @@ +#include "libfdt_env.h" +#include "../dtc/libfdt/fdt_addresses.c" diff --git a/lib/fdt_empty_tree.c b/lib/fdt_empty_tree.c new file mode 100644 index 0000000..a057358 --- /dev/null +++ b/lib/fdt_empty_tree.c @@ -0,0 +1,2 @@ +#include "libfdt_env.h" +#include "../dtc/libfdt/fdt_empty_tree.c" diff --git a/lib/fdt_ro.c b/lib/fdt_ro.c new file mode 100644 index 0000000..b60a1a8 --- /dev/null +++ b/lib/fdt_ro.c @@ -0,0 +1,2 @@ +#include "libfdt_env.h" +#include "../dtc/libfdt/fdt_ro.c" diff --git a/lib/fdt_rw.c b/lib/fdt_rw.c new file mode 100644 index 0000000..1bb8ed4 --- /dev/null +++ b/lib/fdt_rw.c @@ -0,0 +1,2 @@ +#include "libfdt_env.h" +#include "../dtc/libfdt/fdt_rw.c" diff --git a/lib/fdt_strerror.c b/lib/fdt_strerror.c new file mode 100644 index 0000000..f442010 --- /dev/null +++ b/lib/fdt_strerror.c @@ -0,0 +1,2 @@ +#include "libfdt_env.h" +#include "../dtc/libfdt/fdt_strerror.c" diff --git a/lib/fdt_sw.c b/lib/fdt_sw.c new file mode 100644 index 0000000..b5b1257 --- /dev/null +++ b/lib/fdt_sw.c @@ -0,0 +1,2 @@ +#include "libfdt_env.h" +#include "../dtc/libfdt/fdt_sw.c" diff --git a/lib/fdt_wip.c b/lib/fdt_wip.c new file mode 100644 index 0000000..ee3b4d3 --- /dev/null +++ b/lib/fdt_wip.c @@ -0,0 +1,2 @@ +#include "libfdt_env.h" +#include "../dtc/libfdt/fdt_wip.c" diff --git a/lib/libfdt_env.h b/lib/libfdt_env.h new file mode 100644 index 0000000..166b558 --- /dev/null +++ b/lib/libfdt_env.h @@ -0,0 +1,17 @@ +#ifndef LIBFDT_ENV_H +/* take over libfdt */ +#define LIBFDT_ENV_H + +#include +#include + +typedef int16_t fdt16_t; +typedef int32_t fdt32_t; +typedef int64_t fdt64_t; + +#define fdt32_to_cpu(x) be32_to_cpu(x) +#define cpu_to_fdt32(x) cpu_to_be32(x) +#define fdt64_to_cpu(x) be64_to_cpu(x) +#define cpu_to_fdt64(x) cpu_to_be64(x) + +#endif /* LIBFDT_ENV_H */ -- cgit v1.3