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

#pragma once
#include <fwupdplugin.h>
/**
 * FuDfuDeviceAttr:
 */
typedef enum {
    /**
     * FU_DFU_DEVICE_ATTR_CAN_DOWNLOAD:
     */
    FU_DFU_DEVICE_ATTR_CAN_DOWNLOAD = 1 << 0,
    /**
     * FU_DFU_DEVICE_ATTR_CAN_UPLOAD:
     */
    FU_DFU_DEVICE_ATTR_CAN_UPLOAD = 1 << 1,
    /**
     * FU_DFU_DEVICE_ATTR_MANIFEST_TOL:
     */
    FU_DFU_DEVICE_ATTR_MANIFEST_TOL = 1 << 2,
    /**
     * FU_DFU_DEVICE_ATTR_WILL_DETACH:
     */
    FU_DFU_DEVICE_ATTR_WILL_DETACH = 1 << 3,
    /**
     * FU_DFU_DEVICE_ATTR_CAN_ACCELERATE:
     */
    FU_DFU_DEVICE_ATTR_CAN_ACCELERATE = 1 << 7,
} G_GNUC_FLAG_ENUM FuDfuDeviceAttr;
/**
 * FuDfuTargetTransferFlags:
 */
typedef enum {
    /**
     * FU_DFU_TARGET_TRANSFER_FLAG_NONE:
     */
    FU_DFU_TARGET_TRANSFER_FLAG_NONE = 0,
    /**
     * FU_DFU_TARGET_TRANSFER_FLAG_VERIFY:
     */
    FU_DFU_TARGET_TRANSFER_FLAG_VERIFY = 1 << 0,
    /**
     * FU_DFU_TARGET_TRANSFER_FLAG_WILDCARD_VID:
     */
    FU_DFU_TARGET_TRANSFER_FLAG_WILDCARD_VID = 1 << 4,
    /**
     * FU_DFU_TARGET_TRANSFER_FLAG_WILDCARD_PID:
     */
    FU_DFU_TARGET_TRANSFER_FLAG_WILDCARD_PID = 1 << 5,
    /**
     * FU_DFU_TARGET_TRANSFER_FLAG_ADDR_HEURISTIC:
     *
     * automatically detect
     */
    FU_DFU_TARGET_TRANSFER_FLAG_ADDR_HEURISTIC = 1 << 7,
} G_GNUC_FLAG_ENUM FuDfuTargetTransferFlags;
/**
 * FuDfuRequest:
 */
typedef enum {
    /**
     * FU_DFU_REQUEST_DETACH:
     */
    FU_DFU_REQUEST_DETACH,
    /**
     * FU_DFU_REQUEST_DNLOAD:
     */
    FU_DFU_REQUEST_DNLOAD,
    /**
     * FU_DFU_REQUEST_UPLOAD:
     */
    FU_DFU_REQUEST_UPLOAD,
    /**
     * FU_DFU_REQUEST_GETSTATUS:
     */
    FU_DFU_REQUEST_GETSTATUS,
    /**
     * FU_DFU_REQUEST_CLRSTATUS:
     */
    FU_DFU_REQUEST_CLRSTATUS,
    /**
     * FU_DFU_REQUEST_GETSTATE:
     */
    FU_DFU_REQUEST_GETSTATE,
    /**
     * FU_DFU_REQUEST_ABORT:
     */
    FU_DFU_REQUEST_ABORT,
}  FuDfuRequest;
#define FU_DFU_REQUEST_LAST 7
/**
 * FuDfuStatus:
 */
