#ifndef IPU6_CPD_H
#define IPU6_CPD_H
struct ipu6_device;
struct ipu6_bus_device;
#define IPU6_CPD_SIZE_OF_FW_ARCH_VERSION …
#define IPU6_CPD_SIZE_OF_SYSTEM_VERSION …
#define IPU6_CPD_SIZE_OF_COMPONENT_NAME …
#define IPU6_CPD_METADATA_EXTN_TYPE_IUNIT …
#define IPU6_CPD_METADATA_IMAGE_TYPE_RESERVED …
#define IPU6_CPD_METADATA_IMAGE_TYPE_BOOTLOADER …
#define IPU6_CPD_METADATA_IMAGE_TYPE_MAIN_FIRMWARE …
#define IPU6_CPD_PKG_DIR_PSYS_SERVER_IDX …
#define IPU6_CPD_PKG_DIR_ISYS_SERVER_IDX …
#define IPU6_CPD_PKG_DIR_CLIENT_PG_TYPE …
#define IPU6_CPD_METADATA_HASH_KEY_SIZE …
#define IPU6SE_CPD_METADATA_HASH_KEY_SIZE …
struct ipu6_cpd_module_data_hdr { … } __packed;
struct ipu6_cpd_hdr { … } __packed;
struct ipu6_cpd_ent { … } __packed;
struct ipu6_cpd_metadata_cmpnt_hdr { … } __packed;
struct ipu6_cpd_metadata_cmpnt { … } __packed;
struct ipu6se_cpd_metadata_cmpnt { … } __packed;
struct ipu6_cpd_metadata_extn { … } __packed;
struct ipu6_cpd_client_pkg_hdr { … } __packed;
int ipu6_cpd_create_pkg_dir(struct ipu6_bus_device *adev, const void *src);
void ipu6_cpd_free_pkg_dir(struct ipu6_bus_device *adev);
int ipu6_cpd_validate_cpd_file(struct ipu6_device *isp, const void *cpd_file,
unsigned long cpd_file_size);
#endif