/**
 * @brief           PGP Primitive Header
 * @author          AXELL CORPORATION
 * @description     PGP Primitive Layer.
 * @note            none
 * @history         2017_02_22  初版
 * @history         2017_10_26  Ver2.0
*/
/* DOM-IGNORE-BEGIN */
/*
 * This program was created by AXELL CORPORATION.
 * Copyright (C) 2017 AXELL CORPORATION, all rights reserved.
 */

#ifndef PGPPRM_H
#define PGPPRM_H
/* DOM-IGNORE-END */

#include <stdint.h>

#ifdef __cplusplus
extern "C" {
#endif

/** パイプラインの最大数 */
#define AG903_PGP_PRM_MAX_PIPELINE        (6)

/** VRAM入力ポートの最大数 */
#define AG903_PGP_PRM_MAX_VRAMI           (4)

/** 濃度変換テーブルの最大数 */
#define AG903_PGP_PRM_MAX_DGCLUT          (2)

/** PGPnSTATEレジスタパラメータ */
typedef struct _PGPPrmParamPGPnSTATE {
	uint32_t blank;                     /** BLANKフィールド値  */
	uint32_t vrmacc;                    /** VRMACCフィールド値 */
	uint32_t queue;                     /** QUEUEフィールド値  */
	uint32_t sst;                       /** SSTフィールド値    */
	uint32_t st;                        /** STフィールド値     */
}PGPPrmParamPGPnSTATE;

/** PGPnINTENレジスタパラメータ */
typedef struct _PGPPrmParamPGPnINTEN {
	uint32_t nd;                        /** NDフィールド値      */
	uint32_t voicpl;                    /** VOICPLフィールド値  */
	uint32_t vooflw;                    /** VOOFLWフィールド値  */
	uint32_t ifcofs;                    /** IFCOFSフィールド値  */
	uint32_t ifcofm;                    /** IFCOFMフィールド値  */
	uint32_t lblcrpt;                   /** LBLCRPTフィールド値 */
	uint32_t lblcpl;                    /** LBLCPLフィールド値  */
	uint32_t hgmicpl;                   /** HGMICPLフィールド値 */
	uint32_t hgmcpl;                    /** HGMCPLフィールド値  */
	uint32_t vsynco;                    /** VSYNCOフィールド値  */
	uint32_t vlineo;                    /** VLINEOフィールド値  */
	uint32_t vsynci;                    /** VSYNCIフィールド値  */
	uint32_t vlinei;                    /** VLINEIフィールド値  */
}PGPPrmParamPGPnINTEN;

/** PGPnINTSTATレジスタパラメータ */
typedef struct _PGPPrmParamPGPnINTSTAT {
	uint32_t nd;                        /** NDフィールド値      */
	uint32_t voicpl;                    /** VOICPLフィールド値  */
	uint32_t vooflw;                    /** VOOFLWフィールド値  */
	uint32_t ifcofs;                    /** IFCOFSフィールド値  */
	uint32_t ifcofm;                    /** IFCOFMフィールド値  */
	uint32_t lblcrpt;                   /** LBLCRPTフィールド値 */
	uint32_t lblcpl;                    /** LBLCPLフィールド値  */
	uint32_t hgmicpl;                   /** HGMICPLフィールド値 */
	uint32_t hgmcpl;                    /** HGMCPLフィールド値  */
	uint32_t vsynco;                    /** VSYNCOフィールド値  */
	uint32_t vlineo;                    /** VLINEOフィールド値  */
	uint32_t vsynci;                    /** VSYNCIフィールド値  */
	uint32_t vlinei;                    /** VLINEIフィールド値  */
}PGPPrmParamPGPnINTSTAT;

/** PGPnINTCLRレジスタパラメータ */
typedef struct _PGPPrmParamPGPnINTCLR {
	uint32_t nd;                        /** NDフィールド値      */
	uint32_t voicpl;                    /** VOICPLフィールド値  */
	uint32_t vooflw;                    /** VOOFLWフィールド値  */
	uint32_t ifcofs;                    /** IFCOFSフィールド値  */
	uint32_t ifcofm;                    /** IFCOFMフィールド値  */
	uint32_t lblcrpt;                   /** LBLCRPTフィールド値 */
	uint32_t lblcpl;                    /** LBLCPLフィールド値  */
	uint32_t hgmicpl;                   /** HGMICPLフィールド値 */
	uint32_t hgmcpl;                    /** HGMCPLフィールド値  */
	uint32_t vsynco;                    /** VSYNCOフィールド値  */
	uint32_t vlineo;                    /** VLINEOフィールド値  */
	uint32_t vsynci;                    /** VSYNCIフィールド値  */
	uint32_t vlinei;                    /** VLINEIフィールド値  */
}PGPPrmParamPGPnINTCLR;

/** PGPnTRGENレジスタパラメータ */
typedef struct _PGPPrmParamPGPnTRGEN {
	uint32_t vsynco;                    /** VSYNCOフィールド値 */
	uint32_t vlineo;                    /** VLINEOフィールド値 */
	uint32_t vsynci;                    /** VSYNCIフィールド値 */
	uint32_t vlinei;                    /** VLINEIフィールド値 */
}PGPPrmParamPGPnTRGEN;

/** PGPnINCTRLレジスタパラメータ */
typedef struct _PGPPrmParamPGPnINCTRL {
	uint32_t hdly;                      /** HDLYフィールド   */
	uint32_t md;                        /** MDフィールド値   */
	uint32_t tick;                      /** TICKフィールド値 */
	uint32_t trg;                       /** TRGフィールド値  */
	uint32_t sel;                       /** SELフィールド値  */
	uint32_t fmt;                       /** FMTフィールド値  */
}PGPPrmParamPGPnINCTRL;

/** PGPnFUNCCTRLレジスタパラメータ */
typedef struct _PGPPrmParamPGPnFUNCCTRL {
	uint32_t out;                       /** OUTフィールド値    */
	uint32_t ifcodr;                    /** IFCODRフィールド値 */
	uint32_t ifc;                       /** IFCフィールド値    */
	uint32_t thr;                       /** THRフィールド値    */
	uint32_t dgc;                       /** DGCフィールド値    */
	uint32_t hsv1;                      /** HSV1フィールド値   */
	uint32_t spf;                       /** SPFフィールド値    */
	uint32_t scale;                     /** SCALEフィールド値  */
	uint32_t csc1;                      /** CSC1フィールド値   */
	uint32_t nrf;                       /** NRFフィールド値    */
}PGPPrmParamPGPnFUNCCTRL;
/** PGPnPOSレジスタパラメータ */
typedef struct _PGPPrmParamPGPnPOS {
	uint32_t epos;                      /** EPOSフィールド値 */
	uint32_t opos;                      /** OPOSフィールド値 */
	uint32_t scan;                      /** SCANフィールド値 */
	uint32_t vpos;                      /** VPOSフィールド値 */
	uint32_t hpos;                      /** HPOSフィールド値 */
}PGPPrmParamPGPnPOS;

/** PGPnOUTCTRL0レジスタパラメータ */
typedef struct _PGPPrmParamPGPnOUTCTRL0 {
	uint32_t pad;                       /** PADフィールド値   */
	uint32_t limit;                     /** LIMITフィールド値 */
	uint32_t fai;                       /** FAIフィールド値   */
	uint32_t dth;                       /** DTHフィールド値   */
	uint32_t bmu;                       /** BMUフィールド値   */
	uint32_t scan;                      /** SCANフィールド値  */
	uint32_t dim;                       /** DIMフィールド値   */
	uint32_t swapw;                     /** SWAPWフィールド値 */
	uint32_t swaph;                     /** SWAPHフィールド値 */
	uint32_t swap4;                     /** SWAP4フィールド値 */
	uint32_t swap1;                     /** SWAP1フィールド値 */
	uint32_t md;                        /** MDフィールド値    */
	uint32_t fmt;                       /** FMTフィールド値   */
}PGPPrmParamPGPnOUTCTRL0;

/** PGPnSCCTRLレジスタパラメータ */
typedef struct _PGPPrmParamPGPnSCCTRL {
	uint32_t limit;                     /** LIMITフィールド値 */
	uint32_t mtd;                       /** MTDフィールド値   */
	uint32_t nmrv;                      /** NMRVフィールド値  */
	uint32_t dnmv;                      /** DNMVフィールド値  */
	uint32_t nmrh;                      /** NMRHフィールド値  */
	uint32_t dnmh;                      /** DNMHフィールド値  */
}PGPPrmParamPGPnSCCTRL;

/** PGPnSPFCTRLレジスタパラメータ */
typedef struct _PGPPrmParamPGPnSPFCTRL {
	uint32_t sft;                       /** SFTフィールド値 */
	uint32_t bc;                        /** BCフィールド値  */
	uint32_t r;                         /** Rフィールド値   */
	uint32_t g;                         /** Gフィールド値   */
	uint32_t b;                         /** Bフィールド値   */
}PGPPrmParamPGPnSPFCTRL;

/** PGPnHGMCTRLレジスタパラメータ */
typedef struct _PGPPrmParamPGPnHGMCTRL {
	uint32_t inv;                       /** INVフィールド値  */
	uint32_t bmu;                       /** BMUフィールド値  */
	uint32_t exc;                       /** EXCフィールド値  */
	uint32_t thr;                       /** THRフィールド値  */
	uint32_t sft;                       /** SFTフィールド値  */
	uint32_t vinc;                      /** VINCフィールド値 */
	uint32_t hinc;                      /** HINCフィールド値 */
}PGPPrmParamPGPnHGMCTRL;

/** PGPnHGMSTATレジスタパラメータ */
typedef struct _PGPPrmParamPGPnHGMSTAT {
	uint32_t init;                      /** INITフィールド値   */
	uint32_t vrmacc;                    /** VRMACCフィールド値 */
	uint32_t act;                       /** ACTフィールド値    */
	uint32_t queue;                     /** QUEUEフィールド値  */
	uint32_t cmd;                       /** CMDフィールド値    */
}PGPPrmParamPGPnHGMSTAT;

/** PGPnTHRCTRLレジスタパラメータ */
typedef struct _PGPPrmParamPGPnTHRCTRL {
	uint32_t limit;                     /** LIMITフィールド値  */
	uint32_t spf1;                      /** SPF1フィールド値   */
	uint32_t msk;                       /** MSKフィールド値    */
	uint32_t csc2;                      /** CSC2フィールド値   */
	uint32_t hsv2;                      /** HSV2フィールド値   */
	uint32_t thr8;                      /** THR8フィールド値   */
	uint32_t outsel;                    /** OUTSELフィールド値 */
	uint32_t c8sel;                     /** C8SELフィールド値  */
}PGPPrmParamPGPnTHRCTRL;

/** PGPnMSK0PRM1レジスタパラメータ */
typedef struct _PGPPrmParamPGPnMSK0PRM1 {
	uint32_t hmax;                      /** HMAXフィールド値 */
	uint32_t hmin;                      /** HMINフィールド値 */
	uint32_t lmax;                      /** LMAXフィールド値 */
	uint32_t lmin;                      /** LMINフィールド値 */
}PGPPrmParamPGPnMSK0PRM1;

/** PGPnMSK1PRM1レジスタパラメータ */
typedef struct _PGPPrmParamPGPnMSK1PRM1 {
	uint32_t hmax;                      /** HMAXフィールド値 */
	uint32_t hmin;                      /** HMINフィールド値 */
	uint32_t lmax;                      /** LMAXフィールド値 */
	uint32_t lmin;                      /** LMINフィールド値 */
}PGPPrmParamPGPnMSK1PRM1;

/** PGPnMSK2PRM1レジスタパラメータ */
typedef struct _PGPPrmParamPGPnMSK2PRM1 {
	uint32_t hmax;                      /** HMAXフィールド値 */
	uint32_t hmin;                      /** HMINフィールド値 */
	uint32_t lmax;                      /** LMAXフィールド値 */
	uint32_t lmin;                      /** LMINフィールド値 */
}PGPPrmParamPGPnMSK2PRM1;

/** PGPnTHR8PRM0レジスタパラメータ */
typedef struct _PGPPrmParamPGPnTHR8PRM0 {
	uint32_t type;                      /** TYPEフィールド値   */
	uint32_t maxval;                    /** MAXVALフィールド値 */
	uint32_t maxthr;                    /** MAXTHRフィールド値 */
	uint32_t minthr;                    /** MINTHRフィールド値 */
}PGPPrmParamPGPnTHR8PRM0;

/** PGPnTHR8PRM1レジスタパラメータ */
typedef struct _PGPPrmParamPGPnTHR8PRM1 {
	uint32_t type;                      /** TYPEフィールド値   */
	uint32_t maxval;                    /** MAXVALフィールド値 */
	uint32_t maxthr;                    /** MAXTHRフィールド値 */
	uint32_t minthr;                    /** MINTHRフィールド値 */
}PGPPrmParamPGPnTHR8PRM1;

/** PGPnTHR8PRM2レジスタパラメータ */
typedef struct _PGPPrmParamPGPnTHR8PRM2 {
	uint32_t type;                      /** TYPEフィールド値   */
	uint32_t maxval;                    /** MAXVALフィールド値 */
	uint32_t maxthr;                    /** MAXTHRフィールド値 */
	uint32_t minthr;                    /** MINTHRフィールド値 */
}PGPPrmParamPGPnTHR8PRM2;

/** PGPnTHR1PRM1レジスタパラメータ */
typedef struct _PGPPrmParamPGPnTHR1PRM1 {
	uint32_t hmax;                      /** HMAXフィールド値 */
	uint32_t hmin;                      /** HMINフィールド値 */
	uint32_t lmax;                      /** LMAXフィールド値 */
	uint32_t lmin;                      /** LMINフィールド値 */
}PGPPrmParamPGPnTHR1PRM1;

/** PGPnSPF1PRM0レジスタパラメータ */
typedef struct _PGPPrmParamPGPnSPF1PRM0 {
	uint32_t h10;                       /** H10フィールド値 */
	uint32_t h00;                       /** H00フィールド値 */
	uint32_t hm0;                       /** HM0フィールド値 */
	uint32_t h1m;                       /** H1Mフィールド値 */
	uint32_t h0m;                       /** H0Mフィールド値 */
	uint32_t hmm;                       /** HMMフィールド値 */
}PGPPrmParamPGPnSPF1PRM0;

/** PGPnSPF1PRM1レジスタパラメータ */
typedef struct _PGPPrmParamPGPnSPF1PRM1 {
	uint32_t thr;                       /** THRフィールド値 */
	uint32_t h11;                       /** H11フィールド値 */
	uint32_t h01;                       /** H01フィールド値 */
	uint32_t hm1;                       /** HM1フィールド値 */
}PGPPrmParamPGPnSPF1PRM1;

/** PGPnLBLCTRLレジスタパラメータ */
typedef struct _PGPPrmParamPGPnLBLCTRL {
	uint32_t vld;                       /** VLDフィールド値   */
	uint32_t inv;                       /** INVフィールド値   */
	uint32_t cnct;                      /** CNCTフィールド値  */
	uint32_t bmu;                       /** BMUフィールド値   */
	uint32_t flthr;                     /** FLTHRフィールド値 */
	uint32_t maxid;                     /** MAXIDフィールド値 */
}PGPPrmParamPGPnLBLCTRL;

/** PGPnLBLSTATレジスタパラメータ */
typedef struct _PGPPrmParamPGPnLBLSTAT {
	uint32_t l_id;                      /** IDフィールド値     */
	uint32_t vrmacc;                    /** VRMACCフィールド値 */
	uint32_t act;                       /** ACTフィールド値    */
	uint32_t queue;                     /** QUEUEフィールド値  */
	uint32_t cmd;                       /** CMDフィールド値    */
}PGPPrmParamPGPnLBLSTAT;

/** PGPnIFCCTRLレジスタパラメータ */
typedef struct _PGPPrmParamPGPnIFCCTRL {
	uint32_t scan;                      /** SCANフィールド値  */
	uint32_t limit;                     /** LIMITフィールド値 */
	uint32_t src;                       /** SRCフィールド値   */
	uint32_t op;                        /** OPフィールド値    */
	uint32_t sft1;                      /** SFT1フィールド値  */
	uint32_t sft0;                      /** SFT0フィールド値  */
}PGPPrmParamPGPnIFCCTRL;

/** PGPVInCTRL0レジスタパラメータ */
typedef struct _PGPPrmParamPGPVInCTRL0 {
	uint32_t fai;                       /** FAIフィールド値   */
	uint32_t bmu;                       /** BMUフィールド値   */
	uint32_t scan;                      /** SCANフィールド値  */
	uint32_t dim;                       /** DIMフィールド値   */
	uint32_t swapw;                     /** SWAPWフィールド値 */
	uint32_t swaph;                     /** SWAPHフィールド値 */
	uint32_t swap4;                     /** SWAP4フィールド値 */
	uint32_t swap1;                     /** SWAP1フィールド値 */
	uint32_t md;                        /** MDフィールド値    */
	uint32_t fmt;                       /** FMTフィールド値   */
}PGPPrmParamPGPVInCTRL0;

/** PGPVInVPRM0レジスタパラメータ */
typedef struct _PGPPrmParamPGPVInVPRM0 {
	uint32_t ebp;                       /** EBPフィールド値 */
	uint32_t efp;                       /** EFPフィールド値 */
	uint32_t obp;                       /** OBPフィールド値 */
	uint32_t ofp;                       /** OFPフィールド値 */
	uint32_t vpw;                       /** VPWフィールド値 */
}PGPPrmParamPGPVInVPRM0;


void AG903_PgpPrmSetPGPnCMD(uint32_t id, uint32_t cmd);
void AG903_PgpPrmGetPGPnSTATE(uint32_t id, PGPPrmParamPGPnSTATE *state);
void AG903_PgpPrmSetPGPnINTCTRLI(uint32_t id, uint32_t field, uint32_t fcnt, uint32_t line);
void AG903_PgpPrmGetPGPnINTCTRLI(uint32_t id, uint32_t *field, uint32_t *fcnt, uint32_t *line);
void AG903_PgpPrmSetPGPnINTCTRLO(uint32_t id, uint32_t field, uint32_t fcnt, uint32_t line);
void AG903_PgpPrmGetPGPnINTCTRLO(uint32_t id, uint32_t *field, uint32_t *fcnt, uint32_t *line);
void AG903_PgpPrmSetPGPnINTEN(uint32_t id, PGPPrmParamPGPnINTEN *inten);
void AG903_PgpPrmGetPGPnINTEN(uint32_t id, PGPPrmParamPGPnINTEN *inten);
void AG903_PgpPrmGetPGPnINTSTAT(uint32_t id, PGPPrmParamPGPnINTSTAT *stat);
void AG903_PgpPrmSetPGPnINTCLR(uint32_t id, PGPPrmParamPGPnINTCLR *clr);
void AG903_PgpPrmSetPGPnTRGCTRLI(uint32_t id, uint32_t field, uint32_t fcnt, uint32_t line);
void AG903_PgpPrmGetPGPnTRGCTRLI(uint32_t id, uint32_t *field, uint32_t *fcnt, uint32_t *line);
void AG903_PgpPrmSetPGPnTRGCTRLO(uint32_t id, uint32_t field, uint32_t fcnt, uint32_t line);
void AG903_PgpPrmGetPGPnTRGCTRLO(uint32_t id, uint32_t *field, uint32_t *fcnt, uint32_t *line);
void AG903_PgpPrmSetPGPnTRGEN(uint32_t id, PGPPrmParamPGPnTRGEN *trgen);
void AG903_PgpPrmGetPGPnTRGEN(uint32_t id, PGPPrmParamPGPnTRGEN *trgen);
void AG903_PgpPrmSetPGPnINCTRL(uint32_t id, PGPPrmParamPGPnINCTRL *inctrl);
void AG903_PgpPrmGetPGPnINCTRL(uint32_t id, PGPPrmParamPGPnINCTRL *inctrl);
void AG903_PgpPrmSetPGPnFUNCCTRL(uint32_t id, PGPPrmParamPGPnFUNCCTRL *funcctrl);
void AG903_PgpPrmGetPGPnFUNCCTRL(uint32_t id, PGPPrmParamPGPnFUNCCTRL *funcctrl);
void AG903_PgpPrmSetPGPnSIZE(uint32_t id, uint32_t vsize, uint32_t hsize);
void AG903_PgpPrmGetPGPnSIZE(uint32_t id, uint32_t *vsize, uint32_t *hsize);
void AG903_PgpPrmSetPGPnPOS(uint32_t id, PGPPrmParamPGPnPOS *pos);
void AG903_PgpPrmGetPGPnPOS(uint32_t id, PGPPrmParamPGPnPOS *pos);
void AG903_PgpPrmSetPGPnOUTCTRL0(uint32_t id, PGPPrmParamPGPnOUTCTRL0 *outctrl0);
void AG903_PgpPrmGetPGPnOUTCTRL0(uint32_t id, PGPPrmParamPGPnOUTCTRL0 *outctrl0);
void AG903_PgpPrmSetPGPnOUTCTRL1(uint32_t id, uint32_t re, uint32_t ge, uint32_t be);
void AG903_PgpPrmGetPGPnOUTCTRL1(uint32_t id, uint32_t *re, uint32_t *ge, uint32_t *be);
void AG903_PgpPrmSetPGPnOUTBASE(uint32_t id, uint32_t adr);
void AG903_PgpPrmGetPGPnOUTBASE(uint32_t id, uint32_t *adr);
void AG903_PgpPrmSetPGPnOUTHSIZE(uint32_t id, uint32_t hsize);
void AG903_PgpPrmGetPGPnOUTHSIZE(uint32_t id, uint32_t *hsize);
void AG903_PgpPrmGetPGPnFAIVAL0(uint32_t id, uint32_t *tmstamp);
void AG903_PgpPrmGetPGPnFAIVAL1(uint32_t id, uint32_t *field, uint32_t *port, uint32_t *fnum);
void AG903_PgpPrmSetPGPnIPCPRM(uint32_t id, uint32_t limit, uint32_t blky, uint32_t blkc);
void AG903_PgpPrmGetPGPnIPCPRM(uint32_t id, uint32_t *limit, uint32_t *blky, uint32_t *blkc);
void AG903_PgpPrmSetPGPnCSC1CTRL(uint32_t id, uint32_t limit, uint32_t sft);
void AG903_PgpPrmGetPGPnCSC1CTRL(uint32_t id, uint32_t *limit, uint32_t *sft);
void AG903_PgpPrmSetPGPnCSC1PRM0(uint32_t id, uint32_t m12, uint32_t m11);
void AG903_PgpPrmGetPGPnCSC1PRM0(uint32_t id, uint32_t *m12, uint32_t *m11);
void AG903_PgpPrmSetPGPnCSC1PRM1(uint32_t id, uint32_t m13);
void AG903_PgpPrmGetPGPnCSC1PRM1(uint32_t id, uint32_t *m13);
void AG903_PgpPrmSetPGPnCSC1PRM2(uint32_t id, uint32_t m14);
void AG903_PgpPrmGetPGPnCSC1PRM2(uint32_t id, uint32_t *m14);
void AG903_PgpPrmSetPGPnCSC1PRM3(uint32_t id, uint32_t m22, uint32_t m21);
void AG903_PgpPrmGetPGPnCSC1PRM3(uint32_t id, uint32_t *m22, uint32_t *m21);
void AG903_PgpPrmSetPGPnCSC1PRM4(uint32_t id, uint32_t m23);
void AG903_PgpPrmGetPGPnCSC1PRM4(uint32_t id, uint32_t *m23);
void AG903_PgpPrmSetPGPnCSC1PRM5(uint32_t id, uint32_t m24);
void AG903_PgpPrmGetPGPnCSC1PRM5(uint32_t id, uint32_t *m24);
void AG903_PgpPrmSetPGPnCSC1PRM6(uint32_t id, uint32_t m32, uint32_t m31);
void AG903_PgpPrmGetPGPnCSC1PRM6(uint32_t id, uint32_t *m32, uint32_t *m31);
void AG903_PgpPrmSetPGPnCSC1PRM7(uint32_t id, uint32_t m33);
void AG903_PgpPrmGetPGPnCSC1PRM7(uint32_t id, uint32_t *m33);
void AG903_PgpPrmSetPGPnCSC1PRM8(uint32_t id, uint32_t m34);
void AG903_PgpPrmGetPGPnCSC1PRM8(uint32_t id, uint32_t *m34);
void AG903_PgpPrmSetPGPnSCCTRL(uint32_t id, PGPPrmParamPGPnSCCTRL *scctrl);
void AG903_PgpPrmGetPGPnSCCTRL(uint32_t id, PGPPrmParamPGPnSCCTRL *scctrl);
void AG903_PgpPrmSetPGPnSPFCTRL(uint32_t id, PGPPrmParamPGPnSPFCTRL *spfctrl);
void AG903_PgpPrmGetPGPnSPFCTRL(uint32_t id, PGPPrmParamPGPnSPFCTRL *spfctrl);
void AG903_PgpPrmSetPGPnSPFPRM0(uint32_t id, uint32_t h1m, uint32_t h0m, uint32_t hmm);
void AG903_PgpPrmGetPGPnSPFPRM0(uint32_t id, uint32_t *h1m, uint32_t *h0m, uint32_t *hmm);
void AG903_PgpPrmSetPGPnSPFPRM1(uint32_t id, uint32_t h10, uint32_t h00, uint32_t hm0);
void AG903_PgpPrmGetPGPnSPFPRM1(uint32_t id, uint32_t *h10, uint32_t *h00, uint32_t *hm0);
void AG903_PgpPrmSetPGPnSPFPRM2(uint32_t id, uint32_t h11, uint32_t h01, uint32_t hm1);
void AG903_PgpPrmGetPGPnSPFPRM2(uint32_t id, uint32_t *h11, uint32_t *h01, uint32_t *hm1);
void AG903_PgpPrmSetPGPnSPFPRM3(uint32_t id, uint32_t ofs);
void AG903_PgpPrmGetPGPnSPFPRM3(uint32_t id, uint32_t *ofs);
void AG903_PgpPrmSetPGPnHSV1CTRL(uint32_t id, uint32_t fmt);
void AG903_PgpPrmGetPGPnHSV1CTRL(uint32_t id, uint32_t *fmt);
void AG903_PgpPrmGetPGPnDGCSTAT(uint32_t id, uint32_t *queue);
void AG903_PgpPrmSetPGPnHGMCMD(uint32_t id, uint32_t cmd);
void AG903_PgpPrmSetPGPnHGMCTRL(uint32_t id, PGPPrmParamPGPnHGMCTRL *hgmctrl);
void AG903_PgpPrmGetPGPnHGMCTRL(uint32_t id, PGPPrmParamPGPnHGMCTRL *hgmctrl);
void AG903_PgpPrmSetPGPnHGMSIZE(uint32_t id, uint32_t vsize, uint32_t hsize);
void AG903_PgpPrmGetPGPnHGMSIZE(uint32_t id, uint32_t *vsize, uint32_t *hsize);
void AG903_PgpPrmSetPGPnHGMPOS(uint32_t id, uint32_t vpos, uint32_t hpos);
void AG903_PgpPrmGetPGPnHGMPOS(uint32_t id, uint32_t *vpos, uint32_t *hpos);
void AG903_PgpPrmSetPGPnHGMDST(uint32_t id, uint32_t adr);
void AG903_PgpPrmGetPGPnHGMDST(uint32_t id, uint32_t *adr);
void AG903_PgpPrmGetPGPnHGMMOD0(uint32_t id, uint32_t *bw, uint32_t *val, uint32_t *cnt);
void AG903_PgpPrmGetPGPnHGMRNG0(uint32_t id, uint32_t *maxval, uint32_t *minval);
void AG903_PgpPrmGetPGPnHGMMOD1(uint32_t id, uint32_t *bw, uint32_t *val, uint32_t *cnt);
void AG903_PgpPrmGetPGPnHGMRNG1(uint32_t id, uint32_t *maxval, uint32_t *minval);
void AG903_PgpPrmGetPGPnHGMMOD2(uint32_t id, uint32_t *bw, uint32_t *val, uint32_t *cnt);
void AG903_PgpPrmGetPGPnHGMRNG2(uint32_t id, uint32_t *maxval, uint32_t *minval);
void AG903_PgpPrmGetPGPnHGMSTAT(uint32_t id, PGPPrmParamPGPnHGMSTAT *stat);
void AG903_PgpPrmSetPGPnTHRCTRL(uint32_t id, PGPPrmParamPGPnTHRCTRL *thrctrl);
void AG903_PgpPrmGetPGPnTHRCTRL(uint32_t id, PGPPrmParamPGPnTHRCTRL *thrctrl);
void AG903_PgpPrmSetPGPnHSV2CTRL(uint32_t id, uint32_t fmt);
void AG903_PgpPrmGetPGPnHSV2CTRL(uint32_t id, uint32_t *fmt);
void AG903_PgpPrmSetPGPnCSC2CTRL(uint32_t id, uint32_t limit, uint32_t sft);
void AG903_PgpPrmGetPGPnCSC2CTRL(uint32_t id, uint32_t *limit, uint32_t *sft);
void AG903_PgpPrmSetPGPnCSC2PRM0(uint32_t id, uint32_t m12, uint32_t m11);
void AG903_PgpPrmGetPGPnCSC2PRM0(uint32_t id, uint32_t *m12, uint32_t *m11);
void AG903_PgpPrmSetPGPnCSC2PRM1(uint32_t id, uint32_t m13);
void AG903_PgpPrmGetPGPnCSC2PRM1(uint32_t id, uint32_t *m13);
void AG903_PgpPrmSetPGPnCSC2PRM2(uint32_t id, uint32_t m14);
void AG903_PgpPrmGetPGPnCSC2PRM2(uint32_t id, uint32_t *m14);
void AG903_PgpPrmSetPGPnCSC2PRM3(uint32_t id, uint32_t m22, uint32_t m21);
void AG903_PgpPrmGetPGPnCSC2PRM3(uint32_t id, uint32_t *m22, uint32_t *m21);
void AG903_PgpPrmSetPGPnCSC2PRM4(uint32_t id, uint32_t m23);
void AG903_PgpPrmGetPGPnCSC2PRM4(uint32_t id, uint32_t *m23);
void AG903_PgpPrmSetPGPnCSC2PRM5(uint32_t id, uint32_t m24);
void AG903_PgpPrmGetPGPnCSC2PRM5(uint32_t id, uint32_t *m24);
void AG903_PgpPrmSetPGPnCSC2PRM6(uint32_t id, uint32_t m32, uint32_t m31);
void AG903_PgpPrmGetPGPnCSC2PRM6(uint32_t id, uint32_t *m32, uint32_t *m31);
void AG903_PgpPrmSetPGPnCSC2PRM7(uint32_t id, uint32_t m33);
void AG903_PgpPrmGetPGPnCSC2PRM7(uint32_t id, uint32_t *m33);
void AG903_PgpPrmSetPGPnCSC2PRM8(uint32_t id, uint32_t m34);
void AG903_PgpPrmGetPGPnCSC2PRM8(uint32_t id, uint32_t *m34);
void AG903_PgpPrmSetPGPnMSK0PRM0(uint32_t id, uint32_t h, uint32_t l, uint32_t x);
void AG903_PgpPrmGetPGPnMSK0PRM0(uint32_t id, uint32_t *h, uint32_t *l, uint32_t *x);
void AG903_PgpPrmSetPGPnMSK0PRM1(uint32_t id, PGPPrmParamPGPnMSK0PRM1 *msk0prm1);
void AG903_PgpPrmGetPGPnMSK0PRM1(uint32_t id, PGPPrmParamPGPnMSK0PRM1 *msk0prm1);
void AG903_PgpPrmSetPGPnMSK1PRM0(uint32_t id, uint32_t h, uint32_t l, uint32_t x);
void AG903_PgpPrmGetPGPnMSK1PRM0(uint32_t id, uint32_t *h, uint32_t *l, uint32_t *x);
void AG903_PgpPrmSetPGPnMSK1PRM1(uint32_t id, PGPPrmParamPGPnMSK1PRM1 *msk1prm1);
void AG903_PgpPrmGetPGPnMSK1PRM1(uint32_t id, PGPPrmParamPGPnMSK1PRM1 *msk1prm1);
void AG903_PgpPrmSetPGPnMSK2PRM0(uint32_t id, uint32_t h, uint32_t l, uint32_t x);
void AG903_PgpPrmGetPGPnMSK2PRM0(uint32_t id, uint32_t *h, uint32_t *l, uint32_t *x);
void AG903_PgpPrmSetPGPnMSK2PRM1(uint32_t id, PGPPrmParamPGPnMSK2PRM1 *msk2prm1);
void AG903_PgpPrmGetPGPnMSK2PRM1(uint32_t id, PGPPrmParamPGPnMSK2PRM1 *msk2prm1);
void AG903_PgpPrmSetPGPnTHR8PRM0(uint32_t id, PGPPrmParamPGPnTHR8PRM0 *thr8prm0);
void AG903_PgpPrmGetPGPnTHR8PRM0(uint32_t id, PGPPrmParamPGPnTHR8PRM0 *thr8prm0);
void AG903_PgpPrmSetPGPnTHR8PRM1(uint32_t id, PGPPrmParamPGPnTHR8PRM1 *thr8prm1);
void AG903_PgpPrmGetPGPnTHR8PRM1(uint32_t id, PGPPrmParamPGPnTHR8PRM1 *thr8prm1);
void AG903_PgpPrmSetPGPnTHR8PRM2(uint32_t id, PGPPrmParamPGPnTHR8PRM2 *thr8prm2);
void AG903_PgpPrmGetPGPnTHR8PRM2(uint32_t id, PGPPrmParamPGPnTHR8PRM2 *thr8prm2);
void AG903_PgpPrmSetPGPnTHR1PRM0(uint32_t id, uint32_t h, uint32_t l, uint32_t x);
void AG903_PgpPrmGetPGPnTHR1PRM0(uint32_t id, uint32_t *h, uint32_t *l, uint32_t *x);
void AG903_PgpPrmSetPGPnTHR1PRM1(uint32_t id, PGPPrmParamPGPnTHR1PRM1 *thr1prm);
void AG903_PgpPrmGetPGPnTHR1PRM1(uint32_t id, PGPPrmParamPGPnTHR1PRM1 *thr1prm);
void AG903_PgpPrmSetPGPnSPF1PRM0(uint32_t id, PGPPrmParamPGPnSPF1PRM0 *spf1prm0);
void AG903_PgpPrmGetPGPnSPF1PRM0(uint32_t id, PGPPrmParamPGPnSPF1PRM0 *spf1prm0);
void AG903_PgpPrmSetPGPnSPF1PRM1(uint32_t id, PGPPrmParamPGPnSPF1PRM1 *spf1prm1);
void AG903_PgpPrmGetPGPnSPF1PRM1(uint32_t id, PGPPrmParamPGPnSPF1PRM1 *spf1prm1);
void AG903_PgpPrmGetPGPnTHR1CNT(uint32_t id, uint32_t *cnt);
void AG903_PgpPrmSetPGPnLBLCMD(uint32_t id, uint32_t cmd);
void AG903_PgpPrmSetPGPnLBLCTRL(uint32_t id, PGPPrmParamPGPnLBLCTRL *lblctrl);
void AG903_PgpPrmGetPGPnLBLCTRL(uint32_t id, PGPPrmParamPGPnLBLCTRL *lblctrl);
void AG903_PgpPrmSetPGPnLBLSIZE(uint32_t id, uint32_t vsize, uint32_t hsize);
void AG903_PgpPrmGetPGPnLBLSIZE(uint32_t id, uint32_t *vsize, uint32_t *hsize);
void AG903_PgpPrmSetPGPnLBLPOS(uint32_t id, uint32_t vpos, uint32_t hpos);
void AG903_PgpPrmGetPGPnLBLPOS(uint32_t id, uint32_t *vpos, uint32_t *hpos);
void AG903_PgpPrmSetPGPnLBLDST(uint32_t id, uint32_t adr);
void AG903_PgpPrmGetPGPnLBLDST(uint32_t id, uint32_t *adr);
void AG903_PgpPrmGetPGPnLBLSTAT(uint32_t id, PGPPrmParamPGPnLBLSTAT *lblstat);
void AG903_PgpPrmSetPGPnIFCCMD(uint32_t id, uint32_t cmd);
void AG903_PgpPrmSetPGPnIFCCTRL(uint32_t id, PGPPrmParamPGPnIFCCTRL *ifcctrl);
void AG903_PgpPrmGetPGPnIFCCTRL(uint32_t id, PGPPrmParamPGPnIFCCTRL *ifcctrl);
void AG903_PgpPrmSetPGPnIFCPRM(uint32_t id, uint32_t gain1, uint32_t gain0);
void AG903_PgpPrmGetPGPnIFCPRM(uint32_t id, uint32_t *gain1, uint32_t *gain0);
void AG903_PgpPrmSetPGPVInCMD(uint32_t id, uint32_t cmd);
void AG903_PgpPrmGetPGPVInSTATE(uint32_t id, uint32_t *vrmacc, uint32_t *queue, uint32_t *st);
void AG903_PgpPrmSetPGPVInCTRL0(uint32_t id, PGPPrmParamPGPVInCTRL0 *ctrl0);
void AG903_PgpPrmGetPGPVInCTRL0(uint32_t id, PGPPrmParamPGPVInCTRL0 *ctrl0);
void AG903_PgpPrmSetPGPVInCTRL1(uint32_t id, uint32_t div, uint32_t vld, uint32_t inv);
void AG903_PgpPrmGetPGPVInCTRL1(uint32_t id, uint32_t *div, uint32_t *vld, uint32_t *inv);
void AG903_PgpPrmSetPGPVInBASE(uint32_t id, uint32_t adr);
void AG903_PgpPrmGetPGPVInBASE(uint32_t id, uint32_t *adr);
void AG903_PgpPrmSetPGPVInHSIZE(uint32_t id, uint32_t hsize);
void AG903_PgpPrmGetPGPVInHSIZE(uint32_t id, uint32_t *hsize);
void AG903_PgpPrmSetPGPVInHPRM0(uint32_t id, uint32_t hpw);
void AG903_PgpPrmGetPGPVInHPRM0(uint32_t id, uint32_t *hpw);
void AG903_PgpPrmSetPGPVInHPRM1(uint32_t id, uint32_t hfp, uint32_t hbp);
void AG903_PgpPrmGetPGPVInHPRM1(uint32_t id, uint32_t *hfp, uint32_t *hbp);
void AG903_PgpPrmSetPGPVInVPRM0(uint32_t id, PGPPrmParamPGPVInVPRM0 *vprm0);
void AG903_PgpPrmGetPGPVInVPRM0(uint32_t id, PGPPrmParamPGPVInVPRM0 *vprm0);
void AG903_PgpPrmSetPGPVInVPRM1(uint32_t id, uint32_t vfp, uint32_t vbp);
void AG903_PgpPrmGetPGPVInVPRM1(uint32_t id, uint32_t *vfp, uint32_t *vbp);
void AG903_PgpPrmSetPGPVInSIZE(uint32_t id, uint32_t ovsize, uint32_t vsize, uint32_t hsize);
void AG903_PgpPrmGetPGPVInSIZE(uint32_t id, uint32_t *ovsize, uint32_t *vsize, uint32_t *hsize);
void AG903_PgpPrmSetPGPJPGOUTSEL(uint32_t en, uint32_t sel);
void AG903_PgpPrmGetPGPJPGOUTSEL(uint32_t *en, uint32_t *sel);
void AG903_PgpPrmSetPGPnDGCLUTB(uint32_t id, uint8_t blue[256]);
void AG903_PgpPrmGetPGPnDGCLUTB(uint32_t id, uint8_t *blue);
void AG903_PgpPrmSetPGPnDGCFLUTB(uint32_t id, uint8_t blue[256]);
void AG903_PgpPrmSetPGPnDGCLUTG(uint32_t id, uint8_t green[256]);
void AG903_PgpPrmGetPGPnDGCLUTG(uint32_t id, uint8_t *green);
void AG903_PgpPrmSetPGPnDGCFLUTG(uint32_t id, uint8_t green[256]);
void AG903_PgpPrmSetPGPnDGCLUTR(uint32_t id, uint8_t red[256]);
void AG903_PgpPrmGetPGPnDGCLUTR(uint32_t id, uint8_t *red);
void AG903_PgpPrmSetPGPnDGCFLUTR(uint32_t id, uint8_t red[256]);


#ifdef __cplusplus
}
#endif

#endif
