/*
 * This file is auto-generated, do not modify!
 *
 * SPDX-License-Identifier: LGPL-2.1-or-later
 */

#pragma once
#include <fu-input-stream.h>
/**
 * FuKineticDpFamily:
 */
typedef enum {
    /**
     * FU_KINETIC_DP_FAMILY_UNKNOWN:
     */
    FU_KINETIC_DP_FAMILY_UNKNOWN,
    /**
     * FU_KINETIC_DP_FAMILY_MUSTANG:
     */
    FU_KINETIC_DP_FAMILY_MUSTANG,
    /**
     * FU_KINETIC_DP_FAMILY_JAGUAR:
     */
    FU_KINETIC_DP_FAMILY_JAGUAR,
    /**
     * FU_KINETIC_DP_FAMILY_PUMA:
     */
    FU_KINETIC_DP_FAMILY_PUMA,
}  FuKineticDpFamily;
#define FU_KINETIC_DP_FAMILY_LAST 4
const gchar *fu_kinetic_dp_family_to_string(FuKineticDpFamily val) G_GNUC_CONST;
/**
 * FuKineticDpChip:
 */
typedef enum {
    /**
     * FU_KINETIC_DP_CHIP_NONE:
     */
    FU_KINETIC_DP_CHIP_NONE,
    /**
     * FU_KINETIC_DP_CHIP_BOBCAT_2800:
     */
    FU_KINETIC_DP_CHIP_BOBCAT_2800,
    /**
     * FU_KINETIC_DP_CHIP_BOBCAT_2850:
     */
    FU_KINETIC_DP_CHIP_BOBCAT_2850,
    /**
     * FU_KINETIC_DP_CHIP_PEGASUS:
     */
    FU_KINETIC_DP_CHIP_PEGASUS,
    /**
     * FU_KINETIC_DP_CHIP_MYSTIQUE:
     */
    FU_KINETIC_DP_CHIP_MYSTIQUE,
    /**
     * FU_KINETIC_DP_CHIP_DP2VGA:
     */
    FU_KINETIC_DP_CHIP_DP2VGA,
    /**
     * FU_KINETIC_DP_CHIP_PUMA_2900:
     */
    FU_KINETIC_DP_CHIP_PUMA_2900,
    /**
     * FU_KINETIC_DP_CHIP_PUMA_2920:
     */
    FU_KINETIC_DP_CHIP_PUMA_2920,
    /**
     * FU_KINETIC_DP_CHIP_JAGUAR_5000:
     */
    FU_KINETIC_DP_CHIP_JAGUAR_5000,
    /**
     * FU_KINETIC_DP_CHIP_MUSTANG_5200:
     */
    FU_KINETIC_DP_CHIP_MUSTANG_5200,
}  FuKineticDpChip;
#define FU_KINETIC_DP_CHIP_LAST 10
const gchar *fu_kinetic_dp_chip_to_string(FuKineticDpChip val) G_GNUC_CONST;
/**
 * FuKineticDpDev:
 */
typedef enum {
    /**
     * FU_KINETIC_DP_DEV_HOST:
     */
    FU_KINETIC_DP_DEV_HOST,
    /**
     * FU_KINETIC_DP_DEV_PORT1:
     */
    FU_KINETIC_DP_DEV_PORT1,
    /**
     * FU_KINETIC_DP_DEV_PORT2:
     */
    FU_KINETIC_DP_DEV_PORT2,
    /**
     * FU_KINETIC_DP_DEV_PORT3:
     */
    FU_KINETIC_DP_DEV_PORT3,
}  FuKineticDpDev;
#define FU_KINETIC_DP_DEV_LAST 4
/**
 * FuKineticDpBank:
 */
typedef enum {
    /**
     * FU_KINETIC_DP_BANK_A:
     */
    FU_KINETIC_DP_BANK_A = 0,
    /**
     * FU_KINETIC_DP_BANK_B:
     */
    FU_KINETIC_DP_BANK_B = 1,
    /**
     * FU_KINETIC_DP_BANK_NONE:
     */
    FU_KINETIC_DP_BANK_NONE = 0xFF,
}  FuKineticDpBank;
const gchar *fu_kinetic_dp_bank_to_string(FuKineticDpBank val) G_GNUC_CONST;
/**
 * FuKineticDpFirmwareIdx:
 */
