1819281eeSdp-arm /* 22a6c1a8fSMasahiro Yamada * Copyright (c) 2016-2017, ARM Limited and Contributors. All rights reserved. 3819281eeSdp-arm * 482cb2c1aSdp-arm * SPDX-License-Identifier: BSD-3-Clause 5819281eeSdp-arm */ 6819281eeSdp-arm 7c3cf06f1SAntonio Nino Diaz #ifndef FIPTOOL_H 8c3cf06f1SAntonio Nino Diaz #define FIPTOOL_H 9819281eeSdp-arm 10819281eeSdp-arm #include <stddef.h> 11819281eeSdp-arm #include <stdint.h> 12819281eeSdp-arm 13769fb6b6SIsla Mitchell #include <firmware_image_package.h> 142a6c1a8fSMasahiro Yamada #include <uuid.h> 15819281eeSdp-arm 1696851114SEvan Lloyd #include "fiptool_platform.h" 1796851114SEvan Lloyd 18819281eeSdp-arm #define NELEM(x) (sizeof (x) / sizeof *(x)) 19819281eeSdp-arm 20819281eeSdp-arm enum { 21e0f083a0Sdp-arm DO_UNSPEC = 0, 22819281eeSdp-arm DO_PACK = 1, 23819281eeSdp-arm DO_UNPACK = 2, 24819281eeSdp-arm DO_REMOVE = 3 25819281eeSdp-arm }; 26819281eeSdp-arm 27819281eeSdp-arm enum { 28819281eeSdp-arm LOG_DBG, 29819281eeSdp-arm LOG_WARN, 30819281eeSdp-arm LOG_ERR 31819281eeSdp-arm }; 32819281eeSdp-arm 33e0f083a0Sdp-arm typedef struct image_desc { 34e0f083a0Sdp-arm uuid_t uuid; 35e0f083a0Sdp-arm char *name; 36e0f083a0Sdp-arm char *cmdline_name; 37e0f083a0Sdp-arm int action; 38e0f083a0Sdp-arm char *action_arg; 39b9589fe5Sdp-arm struct image *image; 40e0f083a0Sdp-arm struct image_desc *next; 41e0f083a0Sdp-arm } image_desc_t; 42e0f083a0Sdp-arm 43819281eeSdp-arm typedef struct image { 4465caa3d0SMasahiro Yamada struct fip_toc_entry toc_e; 45819281eeSdp-arm void *buffer; 46819281eeSdp-arm } image_t; 47819281eeSdp-arm 48819281eeSdp-arm typedef struct cmd { 49819281eeSdp-arm char *name; 50819281eeSdp-arm int (*handler)(int, char **); 51*4e500525SLeonardo Sandoval void (*usage)(int); 52819281eeSdp-arm } cmd_t; 53819281eeSdp-arm 54c3cf06f1SAntonio Nino Diaz #endif /* FIPTOOL_H */ 55