/* This file was auto-generated by scripts_decoder.py.
 * Any changes will be overwritten on regeneration
 */

/*
 * avrdude - A Downloader/Uploader for AVR device programmers
 * Copyright (C) 2024 MX682X
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 */


#ifndef pickit5_lut_h
#define pickit5_lut_h

#ifdef __cplusplus
  extern "C" {
#endif

struct avr_script_lut {
  const unsigned char *EnterProgMode;
         unsigned int  EnterProgMode_len;
  const unsigned char *EnterProgModeHvSp;
         unsigned int  EnterProgModeHvSp_len;
  const unsigned char *EnterProgModeHvSpRst;
         unsigned int  EnterProgModeHvSpRst_len;
  const unsigned char *EnterProgModeHvUpt;
         unsigned int  EnterProgModeHvUpt_len;
  const unsigned char *ExitProgMode;
         unsigned int  ExitProgMode_len;
  const unsigned char *SetSpeed;
         unsigned int  SetSpeed_len;
  const unsigned char *GetDeviceID;
         unsigned int  GetDeviceID_len;
  const unsigned char *EraseChip;
         unsigned int  EraseChip_len;
  const unsigned char *WriteProgmem;
         unsigned int  WriteProgmem_len;
  const unsigned char *ReadProgmem;
         unsigned int  ReadProgmem_len;
  const unsigned char *WriteDataEEmem;
         unsigned int  WriteDataEEmem_len;
  const unsigned char *ReadDataEEmem;
         unsigned int  ReadDataEEmem_len;
  const unsigned char *WriteCSreg;
         unsigned int  WriteCSreg_len;
  const unsigned char *ReadCSreg;
         unsigned int  ReadCSreg_len;
  const unsigned char *WriteMem8;
         unsigned int  WriteMem8_len;
  const unsigned char *ReadMem8;
         unsigned int  ReadMem8_len;
  const unsigned char *WriteConfigmem;
         unsigned int  WriteConfigmem_len;
  const unsigned char *WriteConfigmemFuse;
         unsigned int  WriteConfigmemFuse_len;
  const unsigned char *WriteConfigmemLock;
         unsigned int  WriteConfigmemLock_len;
  const unsigned char *ReadConfigmem;
         unsigned int  ReadConfigmem_len;
  const unsigned char *ReadConfigmemFuse;
         unsigned int  ReadConfigmemFuse_len;
  const unsigned char *ReadConfigmemLock;
         unsigned int  ReadConfigmemLock_len;
  const unsigned char *WriteIDmem;
         unsigned int  WriteIDmem_len;
  const unsigned char *ReadIDmem;
         unsigned int  ReadIDmem_len;
  const unsigned char *ReadSIB;
         unsigned int  ReadSIB_len;
  const unsigned char *switchtoISP;
         unsigned int  switchtoISP_len;
  const unsigned char *ReadCalibrationByte;
         unsigned int  ReadCalibrationByte_len;
  const unsigned char *WriteBootMem;
         unsigned int  WriteBootMem_len;
  const unsigned char *ReadBootMem;
         unsigned int  ReadBootMem_len;

};

typedef struct avr_script_lut SCRIPT;
const unsigned char *get_devid_script_by_nvm_ver(unsigned char version);
int get_pickit_dw_script(SCRIPT *scr, const char *partdesc);
int get_pickit_isp_script(SCRIPT *scr, const char *partdesc);
int get_pickit_jtag_script(SCRIPT *scr, const char *partdesc);
int get_pickit_updi_script(SCRIPT *scr, const char *partdesc);
int get_pickit_pdi_script(SCRIPT *scr, const char *partdesc);
int get_pickit_tpi_script(SCRIPT *scr, const char *partdesc);

#ifdef __cplusplus
}
#endif

#endif // pickit5_lut_h
