1/* $NetBSD: add_subnode_with_nops.c,v 1.1.1.3 2019/12/22 12:34:05 skrll Exp $ */ 2 3// SPDX-License-Identifier: LGPL-2.1-or-later 4/* 5 * libfdt - Flat Device Tree manipulation 6 * Testcase for fdt_nop_node() 7 * Copyright (C) 2006 David Gibson, IBM Corporation. 8 */ 9 10#include <stdlib.h> 11#include <stdio.h> 12#include <string.h> 13#include <ctype.h> 14#include <stdint.h> 15 16#include <libfdt.h> 17 18#include "tests.h" 19#include "testdata.h" 20 21#define SPACE 65536 22 23#define CHECK(code) \ 24 { \ 25 err = (code); \ 26 if (err) \ 27 FAIL(#code ": %s", fdt_strerror(err)); \ 28 } 29 30#define OFF_CHECK(off, code) \ 31 { \ 32 (off) = (code); \ 33 if (off < 0) \ 34 FAIL(#code ": %s", fdt_strerror(off)); \ 35 } 36 37int main(int argc, char *argv[]) 38{ 39 void *fdt; 40 int err; 41 int offset; 42 43 test_init(argc, argv); 44 45 fdt = xmalloc(SPACE); 46 47 CHECK(fdt_create(fdt, SPACE)); 48 49 CHECK(fdt_finish_reservemap(fdt)); 50 CHECK(fdt_begin_node(fdt, "")); 51 CHECK(fdt_property_cell(fdt, "prop1", TEST_VALUE_1)); 52 CHECK(fdt_property_cell(fdt, "prop2", TEST_VALUE_2)); 53 CHECK(fdt_end_node(fdt)); 54 CHECK(fdt_finish(fdt)); 55 56 verbose_printf("Built empty tree, totalsize = %d\n", 57 fdt_totalsize(fdt)); 58 59 CHECK(fdt_open_into(fdt, fdt, SPACE)); 60 61 check_getprop_cell(fdt, 0, "prop1", TEST_VALUE_1); 62 check_getprop_cell(fdt, 0, "prop2", TEST_VALUE_2); 63 64 CHECK(fdt_nop_property(fdt, 0, "prop1")); 65 66 check_getprop_cell(fdt, 0, "prop2", TEST_VALUE_2); 67 68 OFF_CHECK(offset, fdt_add_subnode(fdt, 0, "subnode")); 69 70 check_getprop_cell(fdt, 0, "prop2", TEST_VALUE_2); 71 72 PASS(); 73} 74