diff options
| author | Stephen Warren <swarren@nvidia.com> | 2012-09-28 21:25:59 +0000 | 
|---|---|---|
| committer | Rob Herring <rob.herring@calxeda.com> | 2012-10-01 11:11:35 -0500 | 
| commit | cd296721a9645f9f28800a072490fa15458d1fb7 (patch) | |
| tree | 492b9a268a48af07844fbbd39519f95676ee73fe /scripts/dtc/util.h | |
| parent | acc2097934b5403b97f95763fe99fc115b818061 (diff) | |
| download | olio-linux-3.10-cd296721a9645f9f28800a072490fa15458d1fb7.tar.xz olio-linux-3.10-cd296721a9645f9f28800a072490fa15458d1fb7.zip  | |
dtc: import latest upstream dtc
This updates scripts/dtc to commit 317a5d9 "dtc: zero out new label
objects" from git://git.jdl.com/software/dtc.git.
This adds features such as:
* /bits/ syntax for cell data.
* Math expressions within cell data.
* The ability to delete properties or nodes.
* Support for #line directives in the input file, which allows the use of
  cpp on *.dts.
* -i command-line option (/include/ path)
* -W/-E command-line options for error/warning control.
* Removal of spew to STDOUT containing the filename being compiled.
* Many additions to the libfdt API.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Jon Loeliger <jdl@jdl.com>
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Diffstat (limited to 'scripts/dtc/util.h')
| -rw-r--r-- | scripts/dtc/util.h | 97 | 
1 files changed, 97 insertions, 0 deletions
diff --git a/scripts/dtc/util.h b/scripts/dtc/util.h index 9cead842c11..c8eb45d9f04 100644 --- a/scripts/dtc/util.h +++ b/scripts/dtc/util.h @@ -1,7 +1,10 @@  #ifndef _UTIL_H  #define _UTIL_H +#include <stdarg.h> +  /* + * Copyright 2011 The Chromium Authors, All Rights Reserved.   * Copyright 2008 Jon Loeliger, Freescale Semiconductor, Inc.   *   * This program is free software; you can redistribute it and/or @@ -53,4 +56,98 @@ static inline void *xrealloc(void *p, size_t len)  extern char *xstrdup(const char *s);  extern char *join_path(const char *path, const char *name); +/** + * Check a string of a given length to see if it is all printable and + * has a valid terminator. + * + * @param data	The string to check + * @param len	The string length including terminator + * @return 1 if a valid printable string, 0 if not */ +int util_is_printable_string(const void *data, int len); + +/* + * Parse an escaped character starting at index i in string s.  The resulting + * character will be returned and the index i will be updated to point at the + * character directly after the end of the encoding, this may be the '\0' + * terminator of the string. + */ +char get_escape_char(const char *s, int *i); + +/** + * Read a device tree file into a buffer. This will report any errors on + * stderr. + * + * @param filename	The filename to read, or - for stdin + * @return Pointer to allocated buffer containing fdt, or NULL on error + */ +char *utilfdt_read(const char *filename); + +/** + * Read a device tree file into a buffer. Does not report errors, but only + * returns them. The value returned can be passed to strerror() to obtain + * an error message for the user. + * + * @param filename	The filename to read, or - for stdin + * @param buffp		Returns pointer to buffer containing fdt + * @return 0 if ok, else an errno value representing the error + */ +int utilfdt_read_err(const char *filename, char **buffp); + + +/** + * Write a device tree buffer to a file. This will report any errors on + * stderr. + * + * @param filename	The filename to write, or - for stdout + * @param blob		Poiner to buffer containing fdt + * @return 0 if ok, -1 on error + */ +int utilfdt_write(const char *filename, const void *blob); + +/** + * Write a device tree buffer to a file. Does not report errors, but only + * returns them. The value returned can be passed to strerror() to obtain + * an error message for the user. + * + * @param filename	The filename to write, or - for stdout + * @param blob		Poiner to buffer containing fdt + * @return 0 if ok, else an errno value representing the error + */ +int utilfdt_write_err(const char *filename, const void *blob); + +/** + * Decode a data type string. The purpose of this string + * + * The string consists of an optional character followed by the type: + *	Modifier characters: + *		hh or b	1 byte + *		h	2 byte + *		l	4 byte, default + * + *	Type character: + *		s	string + *		i	signed integer + *		u	unsigned integer + *		x	hex + * + * TODO: Implement ll modifier (8 bytes) + * TODO: Implement o type (octal) + * + * @param fmt		Format string to process + * @param type		Returns type found(s/d/u/x), or 0 if none + * @param size		Returns size found(1,2,4,8) or 4 if none + * @return 0 if ok, -1 on error (no type given, or other invalid format) + */ +int utilfdt_decode_type(const char *fmt, int *type, int *size); + +/* + * This is a usage message fragment for the -t option. It is the format + * supported by utilfdt_decode_type. + */ + +#define USAGE_TYPE_MSG \ +	"<type>\ts=string, i=int, u=unsigned, x=hex\n" \ +	"\tOptional modifier prefix:\n" \ +	"\t\thh or b=byte, h=2 byte, l=4 byte (default)\n"; +  #endif /* _UTIL_H */  |