typedef enum {
    /**
     * FU_KINETIC_DP_FIRMWARE_IDX_ISP_DRV:
     */
    FU_KINETIC_DP_FIRMWARE_IDX_ISP_DRV,
    /**
     * FU_KINETIC_DP_FIRMWARE_IDX_APP_FW:
     */
    FU_KINETIC_DP_FIRMWARE_IDX_APP_FW,
}  FuKineticDpFirmwareIdx;
#define FU_KINETIC_DP_FIRMWARE_IDX_LAST 2
/**
 * FuKineticDpFwState:
 */
typedef enum {
    /**
     * FU_KINETIC_DP_FW_STATE_NONE:
     */
    FU_KINETIC_DP_FW_STATE_NONE,
    /**
     * FU_KINETIC_DP_FW_STATE_IROM:
     */
    FU_KINETIC_DP_FW_STATE_IROM,
    /**
     * FU_KINETIC_DP_FW_STATE_BOOT_CODE:
     */
    FU_KINETIC_DP_FW_STATE_BOOT_CODE,
    /**
     * FU_KINETIC_DP_FW_STATE_APP:
     */
    FU_KINETIC_DP_FW_STATE_APP,
}  FuKineticDpFwState;
#define FU_KINETIC_DP_FW_STATE_LAST 4
const gchar *fu_kinetic_dp_fw_state_to_string(FuKineticDpFwState val) G_GNUC_CONST;
/**
 * FuKineticDpPumaMode:
 */
typedef enum {
    /**
     * FU_KINETIC_DP_PUMA_MODE_CHUNK_PROCESSED:
     */
    FU_KINETIC_DP_PUMA_MODE_CHUNK_PROCESSED = 0x03,
    /**
     * FU_KINETIC_DP_PUMA_MODE_CHUNK_RECEIVED:
     */
    FU_KINETIC_DP_PUMA_MODE_CHUNK_RECEIVED = 0x07,
    /**
     * FU_KINETIC_DP_PUMA_MODE_FLASH_INFO_READY:
     */
    FU_KINETIC_DP_PUMA_MODE_FLASH_INFO_READY = 0xA1,
    /**
     * FU_KINETIC_DP_PUMA_MODE_UPDATE_ABORT:
     */
    FU_KINETIC_DP_PUMA_MODE_UPDATE_ABORT = 0x55,
}  FuKineticDpPumaMode;
const gchar *fu_kinetic_dp_puma_mode_to_string(FuKineticDpPumaMode val) G_GNUC_CONST;
/**
 * FuKineticDpPumaRequest:
 */
