qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 02/31] dt: add helpers for 2, 3 and 4 cell adds


From: Alexander Graf
Subject: Re: [Qemu-devel] [PATCH 02/31] dt: add helpers for 2, 3 and 4 cell adds
Date: Wed, 06 Jun 2012 17:55:42 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.3) Gecko/20120306 Thunderbird/10.0.3

On 06/06/2012 07:01 AM, Peter Crosthwaite wrote:
On Wed, 2012-06-06 at 01:52 +0200, Alexander Graf wrote:
We have device tree helpers that allow us to create single cell (u32)
wide properties. However, when creating properties that contain an array of
cells, we need to jump through hoops, manually passing in an array with
converted endianness.

To ease the pain of this a bit, create helpers for the most common array
sizes, namely 2, 3 and 4 cells wide properties.

Signed-off-by: Alexander Graf<address@hidden>
---
  device_tree.c |   30 ++++++++++++++++++++++++++++++
  device_tree.h |    9 +++++++++
  2 files changed, 39 insertions(+), 0 deletions(-)

diff --git a/device_tree.c b/device_tree.c
index 94a239e..b1dff4f 100644
--- a/device_tree.c
+++ b/device_tree.c
@@ -117,6 +117,36 @@ int qemu_devtree_setprop_cell(void *fdt, const char 
*node_path,
      return r;
  }

+int qemu_devtree_setprop_cell2(void *fdt, const char *node_path,
+                               const char *property, uint32_t val,
+                               uint32_t val2)
+{
+    uint32_t tmp[] = { cpu_to_be32(val),
+                       cpu_to_be32(val2) };
+    return qemu_devtree_setprop(fdt, node_path, property, tmp, sizeof(tmp));
+}
+
+int qemu_devtree_setprop_cell3(void *fdt, const char *node_path,
+                               const char *property, uint32_t val,
+                               uint32_t val2, uint32_t val3)
+{
+    uint32_t tmp[] = { cpu_to_be32(val),
+                       cpu_to_be32(val2),
+                       cpu_to_be32(val3) };
+    return qemu_devtree_setprop(fdt, node_path, property, tmp, sizeof(tmp));
+}
+
+int qemu_devtree_setprop_cell4(void *fdt, const char *node_path,
+                               const char *property, uint32_t val,
+                               uint32_t val2, uint32_t val3, uint32_t val4)
+{
+    uint32_t tmp[] = { cpu_to_be32(val),
+                       cpu_to_be32(val2),
+                       cpu_to_be32(val3),
+                       cpu_to_be32(val4) };
+    return qemu_devtree_setprop(fdt, node_path, property, tmp, sizeof(tmp));
+}
+
Cant this be generalised to the n case rather than having functional
replication for 2/3/4 word props?

+int qemu_devtree_setprop_celln(void *fdt, const char *node_path,
+                               const char *property, uint32_t *vals, int n)

You mean internally? Yeah, probably. Externally? The point of these helpers is to make the code look less cluttered. We can already pass in an array just fine, but C is quite annoying about generating those on the fly, while it's easy to pass in ints as parameters :)


Alex




reply via email to

[Prev in Thread] Current Thread [Next in Thread]