Add qemu 2.4.0
[kvmfornfv.git] / qemu / roms / SLOF / romfs / tools / cfgparse.h
diff --git a/qemu/roms/SLOF/romfs/tools/cfgparse.h b/qemu/roms/SLOF/romfs/tools/cfgparse.h
new file mode 100644 (file)
index 0000000..ed5c885
--- /dev/null
@@ -0,0 +1,59 @@
+/******************************************************************************
+ * Copyright (c) 2004, 2008 IBM Corporation
+ * All rights reserved.
+ * This program and the accompanying materials
+ * are made available under the terms of the BSD License
+ * which accompanies this distribution, and is available at
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * Contributors:
+ *     IBM Corporation - initial implementation
+ *****************************************************************************/
+#ifndef CFGPARSE_H
+#define CFGPARSE_H
+
+#include <byteswap.h>
+#include <endian.h>
+
+#if __BYTE_ORDER == __BIG_ENDIAN
+#define cpu_to_be64(x) (x)
+#else
+#define cpu_to_be64(x) bswap_64(x)
+#endif
+
+struct ffs_chain_t {
+       int count;
+       unsigned int romfs_size;
+       struct ffs_header_t *first;
+};
+
+#define FLAG_LLFW 1            /* low level firmware at fix offs in romfs */
+
+#define needs_fix_offset(hdr) ((hdr)->flags & FLAG_LLFW)
+
+struct ffs_header_t {
+       unsigned long long flags;
+       unsigned long long romaddr;
+       char *token;
+       char *imagefile;
+       int imagefile_length;
+       struct ffs_header_t *linked_to;
+       struct ffs_header_t *next;
+       unsigned long long save_data;
+       unsigned long long save_data_len;
+       int save_data_valid;
+
+       unsigned long long addr;        /* tmp */
+       int hdrsize;            /* tmp */
+       int tokensize;          /* tmp */
+       int ffsize;             /* tmp */
+};
+
+void dump_fs_contents(struct ffs_chain_t *chain);
+void find_duplicates(struct ffs_chain_t *chain);
+void free_chain_memory(struct ffs_chain_t *chain);
+
+int read_config(int conf_file, struct ffs_chain_t *ffs_chain);
+int reorder_ffs_chain(struct ffs_chain_t *fs);
+int build_ffs(struct ffs_chain_t *fs, const char *outfile, int notime);
+#endif