1819281eeSdp-arm /* 2819281eeSdp-arm * Copyright (c) 2016, ARM Limited and Contributors. All rights reserved. 3819281eeSdp-arm * 4*82cb2c1aSdp-arm * SPDX-License-Identifier: BSD-3-Clause 5819281eeSdp-arm */ 6819281eeSdp-arm 7819281eeSdp-arm #ifndef __FIPTOOL_H__ 8819281eeSdp-arm #define __FIPTOOL_H__ 9819281eeSdp-arm 10819281eeSdp-arm #include <stddef.h> 11819281eeSdp-arm #include <stdint.h> 12819281eeSdp-arm 1365caa3d0SMasahiro Yamada #include "firmware_image_package.h" 14819281eeSdp-arm #include "uuid.h" 15819281eeSdp-arm 16819281eeSdp-arm #define NELEM(x) (sizeof (x) / sizeof *(x)) 17819281eeSdp-arm 18819281eeSdp-arm enum { 19e0f083a0Sdp-arm DO_UNSPEC = 0, 20819281eeSdp-arm DO_PACK = 1, 21819281eeSdp-arm DO_UNPACK = 2, 22819281eeSdp-arm DO_REMOVE = 3 23819281eeSdp-arm }; 24819281eeSdp-arm 25819281eeSdp-arm enum { 26819281eeSdp-arm LOG_DBG, 27819281eeSdp-arm LOG_WARN, 28819281eeSdp-arm LOG_ERR 29819281eeSdp-arm }; 30819281eeSdp-arm 31e0f083a0Sdp-arm typedef struct image_desc { 32e0f083a0Sdp-arm uuid_t uuid; 33e0f083a0Sdp-arm char *name; 34e0f083a0Sdp-arm char *cmdline_name; 35e0f083a0Sdp-arm int action; 36e0f083a0Sdp-arm char *action_arg; 37b9589fe5Sdp-arm struct image *image; 38e0f083a0Sdp-arm struct image_desc *next; 39e0f083a0Sdp-arm } image_desc_t; 40e0f083a0Sdp-arm 41819281eeSdp-arm typedef struct image { 4265caa3d0SMasahiro Yamada struct fip_toc_entry toc_e; 43819281eeSdp-arm void *buffer; 44819281eeSdp-arm } image_t; 45819281eeSdp-arm 46819281eeSdp-arm typedef struct cmd { 47819281eeSdp-arm char *name; 48819281eeSdp-arm int (*handler)(int, char **); 49819281eeSdp-arm void (*usage)(void); 50819281eeSdp-arm } cmd_t; 51819281eeSdp-arm 52819281eeSdp-arm #endif /* __FIPTOOL_H__ */ 53