typedef enum {
    /**
     * FU_DFU_STATUS_OK:
     */
    FU_DFU_STATUS_OK,
    /**
     * FU_DFU_STATUS_ERR_TARGET:
     */
    FU_DFU_STATUS_ERR_TARGET,
    /**
     * FU_DFU_STATUS_ERR_FILE:
     */
    FU_DFU_STATUS_ERR_FILE,
    /**
     * FU_DFU_STATUS_ERR_WRITE:
     */
    FU_DFU_STATUS_ERR_WRITE,
    /**
     * FU_DFU_STATUS_ERR_ERASE:
     */
    FU_DFU_STATUS_ERR_ERASE,
    /**
     * FU_DFU_STATUS_ERR_CHECK_ERASED:
     */
    FU_DFU_STATUS_ERR_CHECK_ERASED,
    /**
     * FU_DFU_STATUS_ERR_PROG:
     */
    FU_DFU_STATUS_ERR_PROG,
    /**
     * FU_DFU_STATUS_ERR_VERIFY:
     */
    FU_DFU_STATUS_ERR_VERIFY,
    /**
     * FU_DFU_STATUS_ERR_ADDRESS:
     */
    FU_DFU_STATUS_ERR_ADDRESS,
    /**
     * FU_DFU_STATUS_ERR_NOTDONE:
     */
    FU_DFU_STATUS_ERR_NOTDONE,
    /**
     * FU_DFU_STATUS_ERR_FIRMWARE:
     */
    FU_DFU_STATUS_ERR_FIRMWARE,
    /**
     * FU_DFU_STATUS_ERR_VENDOR:
     */
    FU_DFU_STATUS_ERR_VENDOR,
    /**
     * FU_DFU_STATUS_ERR_USBR:
     */
    FU_DFU_STATUS_ERR_USBR,
    /**
     * FU_DFU_STATUS_ERR_POR:
     */
    FU_DFU_STATUS_ERR_POR,
    /**
     * FU_DFU_STATUS_ERR_UNKNOWN:
     */
    FU_DFU_STATUS_ERR_UNKNOWN,
    /**
     * FU_DFU_STATUS_ERR_STALLDPKT:
     */
    FU_DFU_STATUS_ERR_STALLDPKT,
}  FuDfuStatus;
#define FU_DFU_STATUS_LAST 16
const gchar *fu_dfu_status_to_string(FuDfuStatus val) G_GNUC_CONST;
/**
 * FuDfuState:
 */
typedef enum {
    /**
     * FU_DFU_STATE_APP_IDLE:
     */
    FU_DFU_STATE_APP_IDLE,
    /**
     * FU_DFU_STATE_APP_DETACH:
     */
    FU_DFU_STATE_APP_DETACH,
    /**
     * FU_DFU_STATE_DFU_IDLE:
     */
    FU_DFU_STATE_DFU_IDLE,
    /**
     * FU_DFU_STATE_DFU_DNLOAD_SYNC:
     */
    FU_DFU_STATE_DFU_DNLOAD_SYNC,
    /**
     * FU_DFU_STATE_DFU_DNBUSY:
     */
    FU_DFU_STATE_DFU_DNBUSY,
    /**
     * FU_DFU_STATE_DFU_DNLOAD_IDLE:
     */
    FU_DFU_STATE_DFU_DNLOAD_IDLE,
    /**
     * FU_DFU_STATE_DFU_MANIFEST_SYNC:
     */
    FU_DFU_STATE_DFU_MANIFEST_SYNC,
    /**
     * FU_DFU_STATE_DFU_MANIFEST:
     */
    FU_DFU_STATE_DFU_MANIFEST,
    /**
     * FU_DFU_STATE_DFU_MANIFEST_WAIT_RESET:
     */
    FU_DFU_STATE_DFU_MANIFEST_WAIT_RESET,
    /**
     * FU_DFU_STATE_DFU_UPLOAD_IDLE:
     */
    FU_DFU_STATE_DFU_UPLOAD_IDLE,
    /**
     * FU_DFU_STATE_DFU_ERROR:
     */
    FU_DFU_STATE_DFU_ERROR,
}  FuDfuState;
#define FU_DFU_STATE_LAST 11
const gchar *fu_dfu_state_to_string(FuDfuState val) G_GNUC_CONST;
/**
 * FuDfuSectorCap:
 */
