summaryrefslogtreecommitdiffstats
path: root/qemu/dtc/tests/mangle-layout.c
diff options
context:
space:
mode:
authorRajithaY <rajithax.yerrumsetty@intel.com>2017-04-25 03:31:15 -0700
committerRajitha Yerrumchetty <rajithax.yerrumsetty@intel.com>2017-05-22 06:48:08 +0000
commitbb756eebdac6fd24e8919e2c43f7d2c8c4091f59 (patch)
treeca11e03542edf2d8f631efeca5e1626d211107e3 /qemu/dtc/tests/mangle-layout.c
parenta14b48d18a9ed03ec191cf16b162206998a895ce (diff)
Adding qemu as a submodule of KVMFORNFV
This Patch includes the changes to add qemu as a submodule to kvmfornfv repo and make use of the updated latest qemu for the execution of all testcase Change-Id: I1280af507a857675c7f81d30c95255635667bdd7 Signed-off-by:RajithaY<rajithax.yerrumsetty@intel.com>
Diffstat (limited to 'qemu/dtc/tests/mangle-layout.c')
-rw-r--r--qemu/dtc/tests/mangle-layout.c164
1 files changed, 0 insertions, 164 deletions
diff --git a/qemu/dtc/tests/mangle-layout.c b/qemu/dtc/tests/mangle-layout.c
deleted file mode 100644
index a76e51e31..000000000
--- a/qemu/dtc/tests/mangle-layout.c
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * libfdt - Flat Device Tree manipulation
- * Testcase/tool for rearranging blocks of a dtb
- * Copyright (C) 2006 David Gibson, IBM Corporation.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <limits.h>
-#include <stdint.h>
-
-#include <libfdt.h>
-
-#include "tests.h"
-#include "testdata.h"
-
-struct bufstate {
- char *buf;
- int size;
-};
-
-static void expand_buf(struct bufstate *buf, int newsize)
-{
- buf->buf = realloc(buf->buf, newsize);
- if (!buf->buf)
- CONFIG("Allocation failure");
- buf->size = newsize;
-}
-
-static void new_header(struct bufstate *buf, int version, const void *fdt)
-{
- int hdrsize;
-
- if (version == 16)
- hdrsize = FDT_V16_SIZE;
- else if (version == 17)
- hdrsize = FDT_V17_SIZE;
- else
- CONFIG("Bad version %d", version);
-
- expand_buf(buf, hdrsize);
- memset(buf->buf, 0, hdrsize);
-
- fdt_set_magic(buf->buf, FDT_MAGIC);
- fdt_set_version(buf->buf, version);
- fdt_set_last_comp_version(buf->buf, 16);
- fdt_set_boot_cpuid_phys(buf->buf, fdt_boot_cpuid_phys(fdt));
-}
-
-static void add_block(struct bufstate *buf, int version, char block, const void *fdt)
-{
- int align, size, oldsize;
- const void *src;
- int offset;
-
- switch (block) {
- case 'm':
- /* Memory reserve map */
- align = 8;
- src = (const char *)fdt + fdt_off_mem_rsvmap(fdt);
- size = (fdt_num_mem_rsv(fdt) + 1)
- * sizeof(struct fdt_reserve_entry);
- break;
-
- case 't':
- /* Structure block */
- align = 4;
- src = (const char *)fdt + fdt_off_dt_struct(fdt);
- size = fdt_size_dt_struct(fdt);
- break;
-
- case 's':
- /* Strings block */
- align = 1;
- src = (const char *)fdt + fdt_off_dt_strings(fdt);
- size = fdt_size_dt_strings(fdt);
- break;
- default:
- CONFIG("Bad block '%c'", block);
- }
-
- oldsize = buf->size;
- offset = ALIGN(oldsize, align);
- expand_buf(buf, offset+size);
- memset(buf->buf + oldsize, 0, offset - oldsize);
-
- memcpy(buf->buf + offset, src, size);
-
- switch (block) {
- case 'm':
- fdt_set_off_mem_rsvmap(buf->buf, offset);
- break;
-
- case 't':
- fdt_set_off_dt_struct(buf->buf, offset);
- if (version >= 17)
- fdt_set_size_dt_struct(buf->buf, size);
- break;
-
- case 's':
- fdt_set_off_dt_strings(buf->buf, offset);
- fdt_set_size_dt_strings(buf->buf, size);
- break;
- }
-}
-
-int main(int argc, char *argv[])
-{
- void *fdt;
- int version;
- const char *blockorder;
- struct bufstate buf = {NULL, 0};
- int err;
- const char *inname;
- char outname[PATH_MAX];
-
- test_init(argc, argv);
- if (argc != 4)
- CONFIG("Usage: %s <dtb file> <version> <block order>", argv[0]);
-
- inname = argv[1];
- fdt = load_blob(argv[1]);
- version = atoi(argv[2]);
- blockorder = argv[3];
- sprintf(outname, "v%d.%s.%s", version, blockorder, inname);
-
- if ((version != 16) && (version != 17))
- CONFIG("Version must be 16 or 17");
-
- if (fdt_version(fdt) < 17)
- CONFIG("Input tree must be v17");
-
- new_header(&buf, version, fdt);
-
- while (*blockorder) {
- add_block(&buf, version, *blockorder, fdt);
- blockorder++;
- }
-
- fdt_set_totalsize(buf.buf, buf.size);
-
- err = fdt_check_header(buf.buf);
- if (err)
- FAIL("Output tree fails check: %s", fdt_strerror(err));
-
- save_blob(outname, buf.buf);
-
- PASS();
-}