xref: /arm-trusted-firmware/tools/fiptool/fiptool.h (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700Schasinglulu /*
2*91f16700Schasinglulu  * Copyright (c) 2016-2017, ARM Limited and Contributors. All rights reserved.
3*91f16700Schasinglulu  *
4*91f16700Schasinglulu  * SPDX-License-Identifier: BSD-3-Clause
5*91f16700Schasinglulu  */
6*91f16700Schasinglulu 
7*91f16700Schasinglulu #ifndef FIPTOOL_H
8*91f16700Schasinglulu #define FIPTOOL_H
9*91f16700Schasinglulu 
10*91f16700Schasinglulu #include <stddef.h>
11*91f16700Schasinglulu #include <stdint.h>
12*91f16700Schasinglulu 
13*91f16700Schasinglulu #include <firmware_image_package.h>
14*91f16700Schasinglulu #include <uuid.h>
15*91f16700Schasinglulu 
16*91f16700Schasinglulu #include "fiptool_platform.h"
17*91f16700Schasinglulu 
18*91f16700Schasinglulu #define NELEM(x) (sizeof (x) / sizeof *(x))
19*91f16700Schasinglulu 
20*91f16700Schasinglulu enum {
21*91f16700Schasinglulu 	DO_UNSPEC = 0,
22*91f16700Schasinglulu 	DO_PACK   = 1,
23*91f16700Schasinglulu 	DO_UNPACK = 2,
24*91f16700Schasinglulu 	DO_REMOVE = 3
25*91f16700Schasinglulu };
26*91f16700Schasinglulu 
27*91f16700Schasinglulu enum {
28*91f16700Schasinglulu 	LOG_DBG,
29*91f16700Schasinglulu 	LOG_WARN,
30*91f16700Schasinglulu 	LOG_ERR
31*91f16700Schasinglulu };
32*91f16700Schasinglulu 
33*91f16700Schasinglulu typedef struct image_desc {
34*91f16700Schasinglulu 	uuid_t             uuid;
35*91f16700Schasinglulu 	char              *name;
36*91f16700Schasinglulu 	char              *cmdline_name;
37*91f16700Schasinglulu 	int                action;
38*91f16700Schasinglulu 	char              *action_arg;
39*91f16700Schasinglulu 	struct image      *image;
40*91f16700Schasinglulu 	struct image_desc *next;
41*91f16700Schasinglulu } image_desc_t;
42*91f16700Schasinglulu 
43*91f16700Schasinglulu typedef struct image {
44*91f16700Schasinglulu 	struct fip_toc_entry toc_e;
45*91f16700Schasinglulu 	void                *buffer;
46*91f16700Schasinglulu } image_t;
47*91f16700Schasinglulu 
48*91f16700Schasinglulu typedef struct cmd {
49*91f16700Schasinglulu 	char              *name;
50*91f16700Schasinglulu 	int              (*handler)(int, char **);
51*91f16700Schasinglulu 	void             (*usage)(int);
52*91f16700Schasinglulu } cmd_t;
53*91f16700Schasinglulu 
54*91f16700Schasinglulu #endif /* FIPTOOL_H */
55