typedef enum {
    /**
     * FU_DFU_SECTOR_CAP_NONE:
     *
     * No operations possible
     */
    FU_DFU_SECTOR_CAP_NONE = 0,
    /**
     * FU_DFU_SECTOR_CAP_READABLE:
     */
    FU_DFU_SECTOR_CAP_READABLE = 1 << 0,
    /**
     * FU_DFU_SECTOR_CAP_WRITABLE:
     */
    FU_DFU_SECTOR_CAP_WRITABLE = 1 << 1,
    /**
     * FU_DFU_SECTOR_CAP_ERASABLE:
     */
    FU_DFU_SECTOR_CAP_ERASABLE = 1 << 2,
} G_GNUC_FLAG_ENUM FuDfuSectorCap;
gchar *fu_dfu_sector_cap_to_string(FuDfuSectorCap val) G_GNUC_CONST;
/**
 * FuDfuAvrCmd:
 *
 * ATMEL AVR version of DFU: http://www.atmel.com/Images/doc7618.pdf
 */
typedef enum {
    /**
     * FU_DFU_AVR_CMD_PROG_START:
     */
    FU_DFU_AVR_CMD_PROG_START = 0x01,
    /**
     * FU_DFU_AVR_CMD_DISPLAY_DATA:
     */
    FU_DFU_AVR_CMD_DISPLAY_DATA = 0x03,
    /**
     * FU_DFU_AVR_CMD_WRITE_COMMAND:
     */
    FU_DFU_AVR_CMD_WRITE_COMMAND = 0x04,
    /**
     * FU_DFU_AVR_CMD_READ_COMMAND:
     */
    FU_DFU_AVR_CMD_READ_COMMAND = 0x05,
    /**
     * FU_DFU_AVR_CMD_CHANGE_BASE_ADDR:
     */
    FU_DFU_AVR_CMD_CHANGE_BASE_ADDR = 0x06,
}  FuDfuAvrCmd;
/**
 * FuDfuAvr32MemoryUnit:
 */
typedef enum {
    /**
     * FU_DFU_AVR32_MEMORY_UNIT_FLASH:
     */
    FU_DFU_AVR32_MEMORY_UNIT_FLASH,
    /**
     * FU_DFU_AVR32_MEMORY_UNIT_EEPROM:
     */
    FU_DFU_AVR32_MEMORY_UNIT_EEPROM,
    /**
     * FU_DFU_AVR32_MEMORY_UNIT_SECURITY:
     */
    FU_DFU_AVR32_MEMORY_UNIT_SECURITY,
    /**
     * FU_DFU_AVR32_MEMORY_UNIT_CONFIGURATION:
     */
    FU_DFU_AVR32_MEMORY_UNIT_CONFIGURATION,
    /**
     * FU_DFU_AVR32_MEMORY_UNIT_BOOTLOADER:
     */
    FU_DFU_AVR32_MEMORY_UNIT_BOOTLOADER,
    /**
     * FU_DFU_AVR32_MEMORY_UNIT_SIGNATURE:
     */
    FU_DFU_AVR32_MEMORY_UNIT_SIGNATURE,
    /**
     * FU_DFU_AVR32_MEMORY_UNIT_USER:
     */
    FU_DFU_AVR32_MEMORY_UNIT_USER,
}  FuDfuAvr32MemoryUnit;
#define FU_DFU_AVR32_MEMORY_UNIT_LAST 7
/**
 * FuDfuAvr32Group:
 */
typedef enum {
    /**
     * FU_DFU_AVR32_GROUP_DOWNLOAD:
     */
    FU_DFU_AVR32_GROUP_DOWNLOAD = 0x01,
    /**
     * FU_DFU_AVR32_GROUP_UPLOAD:
     */
    FU_DFU_AVR32_GROUP_UPLOAD = 0x03,
    /**
     * FU_DFU_AVR32_GROUP_EXEC:
     */
    FU_DFU_AVR32_GROUP_EXEC = 0x04,
    /**
     * FU_DFU_AVR32_GROUP_SELECT:
     */
    FU_DFU_AVR32_GROUP_SELECT = 0x06,
}  FuDfuAvr32Group;
