Deleted Added
full compact
dtc.h (302408) dtc.h (318102)
1#ifndef _DTC_H
2#define _DTC_H
3
4/*
5 * (C) Copyright David Gibson <dwg@au1.ibm.com>, IBM Corporation. 2005.
6 *
7 *
8 * This program is free software; you can redistribute it and/or

--- 24 unchanged lines hidden (view full) ---

33#include <unistd.h>
34
35#include <libfdt_env.h>
36#include <fdt.h>
37
38#include "util.h"
39
40#ifdef DEBUG
1#ifndef _DTC_H
2#define _DTC_H
3
4/*
5 * (C) Copyright David Gibson <dwg@au1.ibm.com>, IBM Corporation. 2005.
6 *
7 *
8 * This program is free software; you can redistribute it and/or

--- 24 unchanged lines hidden (view full) ---

33#include <unistd.h>
34
35#include <libfdt_env.h>
36#include <fdt.h>
37
38#include "util.h"
39
40#ifdef DEBUG
41#define debug(fmt,args...) printf(fmt, ##args)
41#define debug(...) printf(__VA_ARGS__)
42#else
42#else
43#define debug(fmt,args...)
43#define debug(...)
44#endif
45
46
47#define DEFAULT_FDT_VERSION 17
48
49/*
50 * Command line options
51 */
52extern int quiet; /* Level of quietness */
53extern int reservenum; /* Number of memory reservation slots */
54extern int minsize; /* Minimum blob size */
55extern int padsize; /* Additional padding to blob */
44#endif
45
46
47#define DEFAULT_FDT_VERSION 17
48
49/*
50 * Command line options
51 */
52extern int quiet; /* Level of quietness */
53extern int reservenum; /* Number of memory reservation slots */
54extern int minsize; /* Minimum blob size */
55extern int padsize; /* Additional padding to blob */
56extern int alignsize; /* Additional padding to blob accroding to the alignsize */
56extern int phandle_format; /* Use linux,phandle or phandle properties */
57extern int phandle_format; /* Use linux,phandle or phandle properties */
58extern int generate_symbols; /* generate symbols for nodes with labels */
59extern int generate_fixups; /* generate fixups */
60extern int auto_label_aliases; /* auto generate labels -> aliases */
57
58#define PHANDLE_LEGACY 0x1
59#define PHANDLE_EPAPR 0x2
60#define PHANDLE_BOTH 0x3
61
62typedef uint32_t cell_t;
63
64

--- 18 unchanged lines hidden (view full) ---

83
84struct data {
85 int len;
86 char *val;
87 struct marker *markers;
88};
89
90
61
62#define PHANDLE_LEGACY 0x1
63#define PHANDLE_EPAPR 0x2
64#define PHANDLE_BOTH 0x3
65
66typedef uint32_t cell_t;
67
68

--- 18 unchanged lines hidden (view full) ---

87
88struct data {
89 int len;
90 char *val;
91 struct marker *markers;
92};
93
94
91#define empty_data ((struct data){ /* all .members = 0 or NULL */ })
95#define empty_data ((struct data){ 0 /* all .members = 0 or NULL */ })
92
93#define for_each_marker(m) \
94 for (; (m); (m) = (m)->next)
95#define for_each_marker_of_type(m, t) \
96 for_each_marker(m) \
97 if ((m)->type == (t))
98
99void data_free(struct data d);

--- 96 unchanged lines hidden (view full) ---

196struct node *merge_nodes(struct node *old_node, struct node *new_node);
197
198void add_property(struct node *node, struct property *prop);
199void delete_property_by_name(struct node *node, char *name);
200void delete_property(struct property *prop);
201void add_child(struct node *parent, struct node *child);
202void delete_node_by_name(struct node *parent, char *name);
203void delete_node(struct node *node);
96
97#define for_each_marker(m) \
98 for (; (m); (m) = (m)->next)
99#define for_each_marker_of_type(m, t) \
100 for_each_marker(m) \
101 if ((m)->type == (t))
102
103void data_free(struct data d);

--- 96 unchanged lines hidden (view full) ---

