blob: 711519f45d53bc2e94d2c0a247f5bf4cc22f538b [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: BitOp.h
////////////////////////////////////////////////////////////
#ifndef BitOp_h
#define BitOp_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 BitOpX4 biu (4,4)
/// ###
/// * Operator format for BitOp extension
/// ###
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// %unsigned 6 idx
/// ###
/// * rS[idx] or xT[idx] is used as source bit
/// * In case src==rS, idx[5:4] specifies the operation mode:
/// * idx[5:4]==2'b0x: output is from rS
/// * idx[5:4]==2'b10: output bit is forced to 0
/// * idx[5:4]==2'b11: output bit is forced to 1
/// ###
/// %unsigned 1 src
/// : xT 0x0
/// : rS 0x1
/// ###
/// * If src=rS, the source is from 16-bit input
/// * If src=xT, the source is from 64-bit input
/// ###
/// %unsigned 1 mode
/// : copy 0x0
/// : inv 0x1
/// ###
/// * copy: target bit copied from source bit
/// * inv: target bit copied from source bit then inverted
/// * Not used when src==rS & idx[5]==1'b1
/// ###
/// %unsigned 6 idx1
/// %unsigned 1 src1
/// %unsigned 1 mode1
/// %unsigned 6 idx2
/// %unsigned 1 src2
/// %unsigned 1 mode2
/// %unsigned 6 idx3
/// %unsigned 1 src3
/// %unsigned 1 mode3
/// ###
/// * End BitOpX4
/// ###
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 32b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_BitOpX4
#define h_BitOpX4 (){}
#define BA_BitOpX4_idx 0x0000
#define B16BitOpX4_idx 0x0000
#define LSb32BitOpX4_idx 0
#define LSb16BitOpX4_idx 0
#define bBitOpX4_idx 6
#define MSK32BitOpX4_idx 0x0000003F
#define BA_BitOpX4_src 0x0000
#define B16BitOpX4_src 0x0000
#define LSb32BitOpX4_src 6
#define LSb16BitOpX4_src 6
#define bBitOpX4_src 1
#define MSK32BitOpX4_src 0x00000040
#define BitOpX4_src_xT 0x0
#define BitOpX4_src_rS 0x1
#define BA_BitOpX4_mode 0x0000
#define B16BitOpX4_mode 0x0000
#define LSb32BitOpX4_mode 7
#define LSb16BitOpX4_mode 7
#define bBitOpX4_mode 1
#define MSK32BitOpX4_mode 0x00000080
#define BitOpX4_mode_copy 0x0
#define BitOpX4_mode_inv 0x1
#define BA_BitOpX4_idx1 0x0001
#define B16BitOpX4_idx1 0x0000
#define LSb32BitOpX4_idx1 8
#define LSb16BitOpX4_idx1 8
#define bBitOpX4_idx1 6
#define MSK32BitOpX4_idx1 0x00003F00
#define BA_BitOpX4_src1 0x0001
#define B16BitOpX4_src1 0x0000
#define LSb32BitOpX4_src1 14
#define LSb16BitOpX4_src1 14
#define bBitOpX4_src1 1
#define MSK32BitOpX4_src1 0x00004000
#define BA_BitOpX4_mode1 0x0001
#define B16BitOpX4_mode1 0x0000
#define LSb32BitOpX4_mode1 15
#define LSb16BitOpX4_mode1 15
#define bBitOpX4_mode1 1
#define MSK32BitOpX4_mode1 0x00008000
#define BA_BitOpX4_idx2 0x0002
#define B16BitOpX4_idx2 0x0002
#define LSb32BitOpX4_idx2 16
#define LSb16BitOpX4_idx2 0
#define bBitOpX4_idx2 6
#define MSK32BitOpX4_idx2 0x003F0000
#define BA_BitOpX4_src2 0x0002
#define B16BitOpX4_src2 0x0002
#define LSb32BitOpX4_src2 22
#define LSb16BitOpX4_src2 6
#define bBitOpX4_src2 1
#define MSK32BitOpX4_src2 0x00400000
#define BA_BitOpX4_mode2 0x0002
#define B16BitOpX4_mode2 0x0002
#define LSb32BitOpX4_mode2 23
#define LSb16BitOpX4_mode2 7
#define bBitOpX4_mode2 1
#define MSK32BitOpX4_mode2 0x00800000
#define BA_BitOpX4_idx3 0x0003
#define B16BitOpX4_idx3 0x0002
#define LSb32BitOpX4_idx3 24
#define LSb16BitOpX4_idx3 8
#define bBitOpX4_idx3 6
#define MSK32BitOpX4_idx3 0x3F000000
#define BA_BitOpX4_src3 0x0003
#define B16BitOpX4_src3 0x0002
#define LSb32BitOpX4_src3 30
#define LSb16BitOpX4_src3 14
#define bBitOpX4_src3 1
#define MSK32BitOpX4_src3 0x40000000
#define BA_BitOpX4_mode3 0x0003
#define B16BitOpX4_mode3 0x0002
#define LSb32BitOpX4_mode3 31
#define LSb16BitOpX4_mode3 15
#define bBitOpX4_mode3 1
#define MSK32BitOpX4_mode3 0x80000000
///////////////////////////////////////////////////////////
typedef struct SIE_BitOpX4 {
///////////////////////////////////////////////////////////
#define GET32BitOpX4_idx(r32) _BFGET_(r32, 5, 0)
#define SET32BitOpX4_idx(r32,v) _BFSET_(r32, 5, 0,v)
#define GET16BitOpX4_idx(r16) _BFGET_(r16, 5, 0)
#define SET16BitOpX4_idx(r16,v) _BFSET_(r16, 5, 0,v)
#define GET32BitOpX4_src(r32) _BFGET_(r32, 6, 6)
#define SET32BitOpX4_src(r32,v) _BFSET_(r32, 6, 6,v)
#define GET16BitOpX4_src(r16) _BFGET_(r16, 6, 6)
#define SET16BitOpX4_src(r16,v) _BFSET_(r16, 6, 6,v)
#define GET32BitOpX4_mode(r32) _BFGET_(r32, 7, 7)
#define SET32BitOpX4_mode(r32,v) _BFSET_(r32, 7, 7,v)
#define GET16BitOpX4_mode(r16) _BFGET_(r16, 7, 7)
#define SET16BitOpX4_mode(r16,v) _BFSET_(r16, 7, 7,v)
#define GET32BitOpX4_idx1(r32) _BFGET_(r32,13, 8)
#define SET32BitOpX4_idx1(r32,v) _BFSET_(r32,13, 8,v)
#define GET16BitOpX4_idx1(r16) _BFGET_(r16,13, 8)
#define SET16BitOpX4_idx1(r16,v) _BFSET_(r16,13, 8,v)
#define GET32BitOpX4_src1(r32) _BFGET_(r32,14,14)
#define SET32BitOpX4_src1(r32,v) _BFSET_(r32,14,14,v)
#define GET16BitOpX4_src1(r16) _BFGET_(r16,14,14)
#define SET16BitOpX4_src1(r16,v) _BFSET_(r16,14,14,v)
#define GET32BitOpX4_mode1(r32) _BFGET_(r32,15,15)
#define SET32BitOpX4_mode1(r32,v) _BFSET_(r32,15,15,v)
#define GET16BitOpX4_mode1(r16) _BFGET_(r16,15,15)
#define SET16BitOpX4_mode1(r16,v) _BFSET_(r16,15,15,v)
#define GET32BitOpX4_idx2(r32) _BFGET_(r32,21,16)
#define SET32BitOpX4_idx2(r32,v) _BFSET_(r32,21,16,v)
#define GET16BitOpX4_idx2(r16) _BFGET_(r16, 5, 0)
#define SET16BitOpX4_idx2(r16,v) _BFSET_(r16, 5, 0,v)
#define GET32BitOpX4_src2(r32) _BFGET_(r32,22,22)
#define SET32BitOpX4_src2(r32,v) _BFSET_(r32,22,22,v)
#define GET16BitOpX4_src2(r16) _BFGET_(r16, 6, 6)
#define SET16BitOpX4_src2(r16,v) _BFSET_(r16, 6, 6,v)
#define GET32BitOpX4_mode2(r32) _BFGET_(r32,23,23)
#define SET32BitOpX4_mode2(r32,v) _BFSET_(r32,23,23,v)
#define GET16BitOpX4_mode2(r16) _BFGET_(r16, 7, 7)
#define SET16BitOpX4_mode2(r16,v) _BFSET_(r16, 7, 7,v)
#define GET32BitOpX4_idx3(r32) _BFGET_(r32,29,24)
#define SET32BitOpX4_idx3(r32,v) _BFSET_(r32,29,24,v)
#define GET16BitOpX4_idx3(r16) _BFGET_(r16,13, 8)
#define SET16BitOpX4_idx3(r16,v) _BFSET_(r16,13, 8,v)
#define GET32BitOpX4_src3(r32) _BFGET_(r32,30,30)
#define SET32BitOpX4_src3(r32,v) _BFSET_(r32,30,30,v)
#define GET16BitOpX4_src3(r16) _BFGET_(r16,14,14)
#define SET16BitOpX4_src3(r16,v) _BFSET_(r16,14,14,v)
#define GET32BitOpX4_mode3(r32) _BFGET_(r32,31,31)
#define SET32BitOpX4_mode3(r32,v) _BFSET_(r32,31,31,v)
#define GET16BitOpX4_mode3(r16) _BFGET_(r16,15,15)
#define SET16BitOpX4_mode3(r16,v) _BFSET_(r16,15,15,v)
UNSG32 u_idx : 6;
UNSG32 u_src : 1;
UNSG32 u_mode : 1;
UNSG32 u_idx1 : 6;
UNSG32 u_src1 : 1;
UNSG32 u_mode1 : 1;
UNSG32 u_idx2 : 6;
UNSG32 u_src2 : 1;
UNSG32 u_mode2 : 1;
UNSG32 u_idx3 : 6;
UNSG32 u_src3 : 1;
UNSG32 u_mode3 : 1;
///////////////////////////////////////////////////////////
} SIE_BitOpX4;
///////////////////////////////////////////////////////////
SIGN32 BitOpX4_drvrd(SIE_BitOpX4 *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 BitOpX4_drvwr(SIE_BitOpX4 *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void BitOpX4_reset(SIE_BitOpX4 *p);
SIGN32 BitOpX4_cmp (SIE_BitOpX4 *p, SIE_BitOpX4 *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define BitOpX4_check(p,pie,pfx,hLOG) BitOpX4_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define BitOpX4_print(p, pfx,hLOG) BitOpX4_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: BitOpX4
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE BITOPRF64 biu (4,4)
/// ###
/// * Operator format for BitOp extension
/// ###
/// # # ----------------------------------------------------------
/// : BitOp0 0x20
/// : BitOp1 0x21
/// : BitOp2 0x22
/// : BitOp3 0x23
/// ###
/// * extension ID definition; must be consistent with vScope_F0A64_BitOp0~3
/// ###
/// @ 0x00000 (P)
/// # 0x00000 cmd0
/// $BitOpX4 cmd0 REG [4]
/// @ 0x00010 (P)
/// # 0x00010 cmd1
/// $BitOpX4 cmd1 REG [4]
/// @ 0x00020 (P)
/// # 0x00020 cmd2
/// $BitOpX4 cmd2 REG [4]
/// @ 0x00030 (P)
/// # 0x00030 cmd3
/// $BitOpX4 cmd3 REG [4]
/// ###
/// * Four BitOp commands, selected by extension ID
/// * End BitOpCtx
/// ###
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 64B, bits: 512b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_BITOPRF64
#define h_BITOPRF64 (){}
#define BITOPRF64_BitOp0 0x20
#define BITOPRF64_BitOp1 0x21
#define BITOPRF64_BitOp2 0x22
#define BITOPRF64_BitOp3 0x23
///////////////////////////////////////////////////////////
#define RA_BITOPRF64_cmd0 0x0000
///////////////////////////////////////////////////////////
#define RA_BITOPRF64_cmd1 0x0010
///////////////////////////////////////////////////////////
#define RA_BITOPRF64_cmd2 0x0020
///////////////////////////////////////////////////////////
#define RA_BITOPRF64_cmd3 0x0030
///////////////////////////////////////////////////////////
typedef struct SIE_BITOPRF64 {
///////////////////////////////////////////////////////////
SIE_BitOpX4 ie_cmd0[4];
///////////////////////////////////////////////////////////
SIE_BitOpX4 ie_cmd1[4];
///////////////////////////////////////////////////////////
SIE_BitOpX4 ie_cmd2[4];
///////////////////////////////////////////////////////////
SIE_BitOpX4 ie_cmd3[4];
///////////////////////////////////////////////////////////
} SIE_BITOPRF64;
///////////////////////////////////////////////////////////
SIGN32 BITOPRF64_drvrd(SIE_BITOPRF64 *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 BITOPRF64_drvwr(SIE_BITOPRF64 *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void BITOPRF64_reset(SIE_BITOPRF64 *p);
SIGN32 BITOPRF64_cmp (SIE_BITOPRF64 *p, SIE_BITOPRF64 *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define BITOPRF64_check(p,pie,pfx,hLOG) BITOPRF64_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define BITOPRF64_print(p, pfx,hLOG) BITOPRF64_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: BITOPRF64
////////////////////////////////////////////////////////////
#ifdef __cplusplus
}
#endif
#pragma pack()
#endif
//////
/// ENDOFFILE: BitOp.h
////////////////////////////////////////////////////////////