blob: 97bbfeb348d256b5f0fed78f7735b2afac0e2939 [file] [log] [blame]
/********************************************************************************
* Marvell GPL License Option
*
* If you received this File from Marvell, you may opt to use, redistribute and/or
* modify this File in accordance with the terms and conditions of the General
* Public License Version 2, June 1991 (the "GPL License"), a copy of which is
* available along with the File in the license.txt file or by writing to the Free
* Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 or
* on the worldwide web at http://www.gnu.org/licenses/gpl.txt.
*
* THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE IMPLIED
* WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY
* DISCLAIMED. The GPL License provides additional details about this warranty
* disclaimer.
******************************************************************************/
//////
/// don't edit! auto-generated by docc: Galois_FuncSpec.h
////////////////////////////////////////////////////////////
#ifndef Galois_FuncSpec_h
#define Galois_FuncSpec_h (){}
#include "ctypes.h"
#pragma pack(1)
#ifdef __cplusplus
extern "C" {
#endif
#ifndef _DOCC_H_BITOPS_
#define _DOCC_H_BITOPS_ (){}
#define _bSETMASK_(b) ((b)<32 ? (1<<((b)&31)) : 0)
#define _NSETMASK_(msb,lsb) (_bSETMASK_((msb)+1)-_bSETMASK_(lsb))
#define _bCLRMASK_(b) (~_bSETMASK_(b))
#define _NCLRMASK_(msb,lsb) (~_NSETMASK_(msb,lsb))
#define _BFGET_(r,msb,lsb) (_NSETMASK_((msb)-(lsb),0)&((r)>>(lsb)))
#define _BFSET_(r,msb,lsb,v) do{ (r)&=_NCLRMASK_(msb,lsb); (r)|=_NSETMASK_(msb,lsb)&((v)<<(lsb)); }while(0)
#endif
//////
///
/// $INTERFACE TCTX (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 PROP (P)
/// %unsigned 2 scan
/// : Prog 0x0
/// : Top 0x1
/// : Bottom 0x2
/// : WeavedFrm 0x3
/// ###
/// * Derived MB/half-MB progressive/interlace scan mode
/// ###
/// %unsigned 2 type
/// : Intra 0x0
/// : Forward 0x1
/// : Backward 0x2
/// : Biprediction 0x3
/// ###
/// * Derived 8x8 block motion type
/// ###
/// %unsigned 1 cbp
/// ###
/// * 0/1 for zero/non-zero block (N/A in non-H.264 adaptive frames)
/// ###
/// %unsigned 6 rBID
/// ###
/// * Reference buffer ID, last 1b indicates access mode:
/// * 0: frame/progressive or top field
/// * 1: bottom field
/// ###
/// : intraLuma8x8 0x3
/// : intraLuma4x4 0x2
/// : intraLuma16x16 0x1
/// ###
/// * For intra MB only, to specify luma prediction type
/// ###
/// %unsigned 5 refL
/// ###
/// * Syntax 'RefListIdx' directly decoded from bit stream (field information embedded)
/// ###
/// : ipVertical 0x0
/// : ipHorizontal 0x1
/// : ipDC 0x2
/// : ipDiagonalDownLeft 0x3
/// : ipDiagonalDownRight 0x4
/// : ipVerticalRight 0x5
/// : ipHorizontalDown 0x6
/// : ipVerticalLeft 0x7
/// : ipHorizontalUp 0x8
/// ###
/// * For intra MB only, to specify MxM prediction mode for luma blocks
/// ###
/// %unsigned 2 dctSel
/// : 8x8 0x0
/// : 8x4 0x1
/// : 4x8 0x2
/// : 4x4 0x3
/// ###
/// * Derived IDCT partition
/// ###
/// %unsigned 1 dctField
/// ###
/// * Non-H.264: 0/1 to use frame/field IDCT
/// ###
/// %unsigned 6 QP
/// ###
/// * Derived MB QP
/// * QPY for forward TCTX in HCTX, or
/// * QPU for backward TCTX in HCTX
/// ###
/// %unsigned 7 sliceID
/// ###
/// * Derived MB slice ID, or
/// * QPV for backward TCTX in HCTX
/// ###
/// @ 0x00004 MV (P)
/// %signed 16 x
/// ###
/// * Horizontal motion vector
/// ###
/// %signed 16 y
/// ###
/// * Vertical motion vector
/// ###
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 8B, bits: 64b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_TCTX
#define h_TCTX (){}
#define RA_TCTX_PROP 0x0000
#define BA_TCTX_PROP_scan 0x0000
#define B16TCTX_PROP_scan 0x0000
#define LSb32TCTX_PROP_scan 0
#define LSb16TCTX_PROP_scan 0
#define bTCTX_PROP_scan 2
#define MSK32TCTX_PROP_scan 0x00000003
#define TCTX_PROP_scan_Prog 0x0
#define TCTX_PROP_scan_Top 0x1
#define TCTX_PROP_scan_Bottom 0x2
#define TCTX_PROP_scan_WeavedFrm 0x3
#define BA_TCTX_PROP_type 0x0000
#define B16TCTX_PROP_type 0x0000
#define LSb32TCTX_PROP_type 2
#define LSb16TCTX_PROP_type 2
#define bTCTX_PROP_type 2
#define MSK32TCTX_PROP_type 0x0000000C
#define TCTX_PROP_type_Intra 0x0
#define TCTX_PROP_type_Forward 0x1
#define TCTX_PROP_type_Backward 0x2
#define TCTX_PROP_type_Biprediction 0x3
#define BA_TCTX_PROP_cbp 0x0000
#define B16TCTX_PROP_cbp 0x0000
#define LSb32TCTX_PROP_cbp 4
#define LSb16TCTX_PROP_cbp 4
#define bTCTX_PROP_cbp 1
#define MSK32TCTX_PROP_cbp 0x00000010
#define BA_TCTX_PROP_rBID 0x0000
#define B16TCTX_PROP_rBID 0x0000
#define LSb32TCTX_PROP_rBID 5
#define LSb16TCTX_PROP_rBID 5
#define bTCTX_PROP_rBID 6
#define MSK32TCTX_PROP_rBID 0x000007E0
#define TCTX_PROP_rBID_intraLuma8x8 0x3
#define TCTX_PROP_rBID_intraLuma4x4 0x2
#define TCTX_PROP_rBID_intraLuma16x16 0x1
#define BA_TCTX_PROP_refL 0x0001
#define B16TCTX_PROP_refL 0x0000
#define LSb32TCTX_PROP_refL 11
#define LSb16TCTX_PROP_refL 11
#define bTCTX_PROP_refL 5
#define MSK32TCTX_PROP_refL 0x0000F800
#define TCTX_PROP_refL_ipVertical 0x0
#define TCTX_PROP_refL_ipHorizontal 0x1
#define TCTX_PROP_refL_ipDC 0x2
#define TCTX_PROP_refL_ipDiagonalDownLeft 0x3
#define TCTX_PROP_refL_ipDiagonalDownRight 0x4
#define TCTX_PROP_refL_ipVerticalRight 0x5
#define TCTX_PROP_refL_ipHorizontalDown 0x6
#define TCTX_PROP_refL_ipVerticalLeft 0x7
#define TCTX_PROP_refL_ipHorizontalUp 0x8
#define BA_TCTX_PROP_dctSel 0x0002
#define B16TCTX_PROP_dctSel 0x0002
#define LSb32TCTX_PROP_dctSel 16
#define LSb16TCTX_PROP_dctSel 0
#define bTCTX_PROP_dctSel 2
#define MSK32TCTX_PROP_dctSel 0x00030000
#define TCTX_PROP_dctSel_8x8 0x0
#define TCTX_PROP_dctSel_8x4 0x1
#define TCTX_PROP_dctSel_4x8 0x2
#define TCTX_PROP_dctSel_4x4 0x3
#define BA_TCTX_PROP_dctField 0x0002
#define B16TCTX_PROP_dctField 0x0002
#define LSb32TCTX_PROP_dctField 18
#define LSb16TCTX_PROP_dctField 2
#define bTCTX_PROP_dctField 1
#define MSK32TCTX_PROP_dctField 0x00040000
#define BA_TCTX_PROP_QP 0x0002
#define B16TCTX_PROP_QP 0x0002
#define LSb32TCTX_PROP_QP 19
#define LSb16TCTX_PROP_QP 3
#define bTCTX_PROP_QP 6
#define MSK32TCTX_PROP_QP 0x01F80000
#define BA_TCTX_PROP_sliceID 0x0003
#define B16TCTX_PROP_sliceID 0x0002
#define LSb32TCTX_PROP_sliceID 25
#define LSb16TCTX_PROP_sliceID 9
#define bTCTX_PROP_sliceID 7
#define MSK32TCTX_PROP_sliceID 0xFE000000
///////////////////////////////////////////////////////////
#define RA_TCTX_MV 0x0004
#define BA_TCTX_MV_x 0x0004
#define B16TCTX_MV_x 0x0004
#define LSb32TCTX_MV_x 0
#define LSb16TCTX_MV_x 0
#define bTCTX_MV_x 16
#define MSK32TCTX_MV_x 0x0000FFFF
#define BA_TCTX_MV_y 0x0006
#define B16TCTX_MV_y 0x0006
#define LSb32TCTX_MV_y 16
#define LSb16TCTX_MV_y 0
#define bTCTX_MV_y 16
#define MSK32TCTX_MV_y 0xFFFF0000
///////////////////////////////////////////////////////////
typedef struct SIE_TCTX {
///////////////////////////////////////////////////////////
#define GET32TCTX_PROP_scan(r32) _BFGET_(r32, 1, 0)
#define SET32TCTX_PROP_scan(r32,v) _BFSET_(r32, 1, 0,v)
#define GET16TCTX_PROP_scan(r16) _BFGET_(r16, 1, 0)
#define SET16TCTX_PROP_scan(r16,v) _BFSET_(r16, 1, 0,v)
#define GET32TCTX_PROP_type(r32) _BFGET_(r32, 3, 2)
#define SET32TCTX_PROP_type(r32,v) _BFSET_(r32, 3, 2,v)
#define GET16TCTX_PROP_type(r16) _BFGET_(r16, 3, 2)
#define SET16TCTX_PROP_type(r16,v) _BFSET_(r16, 3, 2,v)
#define GET32TCTX_PROP_cbp(r32) _BFGET_(r32, 4, 4)
#define SET32TCTX_PROP_cbp(r32,v) _BFSET_(r32, 4, 4,v)
#define GET16TCTX_PROP_cbp(r16) _BFGET_(r16, 4, 4)
#define SET16TCTX_PROP_cbp(r16,v) _BFSET_(r16, 4, 4,v)
#define GET32TCTX_PROP_rBID(r32) _BFGET_(r32,10, 5)
#define SET32TCTX_PROP_rBID(r32,v) _BFSET_(r32,10, 5,v)
#define GET16TCTX_PROP_rBID(r16) _BFGET_(r16,10, 5)
#define SET16TCTX_PROP_rBID(r16,v) _BFSET_(r16,10, 5,v)
#define GET32TCTX_PROP_refL(r32) _BFGET_(r32,15,11)
#define SET32TCTX_PROP_refL(r32,v) _BFSET_(r32,15,11,v)
#define GET16TCTX_PROP_refL(r16) _BFGET_(r16,15,11)
#define SET16TCTX_PROP_refL(r16,v) _BFSET_(r16,15,11,v)
#define GET32TCTX_PROP_dctSel(r32) _BFGET_(r32,17,16)
#define SET32TCTX_PROP_dctSel(r32,v) _BFSET_(r32,17,16,v)
#define GET16TCTX_PROP_dctSel(r16) _BFGET_(r16, 1, 0)
#define SET16TCTX_PROP_dctSel(r16,v) _BFSET_(r16, 1, 0,v)
#define GET32TCTX_PROP_dctField(r32) _BFGET_(r32,18,18)
#define SET32TCTX_PROP_dctField(r32,v) _BFSET_(r32,18,18,v)
#define GET16TCTX_PROP_dctField(r16) _BFGET_(r16, 2, 2)
#define SET16TCTX_PROP_dctField(r16,v) _BFSET_(r16, 2, 2,v)
#define GET32TCTX_PROP_QP(r32) _BFGET_(r32,24,19)
#define SET32TCTX_PROP_QP(r32,v) _BFSET_(r32,24,19,v)
#define GET16TCTX_PROP_QP(r16) _BFGET_(r16, 8, 3)
#define SET16TCTX_PROP_QP(r16,v) _BFSET_(r16, 8, 3,v)
#define GET32TCTX_PROP_sliceID(r32) _BFGET_(r32,31,25)
#define SET32TCTX_PROP_sliceID(r32,v) _BFSET_(r32,31,25,v)
#define GET16TCTX_PROP_sliceID(r16) _BFGET_(r16,15, 9)
#define SET16TCTX_PROP_sliceID(r16,v) _BFSET_(r16,15, 9,v)
#define w32TCTX_PROP {\
UNSG32 uPROP_scan : 2;\
UNSG32 uPROP_type : 2;\
UNSG32 uPROP_cbp : 1;\
UNSG32 uPROP_rBID : 6;\
UNSG32 uPROP_refL : 5;\
UNSG32 uPROP_dctSel : 2;\
UNSG32 uPROP_dctField : 1;\
UNSG32 uPROP_QP : 6;\
UNSG32 uPROP_sliceID : 7;\
}
union { UNSG32 u32TCTX_PROP;
struct w32TCTX_PROP;
};
///////////////////////////////////////////////////////////
#define GET32TCTX_MV_x(r32) _BFGET_(r32,15, 0)
#define SET32TCTX_MV_x(r32,v) _BFSET_(r32,15, 0,v)
#define GET16TCTX_MV_x(r16) _BFGET_(r16,15, 0)
#define SET16TCTX_MV_x(r16,v) _BFSET_(r16,15, 0,v)
#define GET32TCTX_MV_y(r32) _BFGET_(r32,31,16)
#define SET32TCTX_MV_y(r32,v) _BFSET_(r32,31,16,v)
#define GET16TCTX_MV_y(r16) _BFGET_(r16,15, 0)
#define SET16TCTX_MV_y(r16,v) _BFSET_(r16,15, 0,v)
#define w32TCTX_MV {\
UNSG32 sMV_x : 16;\
UNSG32 sMV_y : 16;\
}
union { UNSG32 u32TCTX_MV;
struct w32TCTX_MV;
};
///////////////////////////////////////////////////////////
} SIE_TCTX;
typedef union T32TCTX_PROP
{ UNSG32 u32;
struct w32TCTX_PROP;
} T32TCTX_PROP;
typedef union T32TCTX_MV
{ UNSG32 u32;
struct w32TCTX_MV;
} T32TCTX_MV;
///////////////////////////////////////////////////////////
typedef union TTCTX_PROP
{ UNSG32 u32[1];
struct {
struct w32TCTX_PROP;
};
} TTCTX_PROP;
typedef union TTCTX_MV
{ UNSG32 u32[1];
struct {
struct w32TCTX_MV;
};
} TTCTX_MV;
///////////////////////////////////////////////////////////
SIGN32 TCTX_drvrd(SIE_TCTX *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 TCTX_drvwr(SIE_TCTX *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void TCTX_reset(SIE_TCTX *p);
SIGN32 TCTX_cmp (SIE_TCTX *p, SIE_TCTX *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define TCTX_check(p,pie,pfx,hLOG) TCTX_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define TCTX_print(p, pfx,hLOG) TCTX_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: TCTX
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE HCTXPB (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// # 0x00000 fore
/// $TCTX fore REG
/// ###
/// * Forward prediction
/// ###
/// @ 0x00008 (P)
/// # 0x00008 back
/// $TCTX back REG
/// ###
/// * Backward prediction
/// ###
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 16B, bits: 128b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_HCTXPB
#define h_HCTXPB (){}
#define RA_HCTXPB_fore 0x0000
///////////////////////////////////////////////////////////
#define RA_HCTXPB_back 0x0008
///////////////////////////////////////////////////////////
typedef struct SIE_HCTXPB {
///////////////////////////////////////////////////////////
SIE_TCTX ie_fore;
///////////////////////////////////////////////////////////
SIE_TCTX ie_back;
///////////////////////////////////////////////////////////
} SIE_HCTXPB;
///////////////////////////////////////////////////////////
SIGN32 HCTXPB_drvrd(SIE_HCTXPB *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 HCTXPB_drvwr(SIE_HCTXPB *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void HCTXPB_reset(SIE_HCTXPB *p);
SIGN32 HCTXPB_cmp (SIE_HCTXPB *p, SIE_HCTXPB *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define HCTXPB_check(p,pie,pfx,hLOG) HCTXPB_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define HCTXPB_print(p, pfx,hLOG) HCTXPB_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: HCTXPB
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE CacheMSG (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// %unsigned 11 xLoc
/// ###
/// * Exact reference region horizontal location (in pixel)
/// ###
/// %unsigned 5 xPix
/// ###
/// * Exact reference region horizontal size (in pixel)
/// ###
/// %unsigned 11 yLoc
/// ###
/// * Exact reference region vertical location (in pixel)
/// ###
/// %unsigned 5 yPix
/// ###
/// * Exact reference region vertical size (in pixel)
/// ###
/// @ 0x00004 (P)
/// %unsigned 5 xLocExp
/// ###
/// * Expansion horizontal offset (in pixel)
/// ###
/// %unsigned 3 xPixExp
/// ###
/// * Expansion horizontal size (in 4-pixel unit)
/// ###
/// %unsigned 5 yLocExp
/// ###
/// * Expansion vertical offset (in pixel)
/// ###
/// %unsigned 3 yPixExp
/// ###
/// * Expansion vertical size (in 4-pixel unit)
/// ###
/// %unsigned 6 rBID
/// ###
/// * Reference buffer ID, last 1b indicates access mode:
/// * 0: frame/progressive or top field
/// * 1: bottom field
/// ###
/// %unsigned 1 uv
/// ###
/// * 0/1 for Y or UV reference region
/// ###
/// %unsigned 1 fldMB
/// ###
/// * 0/1 for frame or field MB(-pair)
/// ###
/// %unsigned 2 hint
/// : bypass 0x0
/// ###
/// * Force to bypass cache
/// ###
/// : FrmX 0x1
/// ###
/// * Use FID & xLoc to decide cache way
/// ###
/// : FrmY 0x2
/// ###
/// * Use FID & yLoc to decide cache way
/// ###
/// : XY 0x3
/// ###
/// * Use xLoc & yLoc to decide cache way
/// ###
/// %unsigned 5 descID
/// ###
/// * Output transfer descriptor ID
/// * A descriptor shall have a (non-zero) semaphore ID to check not full before transfer, destination address and stride (in 4x4)
/// ###
/// %unsigned 1 ID
/// ###
/// * = 1'b0 for message type of reference fetch
/// ###
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 8B, bits: 64b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_CacheMSG
#define h_CacheMSG (){}
#define BA_CacheMSG_xLoc 0x0000
#define B16CacheMSG_xLoc 0x0000
#define LSb32CacheMSG_xLoc 0
#define LSb16CacheMSG_xLoc 0
#define bCacheMSG_xLoc 11
#define MSK32CacheMSG_xLoc 0x000007FF
#define BA_CacheMSG_xPix 0x0001
#define B16CacheMSG_xPix 0x0000
#define LSb32CacheMSG_xPix 11
#define LSb16CacheMSG_xPix 11
#define bCacheMSG_xPix 5
#define MSK32CacheMSG_xPix 0x0000F800
#define BA_CacheMSG_yLoc 0x0002
#define B16CacheMSG_yLoc 0x0002
#define LSb32CacheMSG_yLoc 16
#define LSb16CacheMSG_yLoc 0
#define bCacheMSG_yLoc 11
#define MSK32CacheMSG_yLoc 0x07FF0000
#define BA_CacheMSG_yPix 0x0003
#define B16CacheMSG_yPix 0x0002
#define LSb32CacheMSG_yPix 27
#define LSb16CacheMSG_yPix 11
#define bCacheMSG_yPix 5
#define MSK32CacheMSG_yPix 0xF8000000
///////////////////////////////////////////////////////////
#define BA_CacheMSG_xLocExp 0x0004
#define B16CacheMSG_xLocExp 0x0004
#define LSb32CacheMSG_xLocExp 0
#define LSb16CacheMSG_xLocExp 0
#define bCacheMSG_xLocExp 5
#define MSK32CacheMSG_xLocExp 0x0000001F
#define BA_CacheMSG_xPixExp 0x0004
#define B16CacheMSG_xPixExp 0x0004
#define LSb32CacheMSG_xPixExp 5
#define LSb16CacheMSG_xPixExp 5
#define bCacheMSG_xPixExp 3
#define MSK32CacheMSG_xPixExp 0x000000E0
#define BA_CacheMSG_yLocExp 0x0005
#define B16CacheMSG_yLocExp 0x0004
#define LSb32CacheMSG_yLocExp 8
#define LSb16CacheMSG_yLocExp 8
#define bCacheMSG_yLocExp 5
#define MSK32CacheMSG_yLocExp 0x00001F00
#define BA_CacheMSG_yPixExp 0x0005
#define B16CacheMSG_yPixExp 0x0004
#define LSb32CacheMSG_yPixExp 13
#define LSb16CacheMSG_yPixExp 13
#define bCacheMSG_yPixExp 3
#define MSK32CacheMSG_yPixExp 0x0000E000
#define BA_CacheMSG_rBID 0x0006
#define B16CacheMSG_rBID 0x0006
#define LSb32CacheMSG_rBID 16
#define LSb16CacheMSG_rBID 0
#define bCacheMSG_rBID 6
#define MSK32CacheMSG_rBID 0x003F0000
#define BA_CacheMSG_uv 0x0006
#define B16CacheMSG_uv 0x0006
#define LSb32CacheMSG_uv 22
#define LSb16CacheMSG_uv 6
#define bCacheMSG_uv 1
#define MSK32CacheMSG_uv 0x00400000
#define BA_CacheMSG_fldMB 0x0006
#define B16CacheMSG_fldMB 0x0006
#define LSb32CacheMSG_fldMB 23
#define LSb16CacheMSG_fldMB 7
#define bCacheMSG_fldMB 1
#define MSK32CacheMSG_fldMB 0x00800000
#define BA_CacheMSG_hint 0x0007
#define B16CacheMSG_hint 0x0006
#define LSb32CacheMSG_hint 24
#define LSb16CacheMSG_hint 8
#define bCacheMSG_hint 2
#define MSK32CacheMSG_hint 0x03000000
#define CacheMSG_hint_bypass 0x0
#define CacheMSG_hint_FrmX 0x1
#define CacheMSG_hint_FrmY 0x2
#define CacheMSG_hint_XY 0x3
#define BA_CacheMSG_descID 0x0007
#define B16CacheMSG_descID 0x0006
#define LSb32CacheMSG_descID 26
#define LSb16CacheMSG_descID 10
#define bCacheMSG_descID 5
#define MSK32CacheMSG_descID 0x7C000000
#define BA_CacheMSG_ID 0x0007
#define B16CacheMSG_ID 0x0006
#define LSb32CacheMSG_ID 31
#define LSb16CacheMSG_ID 15
#define bCacheMSG_ID 1
#define MSK32CacheMSG_ID 0x80000000
///////////////////////////////////////////////////////////
typedef struct SIE_CacheMSG {
///////////////////////////////////////////////////////////
#define GET32CacheMSG_xLoc(r32) _BFGET_(r32,10, 0)
#define SET32CacheMSG_xLoc(r32,v) _BFSET_(r32,10, 0,v)
#define GET16CacheMSG_xLoc(r16) _BFGET_(r16,10, 0)
#define SET16CacheMSG_xLoc(r16,v) _BFSET_(r16,10, 0,v)
#define GET32CacheMSG_xPix(r32) _BFGET_(r32,15,11)
#define SET32CacheMSG_xPix(r32,v) _BFSET_(r32,15,11,v)
#define GET16CacheMSG_xPix(r16) _BFGET_(r16,15,11)
#define SET16CacheMSG_xPix(r16,v) _BFSET_(r16,15,11,v)
#define GET32CacheMSG_yLoc(r32) _BFGET_(r32,26,16)
#define SET32CacheMSG_yLoc(r32,v) _BFSET_(r32,26,16,v)
#define GET16CacheMSG_yLoc(r16) _BFGET_(r16,10, 0)
#define SET16CacheMSG_yLoc(r16,v) _BFSET_(r16,10, 0,v)
#define GET32CacheMSG_yPix(r32) _BFGET_(r32,31,27)
#define SET32CacheMSG_yPix(r32,v) _BFSET_(r32,31,27,v)
#define GET16CacheMSG_yPix(r16) _BFGET_(r16,15,11)
#define SET16CacheMSG_yPix(r16,v) _BFSET_(r16,15,11,v)
UNSG32 u_xLoc : 11;
UNSG32 u_xPix : 5;
UNSG32 u_yLoc : 11;
UNSG32 u_yPix : 5;
///////////////////////////////////////////////////////////
#define GET32CacheMSG_xLocExp(r32) _BFGET_(r32, 4, 0)
#define SET32CacheMSG_xLocExp(r32,v) _BFSET_(r32, 4, 0,v)
#define GET16CacheMSG_xLocExp(r16) _BFGET_(r16, 4, 0)
#define SET16CacheMSG_xLocExp(r16,v) _BFSET_(r16, 4, 0,v)
#define GET32CacheMSG_xPixExp(r32) _BFGET_(r32, 7, 5)
#define SET32CacheMSG_xPixExp(r32,v) _BFSET_(r32, 7, 5,v)
#define GET16CacheMSG_xPixExp(r16) _BFGET_(r16, 7, 5)
#define SET16CacheMSG_xPixExp(r16,v) _BFSET_(r16, 7, 5,v)
#define GET32CacheMSG_yLocExp(r32) _BFGET_(r32,12, 8)
#define SET32CacheMSG_yLocExp(r32,v) _BFSET_(r32,12, 8,v)
#define GET16CacheMSG_yLocExp(r16) _BFGET_(r16,12, 8)
#define SET16CacheMSG_yLocExp(r16,v) _BFSET_(r16,12, 8,v)
#define GET32CacheMSG_yPixExp(r32) _BFGET_(r32,15,13)
#define SET32CacheMSG_yPixExp(r32,v) _BFSET_(r32,15,13,v)
#define GET16CacheMSG_yPixExp(r16) _BFGET_(r16,15,13)
#define SET16CacheMSG_yPixExp(r16,v) _BFSET_(r16,15,13,v)
#define GET32CacheMSG_rBID(r32) _BFGET_(r32,21,16)
#define SET32CacheMSG_rBID(r32,v) _BFSET_(r32,21,16,v)
#define GET16CacheMSG_rBID(r16) _BFGET_(r16, 5, 0)
#define SET16CacheMSG_rBID(r16,v) _BFSET_(r16, 5, 0,v)
#define GET32CacheMSG_uv(r32) _BFGET_(r32,22,22)
#define SET32CacheMSG_uv(r32,v) _BFSET_(r32,22,22,v)
#define GET16CacheMSG_uv(r16) _BFGET_(r16, 6, 6)
#define SET16CacheMSG_uv(r16,v) _BFSET_(r16, 6, 6,v)
#define GET32CacheMSG_fldMB(r32) _BFGET_(r32,23,23)
#define SET32CacheMSG_fldMB(r32,v) _BFSET_(r32,23,23,v)
#define GET16CacheMSG_fldMB(r16) _BFGET_(r16, 7, 7)
#define SET16CacheMSG_fldMB(r16,v) _BFSET_(r16, 7, 7,v)
#define GET32CacheMSG_hint(r32) _BFGET_(r32,25,24)
#define SET32CacheMSG_hint(r32,v) _BFSET_(r32,25,24,v)
#define GET16CacheMSG_hint(r16) _BFGET_(r16, 9, 8)
#define SET16CacheMSG_hint(r16,v) _BFSET_(r16, 9, 8,v)
#define GET32CacheMSG_descID(r32) _BFGET_(r32,30,26)
#define SET32CacheMSG_descID(r32,v) _BFSET_(r32,30,26,v)
#define GET16CacheMSG_descID(r16) _BFGET_(r16,14,10)
#define SET16CacheMSG_descID(r16,v) _BFSET_(r16,14,10,v)
#define GET32CacheMSG_ID(r32) _BFGET_(r32,31,31)
#define SET32CacheMSG_ID(r32,v) _BFSET_(r32,31,31,v)
#define GET16CacheMSG_ID(r16) _BFGET_(r16,15,15)
#define SET16CacheMSG_ID(r16,v) _BFSET_(r16,15,15,v)
UNSG32 u_xLocExp : 5;
UNSG32 u_xPixExp : 3;
UNSG32 u_yLocExp : 5;
UNSG32 u_yPixExp : 3;
UNSG32 u_rBID : 6;
UNSG32 u_uv : 1;
UNSG32 u_fldMB : 1;
UNSG32 u_hint : 2;
UNSG32 u_descID : 5;
UNSG32 u_ID : 1;
///////////////////////////////////////////////////////////
} SIE_CacheMSG;
///////////////////////////////////////////////////////////
SIGN32 CacheMSG_drvrd(SIE_CacheMSG *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 CacheMSG_drvwr(SIE_CacheMSG *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void CacheMSG_reset(SIE_CacheMSG *p);
SIGN32 CacheMSG_cmp (SIE_CacheMSG *p, SIE_CacheMSG *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define CacheMSG_check(p,pie,pfx,hLOG) CacheMSG_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define CacheMSG_print(p, pfx,hLOG) CacheMSG_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: CacheMSG
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE CacheCFG (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// %unsigned 32 val
/// ###
/// * 32b configuration data
/// ###
/// @ 0x00004 (P)
/// %unsigned 26 ptr
/// ###
/// * Configuration 32b word-address:
/// * equivalent as AHB programming byte address b[27:2]
/// ###
/// %unsigned 5 op
/// : CFG 0x0
/// ###
/// * 0 for on-the-fly configuration message
/// ###
/// %unsigned 1 ID
/// ###
/// * = 1'b1 for special message types
/// ###
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 8B, bits: 64b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_CacheCFG
#define h_CacheCFG (){}
#define BA_CacheCFG_val 0x0000
#define B16CacheCFG_val 0x0000
#define LSb32CacheCFG_val 0
#define LSb16CacheCFG_val 0
#define bCacheCFG_val 32
#define MSK32CacheCFG_val 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define BA_CacheCFG_ptr 0x0004
#define B16CacheCFG_ptr 0x0004
#define LSb32CacheCFG_ptr 0
#define LSb16CacheCFG_ptr 0
#define bCacheCFG_ptr 26
#define MSK32CacheCFG_ptr 0x03FFFFFF
#define BA_CacheCFG_op 0x0007
#define B16CacheCFG_op 0x0006
#define LSb32CacheCFG_op 26
#define LSb16CacheCFG_op 10
#define bCacheCFG_op 5
#define MSK32CacheCFG_op 0x7C000000
#define CacheCFG_op_CFG 0x0
#define BA_CacheCFG_ID 0x0007
#define B16CacheCFG_ID 0x0006
#define LSb32CacheCFG_ID 31
#define LSb16CacheCFG_ID 15
#define bCacheCFG_ID 1
#define MSK32CacheCFG_ID 0x80000000
///////////////////////////////////////////////////////////
typedef struct SIE_CacheCFG {
///////////////////////////////////////////////////////////
#define GET32CacheCFG_val(r32) _BFGET_(r32,31, 0)
#define SET32CacheCFG_val(r32,v) _BFSET_(r32,31, 0,v)
UNSG32 u_val : 32;
///////////////////////////////////////////////////////////
#define GET32CacheCFG_ptr(r32) _BFGET_(r32,25, 0)
#define SET32CacheCFG_ptr(r32,v) _BFSET_(r32,25, 0,v)
#define GET32CacheCFG_op(r32) _BFGET_(r32,30,26)
#define SET32CacheCFG_op(r32,v) _BFSET_(r32,30,26,v)
#define GET16CacheCFG_op(r16) _BFGET_(r16,14,10)
#define SET16CacheCFG_op(r16,v) _BFSET_(r16,14,10,v)
#define GET32CacheCFG_ID(r32) _BFGET_(r32,31,31)
#define SET32CacheCFG_ID(r32,v) _BFSET_(r32,31,31,v)
#define GET16CacheCFG_ID(r16) _BFGET_(r16,15,15)
#define SET16CacheCFG_ID(r16,v) _BFSET_(r16,15,15,v)
UNSG32 u_ptr : 26;
UNSG32 u_op : 5;
UNSG32 u_ID : 1;
///////////////////////////////////////////////////////////
} SIE_CacheCFG;
///////////////////////////////////////////////////////////
SIGN32 CacheCFG_drvrd(SIE_CacheCFG *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 CacheCFG_drvwr(SIE_CacheCFG *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void CacheCFG_reset(SIE_CacheCFG *p);
SIGN32 CacheCFG_cmp (SIE_CacheCFG *p, SIE_CacheCFG *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define CacheCFG_check(p,pie,pfx,hLOG) CacheCFG_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define CacheCFG_print(p, pfx,hLOG) CacheCFG_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: CacheCFG
////////////////////////////////////////////////////////////
#ifdef __cplusplus
}
#endif
#pragma pack()
#endif
//////
/// ENDOFFILE: Galois_FuncSpec.h
////////////////////////////////////////////////////////////