typedef enum {
    /**
     * FU_KINETIC_DP_PUMA_REQUEST_CHIP_RESET_REQUEST:
     */
    FU_KINETIC_DP_PUMA_REQUEST_CHIP_RESET_REQUEST = 0,
    /**
     * FU_KINETIC_DP_PUMA_REQUEST_CODE_LOAD_REQUEST:
     */
    FU_KINETIC_DP_PUMA_REQUEST_CODE_LOAD_REQUEST = 0x01,
    /**
     * FU_KINETIC_DP_PUMA_REQUEST_CODE_LOAD_READY:
     */
    FU_KINETIC_DP_PUMA_REQUEST_CODE_LOAD_READY = 0x03,
    /**
     * FU_KINETIC_DP_PUMA_REQUEST_CODE_BOOTUP_DONE:
     */
    FU_KINETIC_DP_PUMA_REQUEST_CODE_BOOTUP_DONE = 0x07,
    /**
     * FU_KINETIC_DP_PUMA_REQUEST_CMDB_GETINFO_REQ:
     */
    FU_KINETIC_DP_PUMA_REQUEST_CMDB_GETINFO_REQ = 0xA0,
    /**
     * FU_KINETIC_DP_PUMA_REQUEST_CMDB_GETINFO_READ:
     */
    FU_KINETIC_DP_PUMA_REQUEST_CMDB_GETINFO_READ = 0xA1,
    /**
     * FU_KINETIC_DP_PUMA_REQUEST_CMDB_GETINFO_INVALID:
     */
    FU_KINETIC_DP_PUMA_REQUEST_CMDB_GETINFO_INVALID = 0xA2,
    /**
     * FU_KINETIC_DP_PUMA_REQUEST_CMDB_GETINFO_DONE:
     */
    FU_KINETIC_DP_PUMA_REQUEST_CMDB_GETINFO_DONE = 0xA3,
    /**
     * FU_KINETIC_DP_PUMA_REQUEST_FLASH_ERASE_DONE:
     */
    FU_KINETIC_DP_PUMA_REQUEST_FLASH_ERASE_DONE = 0xE0,
    /**
     * FU_KINETIC_DP_PUMA_REQUEST_FLASH_RRASE_FAIL:
     */
    FU_KINETIC_DP_PUMA_REQUEST_FLASH_RRASE_FAIL = 0xE1,
    /**
     * FU_KINETIC_DP_PUMA_REQUEST_FLASH_RRASE_REQUEST:
     */
    FU_KINETIC_DP_PUMA_REQUEST_FLASH_RRASE_REQUEST = 0xEE,
    /**
     * FU_KINETIC_DP_PUMA_REQUEST_FW_UPDATE_DONE:
     */
    FU_KINETIC_DP_PUMA_REQUEST_FW_UPDATE_DONE = 0xF8,
    /**
     * FU_KINETIC_DP_PUMA_REQUEST_FW_UPDATE_READY:
     */
    FU_KINETIC_DP_PUMA_REQUEST_FW_UPDATE_READY = 0xFC,
    /**
     * FU_KINETIC_DP_PUMA_REQUEST_FW_UPDATE_REQUEST:
     */
    FU_KINETIC_DP_PUMA_REQUEST_FW_UPDATE_REQUEST = 0xFE,
}  FuKineticDpPumaRequest;
/**
 * FuKineticDpDpcd:
 */
typedef enum {
    /**
     * FU_KINETIC_DP_DPCD_CMD_STS_NONE:
     *
     * status
     */
    FU_KINETIC_DP_DPCD_CMD_STS_NONE = 0x0,
    /**
     * FU_KINETIC_DP_DPCD_STS_INVALID_INFO:
     */
    FU_KINETIC_DP_DPCD_STS_INVALID_INFO = 0x01,
    /**
     * FU_KINETIC_DP_DPCD_STS_CRC_FAILURE:
     */
    FU_KINETIC_DP_DPCD_STS_CRC_FAILURE = 0x02,
    /**
     * FU_KINETIC_DP_DPCD_STS_INVALID_IMAGE:
     */
    FU_KINETIC_DP_DPCD_STS_INVALID_IMAGE = 0x03,
    /**
     * FU_KINETIC_DP_DPCD_STS_SECURE_ENABLED:
     */
    FU_KINETIC_DP_DPCD_STS_SECURE_ENABLED = 0x04,
    /**
     * FU_KINETIC_DP_DPCD_STS_SECURE_DISABLED:
     */
    FU_KINETIC_DP_DPCD_STS_SECURE_DISABLED = 0x05,
    /**
     * FU_KINETIC_DP_DPCD_STS_SPI_FLASH_FAILURE:
     */
    FU_KINETIC_DP_DPCD_STS_SPI_FLASH_FAILURE = 0x06,
    /**
     * FU_KINETIC_DP_DPCD_CMD_PREPARE_FOR_ISP_MODE:
     *
     * command
     */
    FU_KINETIC_DP_DPCD_CMD_PREPARE_FOR_ISP_MODE = 0x23,
    /**
     * FU_KINETIC_DP_DPCD_CMD_ENTER_CODE_LOADING_MODE:
     */
    FU_KINETIC_DP_DPCD_CMD_ENTER_CODE_LOADING_MODE = 0x24,
    /**
     * FU_KINETIC_DP_DPCD_CMD_EXECUTE_RAM_CODE:
     */
    FU_KINETIC_DP_DPCD_CMD_EXECUTE_RAM_CODE = 0x25,
    /**
     * FU_KINETIC_DP_DPCD_CMD_ENTER_FW_UPDATE_MODE:
     */
    FU_KINETIC_DP_DPCD_CMD_ENTER_FW_UPDATE_MODE = 0x26,
    /**
     * FU_KINETIC_DP_DPCD_CMD_CHUNK_DATA_PROCESSED:
     */
    FU_KINETIC_DP_DPCD_CMD_CHUNK_DATA_PROCESSED = 0x27,
    /**
     * FU_KINETIC_DP_DPCD_CMD_INSTALL_IMAGES:
     */
    FU_KINETIC_DP_DPCD_CMD_INSTALL_IMAGES = 0x28,
    /**
     * FU_KINETIC_DP_DPCD_CMD_RESET_SYSTEM:
     */
    FU_KINETIC_DP_DPCD_CMD_RESET_SYSTEM = 0x29,
    /**
     * FU_KINETIC_DP_DPCD_CMD_ENABLE_AUX_FORWARD:
     *
     * other command
     */
    FU_KINETIC_DP_DPCD_CMD_ENABLE_AUX_FORWARD = 0x31,
    /**
     * FU_KINETIC_DP_DPCD_CMD_DISABLE_AUX_FORWARD:
     */
    FU_KINETIC_DP_DPCD_CMD_DISABLE_AUX_FORWARD = 0x32,
    /**
     * FU_KINETIC_DP_DPCD_CMD_GET_ACTIVE_FLASH_BANK:
     */
    FU_KINETIC_DP_DPCD_CMD_GET_ACTIVE_FLASH_BANK = 0x33,
    /**
     * FU_KINETIC_DP_DPCD_CMD_RESERVED:
     *
     * 0x70 ~ 0x7F are reserved for other usage
     */
    FU_KINETIC_DP_DPCD_CMD_RESERVED = 0x7f,
}  FuKineticDpDpcd;
const gchar *fu_kinetic_dp_dpcd_to_string(FuKineticDpDpcd val) G_GNUC_CONST;
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructKineticDpPumaHeader;

