1/* SPDX-License-Identifier: GPL-2.0+ */
2/*
3 * (C) Copyright 2014
4 */
5
6#ifndef _FIT_COMMON_H_
7#define _FIT_COMMON_H_
8
9#include "imagetool.h"
10#include "mkimage.h"
11#include <image.h>
12
13void fit_print_header(const void *fit, struct image_tool_params *params);
14
15/**
16 * Verify the format of FIT header pointed to by ptr
17 *
18 * @ptr: image header to be verified
19 * @image_size: size of while image
20 * @params: mkimage parameters
21 * Return: 0 if OK, -1 on error
22 */
23int fit_verify_header(unsigned char *ptr, int image_size,
24			struct image_tool_params *params);
25
26int fit_check_image_types(uint8_t type);
27
28/**
29 * Map an FDT into memory, optionally increasing its size
30 *
31 * @cmdname:	Tool name (for displaying with error messages)
32 * @fname:	Filename containing FDT
33 * @size_inc:	Amount to increase size by (0 = leave it alone)
34 * @blobp:	Returns pointer to FDT blob
35 * @sbuf:	File status information is stored here
36 * @delete_on_error:	true to delete the file if we get an error
37 * @read_only:	true to open in read-only mode
38 * Return: 0 if OK, -1 on error.
39 */
40int mmap_fdt(const char *cmdname, const char *fname, size_t size_inc,
41	     void **blobp, struct stat *sbuf, bool delete_on_error,
42	     bool read_only);
43
44/**
45 * copyfile() - Copy a file
46 *
47 * This uses read()/write() to copy file @src to file @dst
48 *
49 * If @dst exists, it is overwritten and truncated to the correct size.
50 *
51 * @src: Filename to read from
52 * @dst: Filename to write to
53 * @return 0 if OK, -1 on error
54 */
55int copyfile(const char *src, const char *dst);
56
57/**
58 * summary_show() - Show summary information about the signing process
59 *
60 * @summary: Summary info to show
61 * @imagefile: Filename of the output image
62 * @keydest: Filename where the key information is written (NULL if none)
63 */
64void summary_show(struct image_summary *summary, const char *imagefile,
65		  const char *keydest);
66
67#endif /* _FIT_COMMON_H_ */
68