200struct node *merge_nodes(struct node *old_node, struct node *new_node);
201
202void add_property(struct node *node, struct property *prop);
203void delete_property_by_name(struct node *node, char *name);
204void delete_property(struct property *prop);
205void add_child(struct node *parent, struct node *child);
206void delete_node_by_name(struct node *parent, char *name);
207void delete_node(struct node *node);
208void append_to_property(struct node *node,
209 char *name, const void *data, int len);
204
205const char *get_unitname(struct node *node);
206struct property *get_property(struct node *node, const char *propname);
207cell_t propval_cell(struct property *prop);
208struct property *get_property_by_label(struct node *tree, const char *label,
209 struct node **node);
210struct marker *get_marker_label(struct node *tree, const char *label,
211 struct node **node, struct property **prop);

--- 18 unchanged lines hidden (view full) ---

230
231struct reserve_info *build_reserve_entry(uint64_t start, uint64_t len);
232struct reserve_info *chain_reserve_entry(struct reserve_info *first,
233 struct reserve_info *list);
234struct reserve_info *add_reserve_entry(struct reserve_info *list,
235 struct reserve_info *new);
236
237
210
211const char *get_unitname(struct node *node);
212struct property *get_property(struct node *node, const char *propname);
213cell_t propval_cell(struct property *prop);
214struct property *get_property_by_label(struct node *tree, const char *label,
215 struct node **node);
216struct marker *get_marker_label(struct node *tree, const char *label,
217 struct node **node, struct property **prop);

--- 18 unchanged lines hidden (view full) ---

236
237struct reserve_info *build_reserve_entry(uint64_t start, uint64_t len);
238struct reserve_info *chain_reserve_entry(struct reserve_info *first,
239 struct reserve_info *list);
240struct reserve_info *add_reserve_entry(struct reserve_info *list,
241 struct reserve_info *new);
242
243
238struct boot_info {
244struct dt_info {
245 unsigned int dtsflags;
239 struct reserve_info *reservelist;
246 struct reserve_info *reservelist;
240 struct node *dt; /* the device tree */
241 uint32_t boot_cpuid_phys;
247 uint32_t boot_cpuid_phys;
248 struct node *dt; /* the device tree */
249 const char *outname; /* filename being written to, "-" for stdout */
242};
243
250};
251
244struct boot_info *build_boot_info(struct reserve_info *reservelist,
245 struct node *tree, uint32_t boot_cpuid_phys);
246void sort_tree(struct boot_info *bi);
252/* DTS version flags definitions */
253#define DTSF_V1 0x0001 /* /dts-v1/ */
254#define DTSF_PLUGIN 0x0002 /* /plugin/ */
247
255
256struct dt_info *build_dt_info(unsigned int dtsflags,
257 struct reserve_info *reservelist,
258 struct node *tree, uint32_t boot_cpuid_phys);
259void sort_tree(struct dt_info *dti);
260void generate_label_tree(struct dt_info *dti, char *name, bool allocph);
261void generate_fixups_tree(struct dt_info *dti, char *name);
262void generate_local_fixups_tree(struct dt_info *dti, char *name);
263
248/* Checks */
249
264/* Checks */
265
250void parse_checks_option(bool warn, bool error, const char *optarg);
251void process_checks(bool force, struct boot_info *bi);
266void parse_checks_option(bool warn, bool error, const char *arg);
267void process_checks(bool force, struct dt_info *dti);
252
253/* Flattened trees */
254
268
269/* Flattened trees */
270
255void dt_to_blob(FILE *f, struct boot_info *bi, int version);
256void dt_to_asm(FILE *f, struct boot_info *bi, int version);
271void dt_to_blob(FILE *f, struct dt_info *dti, int version);
272void dt_to_asm(FILE *f, struct dt_info *dti, int version);
257
273
258struct boot_info *dt_from_blob(const char *fname);
274struct dt_info *dt_from_blob(const char *fname);
259
260/* Tree source */
261
275
276/* Tree source */
277
262void dt_to_source(FILE *f, struct boot_info *bi);
263struct boot_info *dt_from_source(const char *f);
278void dt_to_source(FILE *f, struct dt_info *dti);
279struct dt_info *dt_from_source(const char *f);
264
265/* FS trees */
266
280
281/* FS trees */
282
267struct boot_info *dt_from_fs(const char *dirname);
283struct dt_info *dt_from_fs(const char *dirname);
268
269#endif /* _DTC_H */
284
285#endif /* _DTC_H */