FuStructKineticDpPumaHeader *fu_struct_kinetic_dp_puma_header_ref(FuStructKineticDpPumaHeader *st) G_GNUC_NON_NULL(1);
void fu_struct_kinetic_dp_puma_header_unref(FuStructKineticDpPumaHeader *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructKineticDpPumaHeader, fu_struct_kinetic_dp_puma_header_unref)
FuStructKineticDpPumaHeader *fu_struct_kinetic_dp_puma_header_parse_stream(GInputStream *stream, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_KINETIC_DP_PUMA_HEADER_OFFSET_OBJECT_COUNT 0x1
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_KINETIC_DP_PUMA_HEADER_SIZE 0x2
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_KINETIC_DP_PUMA_HEADER_DEFAULT_OBJECT_COUNT 8
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructKineticDpPumaHeaderInfo;

FuStructKineticDpPumaHeaderInfo *fu_struct_kinetic_dp_puma_header_info_ref(FuStructKineticDpPumaHeaderInfo *st) G_GNUC_NON_NULL(1);
void fu_struct_kinetic_dp_puma_header_info_unref(FuStructKineticDpPumaHeaderInfo *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructKineticDpPumaHeaderInfo, fu_struct_kinetic_dp_puma_header_info_unref)
FuStructKineticDpPumaHeaderInfo *fu_struct_kinetic_dp_puma_header_info_parse_stream(GInputStream *stream, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_kinetic_dp_puma_header_info_get_type(const FuStructKineticDpPumaHeaderInfo *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_kinetic_dp_puma_header_info_get_subtype(const FuStructKineticDpPumaHeaderInfo *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_kinetic_dp_puma_header_info_get_length(const FuStructKineticDpPumaHeaderInfo *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_KINETIC_DP_PUMA_HEADER_INFO_OFFSET_TYPE 0x0
#define FU_STRUCT_KINETIC_DP_PUMA_HEADER_INFO_OFFSET_SUBTYPE 0x1
#define FU_STRUCT_KINETIC_DP_PUMA_HEADER_INFO_OFFSET_LENGTH 0x2
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_KINETIC_DP_PUMA_HEADER_INFO_SIZE 0x6
#endif

#ifndef __GI_SCANNER__
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructKineticDpJaguarFooter;

FuStructKineticDpJaguarFooter *fu_struct_kinetic_dp_jaguar_footer_ref(FuStructKineticDpJaguarFooter *st) G_GNUC_NON_NULL(1);
void fu_struct_kinetic_dp_jaguar_footer_unref(FuStructKineticDpJaguarFooter *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructKineticDpJaguarFooter, fu_struct_kinetic_dp_jaguar_footer_unref)
FuStructKineticDpJaguarFooter *fu_struct_kinetic_dp_jaguar_footer_parse_stream(GInputStream *stream, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_kinetic_dp_jaguar_footer_get_app_id_struct_ver(const FuStructKineticDpJaguarFooter *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
const guint8 *fu_struct_kinetic_dp_jaguar_footer_get_app_id(const FuStructKineticDpJaguarFooter *st, gsize *bufsz) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_kinetic_dp_jaguar_footer_get_app_ver_id(const FuStructKineticDpJaguarFooter *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_kinetic_dp_jaguar_footer_get_fw_ver(const FuStructKineticDpJaguarFooter *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_kinetic_dp_jaguar_footer_get_fw_rev(const FuStructKineticDpJaguarFooter *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_kinetic_dp_jaguar_footer_get_customer_fw_project_id(const FuStructKineticDpJaguarFooter *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_kinetic_dp_jaguar_footer_get_customer_fw_ver(const FuStructKineticDpJaguarFooter *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_kinetic_dp_jaguar_footer_get_chip_rev(const FuStructKineticDpJaguarFooter *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_kinetic_dp_jaguar_footer_get_is_fpga_enabled(const FuStructKineticDpJaguarFooter *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_KINETIC_DP_JAGUAR_FOOTER_OFFSET_APP_ID_STRUCT_VER 0x0
#define FU_STRUCT_KINETIC_DP_JAGUAR_FOOTER_OFFSET_APP_ID 0x4
#define FU_STRUCT_KINETIC_DP_JAGUAR_FOOTER_OFFSET_APP_VER_ID 0x8
#define FU_STRUCT_KINETIC_DP_JAGUAR_FOOTER_OFFSET_FW_VER 0xC
#define FU_STRUCT_KINETIC_DP_JAGUAR_FOOTER_OFFSET_FW_REV 0xE
#define FU_STRUCT_KINETIC_DP_JAGUAR_FOOTER_OFFSET_CUSTOMER_FW_PROJECT_ID 0xF
#define FU_STRUCT_KINETIC_DP_JAGUAR_FOOTER_OFFSET_CUSTOMER_FW_VER 0x10
#define FU_STRUCT_KINETIC_DP_JAGUAR_FOOTER_OFFSET_CHIP_REV 0x12
#define FU_STRUCT_KINETIC_DP_JAGUAR_FOOTER_OFFSET_IS_FPGA_ENABLED 0x13
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_KINETIC_DP_JAGUAR_FOOTER_SIZE_APP_ID 0x4
#define FU_STRUCT_KINETIC_DP_JAGUAR_FOOTER_N_ELEMENTS_APP_ID 4
#define FU_STRUCT_KINETIC_DP_JAGUAR_FOOTER_SIZE 0x20
#endif

#ifndef __GI_SCANNER__
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructKineticDpFlashInfo;

FuStructKineticDpFlashInfo *fu_struct_kinetic_dp_flash_info_ref(FuStructKineticDpFlashInfo *st) G_GNUC_NON_NULL(1);
void fu_struct_kinetic_dp_flash_info_unref(FuStructKineticDpFlashInfo *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructKineticDpFlashInfo, fu_struct_kinetic_dp_flash_info_unref)
FuStructKineticDpFlashInfo *fu_struct_kinetic_dp_flash_info_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_kinetic_dp_flash_info_get_id(const FuStructKineticDpFlashInfo *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_kinetic_dp_flash_info_get_size(const FuStructKineticDpFlashInfo *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_kinetic_dp_flash_info_get_erase_time(const FuStructKineticDpFlashInfo *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_KINETIC_DP_FLASH_INFO_OFFSET_ID 0x0
#define FU_STRUCT_KINETIC_DP_FLASH_INFO_OFFSET_SIZE 0x2
#define FU_STRUCT_KINETIC_DP_FLASH_INFO_OFFSET_ERASE_TIME 0x4
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_KINETIC_DP_FLASH_INFO_SIZE 0x6
#endif

#ifndef __GI_SCANNER__
#endif
