blob: 86982345d4ac03634ecae498e55d656869d94e37 [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: test_FigoSys.h
////////////////////////////////////////////////////////////
#ifndef test_FigoSys_h
#define test_FigoSys_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 DSmsg biu (4,4)
/// ###
/// * Data Streamer message format
/// * [00:31]
/// ###
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// %unsigned 13 count
/// ###
/// * number of bytes to transfer, the starting address is byte aligned.
/// ###
/// %unsigned 1 NOS
/// ###
/// * No outstanding
/// * 1: this command will not be executed until the completion of all the previous command.
/// * 0: This command can be executed without checking the previous command completion status.
/// ###
/// %unsigned 1 dir
/// : m2h 0x0
/// ###
/// * Data transfer from external memory to HBO
/// ###
/// : h2m 0x1
/// ###
/// * Data transfer from HBO to external memory
/// ###
/// %unsigned 1 intr
/// ###
/// * Setting to 1 forces Data Streamer to raise interrupt after command completion
/// ###
/// %unsigned 16 hboAdr
/// ###
/// * HBO byte address for data transfer
/// * [32:63]
/// ###
/// @ 0x00004 (P)
/// %unsigned 32 memAdr
/// ###
/// * Memory address equivalent to DDR addr [31:0];
/// ###
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 8B, bits: 64b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_DSmsg
#define h_DSmsg (){}
#define BA_DSmsg_count 0x0000
#define B16DSmsg_count 0x0000
#define LSb32DSmsg_count 0
#define LSb16DSmsg_count 0
#define bDSmsg_count 13
#define MSK32DSmsg_count 0x00001FFF
#define BA_DSmsg_NOS 0x0001
#define B16DSmsg_NOS 0x0000
#define LSb32DSmsg_NOS 13
#define LSb16DSmsg_NOS 13
#define bDSmsg_NOS 1
#define MSK32DSmsg_NOS 0x00002000
#define BA_DSmsg_dir 0x0001
#define B16DSmsg_dir 0x0000
#define LSb32DSmsg_dir 14
#define LSb16DSmsg_dir 14
#define bDSmsg_dir 1
#define MSK32DSmsg_dir 0x00004000
#define DSmsg_dir_m2h 0x0
#define DSmsg_dir_h2m 0x1
#define BA_DSmsg_intr 0x0001
#define B16DSmsg_intr 0x0000
#define LSb32DSmsg_intr 15
#define LSb16DSmsg_intr 15
#define bDSmsg_intr 1
#define MSK32DSmsg_intr 0x00008000
#define BA_DSmsg_hboAdr 0x0002
#define B16DSmsg_hboAdr 0x0002
#define LSb32DSmsg_hboAdr 16
#define LSb16DSmsg_hboAdr 0
#define bDSmsg_hboAdr 16
#define MSK32DSmsg_hboAdr 0xFFFF0000
///////////////////////////////////////////////////////////
#define BA_DSmsg_memAdr 0x0004
#define B16DSmsg_memAdr 0x0004
#define LSb32DSmsg_memAdr 0
#define LSb16DSmsg_memAdr 0
#define bDSmsg_memAdr 32
#define MSK32DSmsg_memAdr 0xFFFFFFFF
///////////////////////////////////////////////////////////
typedef struct SIE_DSmsg {
///////////////////////////////////////////////////////////
#define GET32DSmsg_count(r32) _BFGET_(r32,12, 0)
#define SET32DSmsg_count(r32,v) _BFSET_(r32,12, 0,v)
#define GET16DSmsg_count(r16) _BFGET_(r16,12, 0)
#define SET16DSmsg_count(r16,v) _BFSET_(r16,12, 0,v)
#define GET32DSmsg_NOS(r32) _BFGET_(r32,13,13)
#define SET32DSmsg_NOS(r32,v) _BFSET_(r32,13,13,v)
#define GET16DSmsg_NOS(r16) _BFGET_(r16,13,13)
#define SET16DSmsg_NOS(r16,v) _BFSET_(r16,13,13,v)
#define GET32DSmsg_dir(r32) _BFGET_(r32,14,14)
#define SET32DSmsg_dir(r32,v) _BFSET_(r32,14,14,v)
#define GET16DSmsg_dir(r16) _BFGET_(r16,14,14)
#define SET16DSmsg_dir(r16,v) _BFSET_(r16,14,14,v)
#define GET32DSmsg_intr(r32) _BFGET_(r32,15,15)
#define SET32DSmsg_intr(r32,v) _BFSET_(r32,15,15,v)
#define GET16DSmsg_intr(r16) _BFGET_(r16,15,15)
#define SET16DSmsg_intr(r16,v) _BFSET_(r16,15,15,v)
#define GET32DSmsg_hboAdr(r32) _BFGET_(r32,31,16)
#define SET32DSmsg_hboAdr(r32,v) _BFSET_(r32,31,16,v)
#define GET16DSmsg_hboAdr(r16) _BFGET_(r16,15, 0)
#define SET16DSmsg_hboAdr(r16,v) _BFSET_(r16,15, 0,v)
UNSG32 u_count : 13;
UNSG32 u_NOS : 1;
UNSG32 u_dir : 1;
UNSG32 u_intr : 1;
UNSG32 u_hboAdr : 16;
///////////////////////////////////////////////////////////
#define GET32DSmsg_memAdr(r32) _BFGET_(r32,31, 0)
#define SET32DSmsg_memAdr(r32,v) _BFSET_(r32,31, 0,v)
UNSG32 u_memAdr : 32;
///////////////////////////////////////////////////////////
} SIE_DSmsg;
///////////////////////////////////////////////////////////
SIGN32 DSmsg_drvrd(SIE_DSmsg *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 DSmsg_drvwr(SIE_DSmsg *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void DSmsg_reset(SIE_DSmsg *p);
SIGN32 DSmsg_cmp (SIE_DSmsg *p, SIE_DSmsg *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define DSmsg_check(p,pie,pfx,hLOG) DSmsg_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define DSmsg_print(p, pfx,hLOG) DSmsg_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: DSmsg
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE dsCh biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 retID (P)
/// %unsigned 16 addr 0x0
/// ###
/// * The HBO address of the memory location at which the retired command ID is stored
/// * Note : the addr should be 64-bit aligned. Nor the RTL implementation will always put the 16-bit ID to lower 16-bit of the DTCM entry.
/// ###
/// %% 16 # Stuffing bits...
/// @ 0x00004 initID (P)
/// %unsigned 16 Val 0x0
/// ###
/// * Initial retire id value
/// ###
/// %% 16 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 8B, bits: 32b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_dsCh
#define h_dsCh (){}
#define RA_dsCh_retID 0x0000
#define BA_dsCh_retID_addr 0x0000
#define B16dsCh_retID_addr 0x0000
#define LSb32dsCh_retID_addr 0
#define LSb16dsCh_retID_addr 0
#define bdsCh_retID_addr 16
#define MSK32dsCh_retID_addr 0x0000FFFF
///////////////////////////////////////////////////////////
#define RA_dsCh_initID 0x0004
#define BA_dsCh_initID_Val 0x0004
#define B16dsCh_initID_Val 0x0004
#define LSb32dsCh_initID_Val 0
#define LSb16dsCh_initID_Val 0
#define bdsCh_initID_Val 16
#define MSK32dsCh_initID_Val 0x0000FFFF
///////////////////////////////////////////////////////////
typedef struct SIE_dsCh {
///////////////////////////////////////////////////////////
#define GET32dsCh_retID_addr(r32) _BFGET_(r32,15, 0)
#define SET32dsCh_retID_addr(r32,v) _BFSET_(r32,15, 0,v)
#define GET16dsCh_retID_addr(r16) _BFGET_(r16,15, 0)
#define SET16dsCh_retID_addr(r16,v) _BFSET_(r16,15, 0,v)
#define w32dsCh_retID {\
UNSG32 uretID_addr : 16;\
UNSG32 RSVDx0_b16 : 16;\
}
union { UNSG32 u32dsCh_retID;
struct w32dsCh_retID;
};
///////////////////////////////////////////////////////////
#define GET32dsCh_initID_Val(r32) _BFGET_(r32,15, 0)
#define SET32dsCh_initID_Val(r32,v) _BFSET_(r32,15, 0,v)
#define GET16dsCh_initID_Val(r16) _BFGET_(r16,15, 0)
#define SET16dsCh_initID_Val(r16,v) _BFSET_(r16,15, 0,v)
#define w32dsCh_initID {\
UNSG32 uinitID_Val : 16;\
UNSG32 RSVDx4_b16 : 16;\
}
union { UNSG32 u32dsCh_initID;
struct w32dsCh_initID;
};
///////////////////////////////////////////////////////////
} SIE_dsCh;
typedef union T32dsCh_retID
{ UNSG32 u32;
struct w32dsCh_retID;
} T32dsCh_retID;
typedef union T32dsCh_initID
{ UNSG32 u32;
struct w32dsCh_initID;
} T32dsCh_initID;
///////////////////////////////////////////////////////////
typedef union TdsCh_retID
{ UNSG32 u32[1];
struct {
struct w32dsCh_retID;
};
} TdsCh_retID;
typedef union TdsCh_initID
{ UNSG32 u32[1];
struct {
struct w32dsCh_initID;
};
} TdsCh_initID;
///////////////////////////////////////////////////////////
SIGN32 dsCh_drvrd(SIE_dsCh *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 dsCh_drvwr(SIE_dsCh *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void dsCh_reset(SIE_dsCh *p);
SIGN32 dsCh_cmp (SIE_dsCh *p, SIE_dsCh *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define dsCh_check(p,pie,pfx,hLOG) dsCh_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define dsCh_print(p, pfx,hLOG) dsCh_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: dsCh
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE DataStreamer biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 dsCh (P)
/// # 0x00000 dsCh
/// $dsCh dsCh REG [4]
/// ###
/// * The command that was just finished by Data Streamer generated interrupt; write 1 to clear
/// ###
/// @ 0x00020 intr (WOC-)
/// %unsigned 1 st_0i
/// %unsigned 1 st_1i
/// %unsigned 1 st_2i
/// %unsigned 1 st_3i
/// ###
/// * Interrupt status
/// ###
/// %% 28 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 36B, bits: 132b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_DataStreamer
#define h_DataStreamer (){}
#define RA_DataStreamer_dsCh 0x0000
///////////////////////////////////////////////////////////
#define RA_DataStreamer_intr 0x0020
#define BA_DataStreamer_intr_st_0i 0x0020
#define B16DataStreamer_intr_st_0i 0x0020
#define LSb32DataStreamer_intr_st_0i 0
#define LSb16DataStreamer_intr_st_0i 0
#define bDataStreamer_intr_st_0i 1
#define MSK32DataStreamer_intr_st_0i 0x00000001
#define BA_DataStreamer_intr_st_1i 0x0020
#define B16DataStreamer_intr_st_1i 0x0020
#define LSb32DataStreamer_intr_st_1i 1
#define LSb16DataStreamer_intr_st_1i 1
#define bDataStreamer_intr_st_1i 1
#define MSK32DataStreamer_intr_st_1i 0x00000002
#define BA_DataStreamer_intr_st_2i 0x0020
#define B16DataStreamer_intr_st_2i 0x0020
#define LSb32DataStreamer_intr_st_2i 2
#define LSb16DataStreamer_intr_st_2i 2
#define bDataStreamer_intr_st_2i 1
#define MSK32DataStreamer_intr_st_2i 0x00000004
#define BA_DataStreamer_intr_st_3i 0x0020
#define B16DataStreamer_intr_st_3i 0x0020
#define LSb32DataStreamer_intr_st_3i 3
#define LSb16DataStreamer_intr_st_3i 3
#define bDataStreamer_intr_st_3i 1
#define MSK32DataStreamer_intr_st_3i 0x00000008
///////////////////////////////////////////////////////////
typedef struct SIE_DataStreamer {
///////////////////////////////////////////////////////////
SIE_dsCh ie_dsCh[4];
///////////////////////////////////////////////////////////
#define GET32DataStreamer_intr_st_0i(r32) _BFGET_(r32, 0, 0)
#define SET32DataStreamer_intr_st_0i(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16DataStreamer_intr_st_0i(r16) _BFGET_(r16, 0, 0)
#define SET16DataStreamer_intr_st_0i(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32DataStreamer_intr_st_1i(r32) _BFGET_(r32, 1, 1)
#define SET32DataStreamer_intr_st_1i(r32,v) _BFSET_(r32, 1, 1,v)
#define GET16DataStreamer_intr_st_1i(r16) _BFGET_(r16, 1, 1)
#define SET16DataStreamer_intr_st_1i(r16,v) _BFSET_(r16, 1, 1,v)
#define GET32DataStreamer_intr_st_2i(r32) _BFGET_(r32, 2, 2)
#define SET32DataStreamer_intr_st_2i(r32,v) _BFSET_(r32, 2, 2,v)
#define GET16DataStreamer_intr_st_2i(r16) _BFGET_(r16, 2, 2)
#define SET16DataStreamer_intr_st_2i(r16,v) _BFSET_(r16, 2, 2,v)
#define GET32DataStreamer_intr_st_3i(r32) _BFGET_(r32, 3, 3)
#define SET32DataStreamer_intr_st_3i(r32,v) _BFSET_(r32, 3, 3,v)
#define GET16DataStreamer_intr_st_3i(r16) _BFGET_(r16, 3, 3)
#define SET16DataStreamer_intr_st_3i(r16,v) _BFSET_(r16, 3, 3,v)
#define w32DataStreamer_intr {\
UNSG32 uintr_st_0i : 1;\
UNSG32 uintr_st_1i : 1;\
UNSG32 uintr_st_2i : 1;\
UNSG32 uintr_st_3i : 1;\
UNSG32 RSVDx20_b4 : 28;\
}
union { UNSG32 u32DataStreamer_intr;
struct w32DataStreamer_intr;
};
///////////////////////////////////////////////////////////
} SIE_DataStreamer;
typedef union T32DataStreamer_intr
{ UNSG32 u32;
struct w32DataStreamer_intr;
} T32DataStreamer_intr;
///////////////////////////////////////////////////////////
typedef union TDataStreamer_intr
{ UNSG32 u32[1];
struct {
struct w32DataStreamer_intr;
};
} TDataStreamer_intr;
///////////////////////////////////////////////////////////
SIGN32 DataStreamer_drvrd(SIE_DataStreamer *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 DataStreamer_drvwr(SIE_DataStreamer *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void DataStreamer_reset(SIE_DataStreamer *p);
SIGN32 DataStreamer_cmp (SIE_DataStreamer *p, SIE_DataStreamer *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define DataStreamer_check(p,pie,pfx,hLOG) DataStreamer_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define DataStreamer_print(p, pfx,hLOG) DataStreamer_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: DataStreamer
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE SemaINTR (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 mask (W-)
/// %unsigned 1 empty 0x0
/// ###
/// * Enable interrupt on 'empty' condition
/// ###
/// %unsigned 1 full 0x0
/// ###
/// * Enable interrupt on 'full' condition
/// ###
/// %unsigned 1 almostEmpty 0x0
/// ###
/// * Enable interrupt on 'almostEmpty' condition
/// ###
/// %unsigned 1 almostFull 0x0
/// ###
/// * Enable interrupt on 'almostFull' condition
/// ###
/// %% 28 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 4b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_SemaINTR
#define h_SemaINTR (){}
#define RA_SemaINTR_mask 0x0000
#define BA_SemaINTR_mask_empty 0x0000
#define B16SemaINTR_mask_empty 0x0000
#define LSb32SemaINTR_mask_empty 0
#define LSb16SemaINTR_mask_empty 0
#define bSemaINTR_mask_empty 1
#define MSK32SemaINTR_mask_empty 0x00000001
#define BA_SemaINTR_mask_full 0x0000
#define B16SemaINTR_mask_full 0x0000
#define LSb32SemaINTR_mask_full 1
#define LSb16SemaINTR_mask_full 1
#define bSemaINTR_mask_full 1
#define MSK32SemaINTR_mask_full 0x00000002
#define BA_SemaINTR_mask_almostEmpty 0x0000
#define B16SemaINTR_mask_almostEmpty 0x0000
#define LSb32SemaINTR_mask_almostEmpty 2
#define LSb16SemaINTR_mask_almostEmpty 2
#define bSemaINTR_mask_almostEmpty 1
#define MSK32SemaINTR_mask_almostEmpty 0x00000004
#define BA_SemaINTR_mask_almostFull 0x0000
#define B16SemaINTR_mask_almostFull 0x0000
#define LSb32SemaINTR_mask_almostFull 3
#define LSb16SemaINTR_mask_almostFull 3
#define bSemaINTR_mask_almostFull 1
#define MSK32SemaINTR_mask_almostFull 0x00000008
///////////////////////////////////////////////////////////
typedef struct SIE_SemaINTR {
///////////////////////////////////////////////////////////
#define GET32SemaINTR_mask_empty(r32) _BFGET_(r32, 0, 0)
#define SET32SemaINTR_mask_empty(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16SemaINTR_mask_empty(r16) _BFGET_(r16, 0, 0)
#define SET16SemaINTR_mask_empty(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32SemaINTR_mask_full(r32) _BFGET_(r32, 1, 1)
#define SET32SemaINTR_mask_full(r32,v) _BFSET_(r32, 1, 1,v)
#define GET16SemaINTR_mask_full(r16) _BFGET_(r16, 1, 1)
#define SET16SemaINTR_mask_full(r16,v) _BFSET_(r16, 1, 1,v)
#define GET32SemaINTR_mask_almostEmpty(r32) _BFGET_(r32, 2, 2)
#define SET32SemaINTR_mask_almostEmpty(r32,v) _BFSET_(r32, 2, 2,v)
#define GET16SemaINTR_mask_almostEmpty(r16) _BFGET_(r16, 2, 2)
#define SET16SemaINTR_mask_almostEmpty(r16,v) _BFSET_(r16, 2, 2,v)
#define GET32SemaINTR_mask_almostFull(r32) _BFGET_(r32, 3, 3)
#define SET32SemaINTR_mask_almostFull(r32,v) _BFSET_(r32, 3, 3,v)
#define GET16SemaINTR_mask_almostFull(r16) _BFGET_(r16, 3, 3)
#define SET16SemaINTR_mask_almostFull(r16,v) _BFSET_(r16, 3, 3,v)
#define w32SemaINTR_mask {\
UNSG32 umask_empty : 1;\
UNSG32 umask_full : 1;\
UNSG32 umask_almostEmpty : 1;\
UNSG32 umask_almostFull : 1;\
UNSG32 RSVDx0_b4 : 28;\
}
union { UNSG32 u32SemaINTR_mask;
struct w32SemaINTR_mask;
};
///////////////////////////////////////////////////////////
} SIE_SemaINTR;
typedef union T32SemaINTR_mask
{ UNSG32 u32;
struct w32SemaINTR_mask;
} T32SemaINTR_mask;
///////////////////////////////////////////////////////////
typedef union TSemaINTR_mask
{ UNSG32 u32[1];
struct {
struct w32SemaINTR_mask;
};
} TSemaINTR_mask;
///////////////////////////////////////////////////////////
SIGN32 SemaINTR_drvrd(SIE_SemaINTR *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 SemaINTR_drvwr(SIE_SemaINTR *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void SemaINTR_reset(SIE_SemaINTR *p);
SIGN32 SemaINTR_cmp (SIE_SemaINTR *p, SIE_SemaINTR *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define SemaINTR_check(p,pie,pfx,hLOG) SemaINTR_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define SemaINTR_print(p, pfx,hLOG) SemaINTR_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: SemaINTR
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE Semaphore biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 CFG (W-)
/// %unsigned 16 DEPTH 0xF
/// ###
/// * Max level of semaphore
/// * Note: write this register will trigger counter reset
/// ###
/// %% 16 # Stuffing bits...
/// @ 0x00004 (P)
/// # 0x00004 INTR
/// $SemaINTR INTR REG [3]
/// ###
/// * Interrupt mask for 3 CPUs
/// ###
/// @ 0x00010 mask (W-)
/// %unsigned 1 full 0x0
/// %unsigned 1 emp 0x0
/// ###
/// * When full bit is set to one, to the producer, the semaphore will never be full, so that the producer will never be blocked.
/// * When emp bit is set to one, to the consumer, the semaphore will never be empty, so that the consumer will never be blocked.
/// * When the emp/full bit is set, the semaphore/FIFO pointer will be maintained, but the counter will be not correct anymore.
/// ###
/// %% 30 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 20B, bits: 30b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_Semaphore
#define h_Semaphore (){}
#define RA_Semaphore_CFG 0x0000
#define BA_Semaphore_CFG_DEPTH 0x0000
#define B16Semaphore_CFG_DEPTH 0x0000
#define LSb32Semaphore_CFG_DEPTH 0
#define LSb16Semaphore_CFG_DEPTH 0
#define bSemaphore_CFG_DEPTH 16
#define MSK32Semaphore_CFG_DEPTH 0x0000FFFF
///////////////////////////////////////////////////////////
#define RA_Semaphore_INTR 0x0004
///////////////////////////////////////////////////////////
#define RA_Semaphore_mask 0x0010
#define BA_Semaphore_mask_full 0x0010
#define B16Semaphore_mask_full 0x0010
#define LSb32Semaphore_mask_full 0
#define LSb16Semaphore_mask_full 0
#define bSemaphore_mask_full 1
#define MSK32Semaphore_mask_full 0x00000001
#define BA_Semaphore_mask_emp 0x0010
#define B16Semaphore_mask_emp 0x0010
#define LSb32Semaphore_mask_emp 1
#define LSb16Semaphore_mask_emp 1
#define bSemaphore_mask_emp 1
#define MSK32Semaphore_mask_emp 0x00000002
///////////////////////////////////////////////////////////
typedef struct SIE_Semaphore {
///////////////////////////////////////////////////////////
#define GET32Semaphore_CFG_DEPTH(r32) _BFGET_(r32,15, 0)
#define SET32Semaphore_CFG_DEPTH(r32,v) _BFSET_(r32,15, 0,v)
#define GET16Semaphore_CFG_DEPTH(r16) _BFGET_(r16,15, 0)
#define SET16Semaphore_CFG_DEPTH(r16,v) _BFSET_(r16,15, 0,v)
#define w32Semaphore_CFG {\
UNSG32 uCFG_DEPTH : 16;\
UNSG32 RSVDx0_b16 : 16;\
}
union { UNSG32 u32Semaphore_CFG;
struct w32Semaphore_CFG;
};
///////////////////////////////////////////////////////////
SIE_SemaINTR ie_INTR[3];
///////////////////////////////////////////////////////////
#define GET32Semaphore_mask_full(r32) _BFGET_(r32, 0, 0)
#define SET32Semaphore_mask_full(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16Semaphore_mask_full(r16) _BFGET_(r16, 0, 0)
#define SET16Semaphore_mask_full(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32Semaphore_mask_emp(r32) _BFGET_(r32, 1, 1)
#define SET32Semaphore_mask_emp(r32,v) _BFSET_(r32, 1, 1,v)
#define GET16Semaphore_mask_emp(r16) _BFGET_(r16, 1, 1)
#define SET16Semaphore_mask_emp(r16,v) _BFSET_(r16, 1, 1,v)
#define w32Semaphore_mask {\
UNSG32 umask_full : 1;\
UNSG32 umask_emp : 1;\
UNSG32 RSVDx10_b2 : 30;\
}
union { UNSG32 u32Semaphore_mask;
struct w32Semaphore_mask;
};
///////////////////////////////////////////////////////////
} SIE_Semaphore;
typedef union T32Semaphore_CFG
{ UNSG32 u32;
struct w32Semaphore_CFG;
} T32Semaphore_CFG;
typedef union T32Semaphore_mask
{ UNSG32 u32;
struct w32Semaphore_mask;
} T32Semaphore_mask;
///////////////////////////////////////////////////////////
typedef union TSemaphore_CFG
{ UNSG32 u32[1];
struct {
struct w32Semaphore_CFG;
};
} TSemaphore_CFG;
typedef union TSemaphore_mask
{ UNSG32 u32[1];
struct {
struct w32Semaphore_mask;
};
} TSemaphore_mask;
///////////////////////////////////////////////////////////
SIGN32 Semaphore_drvrd(SIE_Semaphore *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 Semaphore_drvwr(SIE_Semaphore *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void Semaphore_reset(SIE_Semaphore *p);
SIGN32 Semaphore_cmp (SIE_Semaphore *p, SIE_Semaphore *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define Semaphore_check(p,pie,pfx,hLOG) Semaphore_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define Semaphore_print(p, pfx,hLOG) Semaphore_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: Semaphore
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE SemaQuery (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 RESP (R-)
/// %unsigned 16 CNT
/// ###
/// * Semaphore counter level
/// ###
/// %unsigned 16 PTR
/// ###
/// * Semaphore pointer:
/// * producer-wptr or consumer-rptr
/// ###
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 32b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_SemaQuery
#define h_SemaQuery (){}
#define RA_SemaQuery_RESP 0x0000
#define BA_SemaQuery_RESP_CNT 0x0000
#define B16SemaQuery_RESP_CNT 0x0000
#define LSb32SemaQuery_RESP_CNT 0
#define LSb16SemaQuery_RESP_CNT 0
#define bSemaQuery_RESP_CNT 16
#define MSK32SemaQuery_RESP_CNT 0x0000FFFF
#define BA_SemaQuery_RESP_PTR 0x0002
#define B16SemaQuery_RESP_PTR 0x0002
#define LSb32SemaQuery_RESP_PTR 16
#define LSb16SemaQuery_RESP_PTR 0
#define bSemaQuery_RESP_PTR 16
#define MSK32SemaQuery_RESP_PTR 0xFFFF0000
///////////////////////////////////////////////////////////
typedef struct SIE_SemaQuery {
///////////////////////////////////////////////////////////
#define GET32SemaQuery_RESP_CNT(r32) _BFGET_(r32,15, 0)
#define SET32SemaQuery_RESP_CNT(r32,v) _BFSET_(r32,15, 0,v)
#define GET16SemaQuery_RESP_CNT(r16) _BFGET_(r16,15, 0)
#define SET16SemaQuery_RESP_CNT(r16,v) _BFSET_(r16,15, 0,v)
#define GET32SemaQuery_RESP_PTR(r32) _BFGET_(r32,31,16)
#define SET32SemaQuery_RESP_PTR(r32,v) _BFSET_(r32,31,16,v)
#define GET16SemaQuery_RESP_PTR(r16) _BFGET_(r16,15, 0)
#define SET16SemaQuery_RESP_PTR(r16,v) _BFSET_(r16,15, 0,v)
#define w32SemaQuery_RESP {\
UNSG32 uRESP_CNT : 16;\
UNSG32 uRESP_PTR : 16;\
}
union { UNSG32 u32SemaQuery_RESP;
struct w32SemaQuery_RESP;
};
///////////////////////////////////////////////////////////
} SIE_SemaQuery;
typedef union T32SemaQuery_RESP
{ UNSG32 u32;
struct w32SemaQuery_RESP;
} T32SemaQuery_RESP;
///////////////////////////////////////////////////////////
typedef union TSemaQuery_RESP
{ UNSG32 u32[1];
struct {
struct w32SemaQuery_RESP;
};
} TSemaQuery_RESP;
///////////////////////////////////////////////////////////
SIGN32 SemaQuery_drvrd(SIE_SemaQuery *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 SemaQuery_drvwr(SIE_SemaQuery *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void SemaQuery_reset(SIE_SemaQuery *p);
SIGN32 SemaQuery_cmp (SIE_SemaQuery *p, SIE_SemaQuery *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define SemaQuery_check(p,pie,pfx,hLOG) SemaQuery_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define SemaQuery_print(p, pfx,hLOG) SemaQuery_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: SemaQuery
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE SemaQueryMap (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 ADDR (P)
/// %unsigned 2 byte
/// %unsigned 5 ID
/// ###
/// * Semaphore cell index
/// ###
/// %unsigned 1 master
/// : producer 0x0
/// : consumer 0x1
/// ###
/// * Select which counter to read
/// ###
/// %% 24 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 8b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_SemaQueryMap
#define h_SemaQueryMap (){}
#define RA_SemaQueryMap_ADDR 0x0000
#define BA_SemaQueryMap_ADDR_byte 0x0000
#define B16SemaQueryMap_ADDR_byte 0x0000
#define LSb32SemaQueryMap_ADDR_byte 0
#define LSb16SemaQueryMap_ADDR_byte 0
#define bSemaQueryMap_ADDR_byte 2
#define MSK32SemaQueryMap_ADDR_byte 0x00000003
#define BA_SemaQueryMap_ADDR_ID 0x0000
#define B16SemaQueryMap_ADDR_ID 0x0000
#define LSb32SemaQueryMap_ADDR_ID 2
#define LSb16SemaQueryMap_ADDR_ID 2
#define bSemaQueryMap_ADDR_ID 5
#define MSK32SemaQueryMap_ADDR_ID 0x0000007C
#define BA_SemaQueryMap_ADDR_master 0x0000
#define B16SemaQueryMap_ADDR_master 0x0000
#define LSb32SemaQueryMap_ADDR_master 7
#define LSb16SemaQueryMap_ADDR_master 7
#define bSemaQueryMap_ADDR_master 1
#define MSK32SemaQueryMap_ADDR_master 0x00000080
#define SemaQueryMap_ADDR_master_producer 0x0
#define SemaQueryMap_ADDR_master_consumer 0x1
///////////////////////////////////////////////////////////
typedef struct SIE_SemaQueryMap {
///////////////////////////////////////////////////////////
#define GET32SemaQueryMap_ADDR_byte(r32) _BFGET_(r32, 1, 0)
#define SET32SemaQueryMap_ADDR_byte(r32,v) _BFSET_(r32, 1, 0,v)
#define GET16SemaQueryMap_ADDR_byte(r16) _BFGET_(r16, 1, 0)
#define SET16SemaQueryMap_ADDR_byte(r16,v) _BFSET_(r16, 1, 0,v)
#define GET32SemaQueryMap_ADDR_ID(r32) _BFGET_(r32, 6, 2)
#define SET32SemaQueryMap_ADDR_ID(r32,v) _BFSET_(r32, 6, 2,v)
#define GET16SemaQueryMap_ADDR_ID(r16) _BFGET_(r16, 6, 2)
#define SET16SemaQueryMap_ADDR_ID(r16,v) _BFSET_(r16, 6, 2,v)
#define GET32SemaQueryMap_ADDR_master(r32) _BFGET_(r32, 7, 7)
#define SET32SemaQueryMap_ADDR_master(r32,v) _BFSET_(r32, 7, 7,v)
#define GET16SemaQueryMap_ADDR_master(r16) _BFGET_(r16, 7, 7)
#define SET16SemaQueryMap_ADDR_master(r16,v) _BFSET_(r16, 7, 7,v)
#define w32SemaQueryMap_ADDR {\
UNSG32 uADDR_byte : 2;\
UNSG32 uADDR_ID : 5;\
UNSG32 uADDR_master : 1;\
UNSG32 RSVDx0_b8 : 24;\
}
union { UNSG32 u32SemaQueryMap_ADDR;
struct w32SemaQueryMap_ADDR;
};
///////////////////////////////////////////////////////////
} SIE_SemaQueryMap;
typedef union T32SemaQueryMap_ADDR
{ UNSG32 u32;
struct w32SemaQueryMap_ADDR;
} T32SemaQueryMap_ADDR;
///////////////////////////////////////////////////////////
typedef union TSemaQueryMap_ADDR
{ UNSG32 u32[1];
struct {
struct w32SemaQueryMap_ADDR;
};
} TSemaQueryMap_ADDR;
///////////////////////////////////////////////////////////
SIGN32 SemaQueryMap_drvrd(SIE_SemaQueryMap *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 SemaQueryMap_drvwr(SIE_SemaQueryMap *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void SemaQueryMap_reset(SIE_SemaQueryMap *p);
SIGN32 SemaQueryMap_cmp (SIE_SemaQueryMap *p, SIE_SemaQueryMap *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define SemaQueryMap_check(p,pie,pfx,hLOG) SemaQueryMap_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define SemaQueryMap_print(p, pfx,hLOG) SemaQueryMap_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: SemaQueryMap
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE SemaHub biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 Query (R-)
/// # 0x00000 counter
/// $SemaQuery counter MEM [64]
/// ###
/// * Access address as defined above
/// ###
/// @ 0x00100 ARR (P)
/// # 0x00100 cell
/// $Semaphore cell REG [32]
/// ###
/// * Up-to 32 semaphore cells
/// ###
/// @ 0x00380 PUSH (W-)
/// %unsigned 8 ID
/// %unsigned 8 delta
/// ###
/// * CPU increases PCounter by delta (0 as push 256)
/// ###
/// %% 16 # Stuffing bits...
/// @ 0x00384 POP (W-)
/// %unsigned 8 ID
/// %unsigned 8 delta
/// ###
/// * CPU decreases CCounter by delta (0 as pop 256)
/// ###
/// %% 16 # Stuffing bits...
/// @ 0x00388 empty (WOC-)
/// %unsigned 1 ST_0i 0x0
/// %unsigned 1 ST_1i 0x0
/// %unsigned 1 ST_2i 0x0
/// %unsigned 1 ST_3i 0x0
/// %unsigned 1 ST_4i 0x0
/// %unsigned 1 ST_5i 0x0
/// %unsigned 1 ST_6i 0x0
/// %unsigned 1 ST_7i 0x0
/// %unsigned 1 ST_8i 0x0
/// %unsigned 1 ST_9i 0x0
/// %unsigned 1 ST_10i 0x0
/// %unsigned 1 ST_11i 0x0
/// %unsigned 1 ST_12i 0x0
/// %unsigned 1 ST_13i 0x0
/// %unsigned 1 ST_14i 0x0
/// %unsigned 1 ST_15i 0x0
/// %unsigned 1 ST_16i 0x0
/// %unsigned 1 ST_17i 0x0
/// %unsigned 1 ST_18i 0x0
/// %unsigned 1 ST_19i 0x0
/// %unsigned 1 ST_20i 0x0
/// %unsigned 1 ST_21i 0x0
/// %unsigned 1 ST_22i 0x0
/// %unsigned 1 ST_23i 0x0
/// %unsigned 1 ST_24i 0x0
/// %unsigned 1 ST_25i 0x0
/// %unsigned 1 ST_26i 0x0
/// %unsigned 1 ST_27i 0x0
/// %unsigned 1 ST_28i 0x0
/// %unsigned 1 ST_29i 0x0
/// %unsigned 1 ST_30i 0x0
/// %unsigned 1 ST_31i 0x0
/// ###
/// * All cell 'empty' status
/// ###
/// @ 0x0038C full (WOC-)
/// %unsigned 1 ST_0i 0x0
/// %unsigned 1 ST_1i 0x0
/// %unsigned 1 ST_2i 0x0
/// %unsigned 1 ST_3i 0x0
/// %unsigned 1 ST_4i 0x0
/// %unsigned 1 ST_5i 0x0
/// %unsigned 1 ST_6i 0x0
/// %unsigned 1 ST_7i 0x0
/// %unsigned 1 ST_8i 0x0
/// %unsigned 1 ST_9i 0x0
/// %unsigned 1 ST_10i 0x0
/// %unsigned 1 ST_11i 0x0
/// %unsigned 1 ST_12i 0x0
/// %unsigned 1 ST_13i 0x0
/// %unsigned 1 ST_14i 0x0
/// %unsigned 1 ST_15i 0x0
/// %unsigned 1 ST_16i 0x0
/// %unsigned 1 ST_17i 0x0
/// %unsigned 1 ST_18i 0x0
/// %unsigned 1 ST_19i 0x0
/// %unsigned 1 ST_20i 0x0
/// %unsigned 1 ST_21i 0x0
/// %unsigned 1 ST_22i 0x0
/// %unsigned 1 ST_23i 0x0
/// %unsigned 1 ST_24i 0x0
/// %unsigned 1 ST_25i 0x0
/// %unsigned 1 ST_26i 0x0
/// %unsigned 1 ST_27i 0x0
/// %unsigned 1 ST_28i 0x0
/// %unsigned 1 ST_29i 0x0
/// %unsigned 1 ST_30i 0x0
/// %unsigned 1 ST_31i 0x0
/// ###
/// * All cell 'full' status
/// ###
/// @ 0x00390 almostEmpty (WOC-)
/// %unsigned 1 ST_0i 0x0
/// %unsigned 1 ST_1i 0x0
/// %unsigned 1 ST_2i 0x0
/// %unsigned 1 ST_3i 0x0
/// %unsigned 1 ST_4i 0x0
/// %unsigned 1 ST_5i 0x0
/// %unsigned 1 ST_6i 0x0
/// %unsigned 1 ST_7i 0x0
/// %unsigned 1 ST_8i 0x0
/// %unsigned 1 ST_9i 0x0
/// %unsigned 1 ST_10i 0x0
/// %unsigned 1 ST_11i 0x0
/// %unsigned 1 ST_12i 0x0
/// %unsigned 1 ST_13i 0x0
/// %unsigned 1 ST_14i 0x0
/// %unsigned 1 ST_15i 0x0
/// %unsigned 1 ST_16i 0x0
/// %unsigned 1 ST_17i 0x0
/// %unsigned 1 ST_18i 0x0
/// %unsigned 1 ST_19i 0x0
/// %unsigned 1 ST_20i 0x0
/// %unsigned 1 ST_21i 0x0
/// %unsigned 1 ST_22i 0x0
/// %unsigned 1 ST_23i 0x0
/// %unsigned 1 ST_24i 0x0
/// %unsigned 1 ST_25i 0x0
/// %unsigned 1 ST_26i 0x0
/// %unsigned 1 ST_27i 0x0
/// %unsigned 1 ST_28i 0x0
/// %unsigned 1 ST_29i 0x0
/// %unsigned 1 ST_30i 0x0
/// %unsigned 1 ST_31i 0x0
/// ###
/// * All cell 'almostEmpty' status
/// ###
/// @ 0x00394 almostFull (WOC-)
/// %unsigned 1 ST_0i 0x0
/// %unsigned 1 ST_1i 0x0
/// %unsigned 1 ST_2i 0x0
/// %unsigned 1 ST_3i 0x0
/// %unsigned 1 ST_4i 0x0
/// %unsigned 1 ST_5i 0x0
/// %unsigned 1 ST_6i 0x0
/// %unsigned 1 ST_7i 0x0
/// %unsigned 1 ST_8i 0x0
/// %unsigned 1 ST_9i 0x0
/// %unsigned 1 ST_10i 0x0
/// %unsigned 1 ST_11i 0x0
/// %unsigned 1 ST_12i 0x0
/// %unsigned 1 ST_13i 0x0
/// %unsigned 1 ST_14i 0x0
/// %unsigned 1 ST_15i 0x0
/// %unsigned 1 ST_16i 0x0
/// %unsigned 1 ST_17i 0x0
/// %unsigned 1 ST_18i 0x0
/// %unsigned 1 ST_19i 0x0
/// %unsigned 1 ST_20i 0x0
/// %unsigned 1 ST_21i 0x0
/// %unsigned 1 ST_22i 0x0
/// %unsigned 1 ST_23i 0x0
/// %unsigned 1 ST_24i 0x0
/// %unsigned 1 ST_25i 0x0
/// %unsigned 1 ST_26i 0x0
/// %unsigned 1 ST_27i 0x0
/// %unsigned 1 ST_28i 0x0
/// %unsigned 1 ST_29i 0x0
/// %unsigned 1 ST_30i 0x0
/// %unsigned 1 ST_31i 0x0
/// ###
/// * All cell 'almostFull' status
/// ###
/// @ 0x00398 (W-)
/// # # Stuffing bytes...
/// %% 832
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 1024B, bits: 1152b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_SemaHub
#define h_SemaHub (){}
#define RA_SemaHub_Query 0x0000
#define RA_SemaHub_counter 0x0000
///////////////////////////////////////////////////////////
#define RA_SemaHub_ARR 0x0100
#define RA_SemaHub_cell 0x0100
///////////////////////////////////////////////////////////
#define RA_SemaHub_PUSH 0x0380
#define BA_SemaHub_PUSH_ID 0x0380
#define B16SemaHub_PUSH_ID 0x0380
#define LSb32SemaHub_PUSH_ID 0
#define LSb16SemaHub_PUSH_ID 0
#define bSemaHub_PUSH_ID 8
#define MSK32SemaHub_PUSH_ID 0x000000FF
#define BA_SemaHub_PUSH_delta 0x0381
#define B16SemaHub_PUSH_delta 0x0380
#define LSb32SemaHub_PUSH_delta 8
#define LSb16SemaHub_PUSH_delta 8
#define bSemaHub_PUSH_delta 8
#define MSK32SemaHub_PUSH_delta 0x0000FF00
///////////////////////////////////////////////////////////
#define RA_SemaHub_POP 0x0384
#define BA_SemaHub_POP_ID 0x0384
#define B16SemaHub_POP_ID 0x0384
#define LSb32SemaHub_POP_ID 0
#define LSb16SemaHub_POP_ID 0
#define bSemaHub_POP_ID 8
#define MSK32SemaHub_POP_ID 0x000000FF
#define BA_SemaHub_POP_delta 0x0385
#define B16SemaHub_POP_delta 0x0384
#define LSb32SemaHub_POP_delta 8
#define LSb16SemaHub_POP_delta 8
#define bSemaHub_POP_delta 8
#define MSK32SemaHub_POP_delta 0x0000FF00
///////////////////////////////////////////////////////////
#define RA_SemaHub_empty 0x0388
#define BA_SemaHub_empty_ST_0i 0x0388
#define B16SemaHub_empty_ST_0i 0x0388
#define LSb32SemaHub_empty_ST_0i 0
#define LSb16SemaHub_empty_ST_0i 0
#define bSemaHub_empty_ST_0i 1
#define MSK32SemaHub_empty_ST_0i 0x00000001
#define BA_SemaHub_empty_ST_1i 0x0388
#define B16SemaHub_empty_ST_1i 0x0388
#define LSb32SemaHub_empty_ST_1i 1
#define LSb16SemaHub_empty_ST_1i 1
#define bSemaHub_empty_ST_1i 1
#define MSK32SemaHub_empty_ST_1i 0x00000002
#define BA_SemaHub_empty_ST_2i 0x0388
#define B16SemaHub_empty_ST_2i 0x0388
#define LSb32SemaHub_empty_ST_2i 2
#define LSb16SemaHub_empty_ST_2i 2
#define bSemaHub_empty_ST_2i 1
#define MSK32SemaHub_empty_ST_2i 0x00000004
#define BA_SemaHub_empty_ST_3i 0x0388
#define B16SemaHub_empty_ST_3i 0x0388
#define LSb32SemaHub_empty_ST_3i 3
#define LSb16SemaHub_empty_ST_3i 3
#define bSemaHub_empty_ST_3i 1
#define MSK32SemaHub_empty_ST_3i 0x00000008
#define BA_SemaHub_empty_ST_4i 0x0388
#define B16SemaHub_empty_ST_4i 0x0388
#define LSb32SemaHub_empty_ST_4i 4
#define LSb16SemaHub_empty_ST_4i 4
#define bSemaHub_empty_ST_4i 1
#define MSK32SemaHub_empty_ST_4i 0x00000010
#define BA_SemaHub_empty_ST_5i 0x0388
#define B16SemaHub_empty_ST_5i 0x0388
#define LSb32SemaHub_empty_ST_5i 5
#define LSb16SemaHub_empty_ST_5i 5
#define bSemaHub_empty_ST_5i 1
#define MSK32SemaHub_empty_ST_5i 0x00000020
#define BA_SemaHub_empty_ST_6i 0x0388
#define B16SemaHub_empty_ST_6i 0x0388
#define LSb32SemaHub_empty_ST_6i 6
#define LSb16SemaHub_empty_ST_6i 6
#define bSemaHub_empty_ST_6i 1
#define MSK32SemaHub_empty_ST_6i 0x00000040
#define BA_SemaHub_empty_ST_7i 0x0388
#define B16SemaHub_empty_ST_7i 0x0388
#define LSb32SemaHub_empty_ST_7i 7
#define LSb16SemaHub_empty_ST_7i 7
#define bSemaHub_empty_ST_7i 1
#define MSK32SemaHub_empty_ST_7i 0x00000080
#define BA_SemaHub_empty_ST_8i 0x0389
#define B16SemaHub_empty_ST_8i 0x0388
#define LSb32SemaHub_empty_ST_8i 8
#define LSb16SemaHub_empty_ST_8i 8
#define bSemaHub_empty_ST_8i 1
#define MSK32SemaHub_empty_ST_8i 0x00000100
#define BA_SemaHub_empty_ST_9i 0x0389
#define B16SemaHub_empty_ST_9i 0x0388
#define LSb32SemaHub_empty_ST_9i 9
#define LSb16SemaHub_empty_ST_9i 9
#define bSemaHub_empty_ST_9i 1
#define MSK32SemaHub_empty_ST_9i 0x00000200
#define BA_SemaHub_empty_ST_10i 0x0389
#define B16SemaHub_empty_ST_10i 0x0388
#define LSb32SemaHub_empty_ST_10i 10
#define LSb16SemaHub_empty_ST_10i 10
#define bSemaHub_empty_ST_10i 1
#define MSK32SemaHub_empty_ST_10i 0x00000400
#define BA_SemaHub_empty_ST_11i 0x0389
#define B16SemaHub_empty_ST_11i 0x0388
#define LSb32SemaHub_empty_ST_11i 11
#define LSb16SemaHub_empty_ST_11i 11
#define bSemaHub_empty_ST_11i 1
#define MSK32SemaHub_empty_ST_11i 0x00000800
#define BA_SemaHub_empty_ST_12i 0x0389
#define B16SemaHub_empty_ST_12i 0x0388
#define LSb32SemaHub_empty_ST_12i 12
#define LSb16SemaHub_empty_ST_12i 12
#define bSemaHub_empty_ST_12i 1
#define MSK32SemaHub_empty_ST_12i 0x00001000
#define BA_SemaHub_empty_ST_13i 0x0389
#define B16SemaHub_empty_ST_13i 0x0388
#define LSb32SemaHub_empty_ST_13i 13
#define LSb16SemaHub_empty_ST_13i 13
#define bSemaHub_empty_ST_13i 1
#define MSK32SemaHub_empty_ST_13i 0x00002000
#define BA_SemaHub_empty_ST_14i 0x0389
#define B16SemaHub_empty_ST_14i 0x0388
#define LSb32SemaHub_empty_ST_14i 14
#define LSb16SemaHub_empty_ST_14i 14
#define bSemaHub_empty_ST_14i 1
#define MSK32SemaHub_empty_ST_14i 0x00004000
#define BA_SemaHub_empty_ST_15i 0x0389
#define B16SemaHub_empty_ST_15i 0x0388
#define LSb32SemaHub_empty_ST_15i 15
#define LSb16SemaHub_empty_ST_15i 15
#define bSemaHub_empty_ST_15i 1
#define MSK32SemaHub_empty_ST_15i 0x00008000
#define BA_SemaHub_empty_ST_16i 0x038A
#define B16SemaHub_empty_ST_16i 0x038A
#define LSb32SemaHub_empty_ST_16i 16
#define LSb16SemaHub_empty_ST_16i 0
#define bSemaHub_empty_ST_16i 1
#define MSK32SemaHub_empty_ST_16i 0x00010000
#define BA_SemaHub_empty_ST_17i 0x038A
#define B16SemaHub_empty_ST_17i 0x038A
#define LSb32SemaHub_empty_ST_17i 17
#define LSb16SemaHub_empty_ST_17i 1
#define bSemaHub_empty_ST_17i 1
#define MSK32SemaHub_empty_ST_17i 0x00020000
#define BA_SemaHub_empty_ST_18i 0x038A
#define B16SemaHub_empty_ST_18i 0x038A
#define LSb32SemaHub_empty_ST_18i 18
#define LSb16SemaHub_empty_ST_18i 2
#define bSemaHub_empty_ST_18i 1
#define MSK32SemaHub_empty_ST_18i 0x00040000
#define BA_SemaHub_empty_ST_19i 0x038A
#define B16SemaHub_empty_ST_19i 0x038A
#define LSb32SemaHub_empty_ST_19i 19
#define LSb16SemaHub_empty_ST_19i 3
#define bSemaHub_empty_ST_19i 1
#define MSK32SemaHub_empty_ST_19i 0x00080000
#define BA_SemaHub_empty_ST_20i 0x038A
#define B16SemaHub_empty_ST_20i 0x038A
#define LSb32SemaHub_empty_ST_20i 20
#define LSb16SemaHub_empty_ST_20i 4
#define bSemaHub_empty_ST_20i 1
#define MSK32SemaHub_empty_ST_20i 0x00100000
#define BA_SemaHub_empty_ST_21i 0x038A
#define B16SemaHub_empty_ST_21i 0x038A
#define LSb32SemaHub_empty_ST_21i 21
#define LSb16SemaHub_empty_ST_21i 5
#define bSemaHub_empty_ST_21i 1
#define MSK32SemaHub_empty_ST_21i 0x00200000
#define BA_SemaHub_empty_ST_22i 0x038A
#define B16SemaHub_empty_ST_22i 0x038A
#define LSb32SemaHub_empty_ST_22i 22
#define LSb16SemaHub_empty_ST_22i 6
#define bSemaHub_empty_ST_22i 1
#define MSK32SemaHub_empty_ST_22i 0x00400000
#define BA_SemaHub_empty_ST_23i 0x038A
#define B16SemaHub_empty_ST_23i 0x038A
#define LSb32SemaHub_empty_ST_23i 23
#define LSb16SemaHub_empty_ST_23i 7
#define bSemaHub_empty_ST_23i 1
#define MSK32SemaHub_empty_ST_23i 0x00800000
#define BA_SemaHub_empty_ST_24i 0x038B
#define B16SemaHub_empty_ST_24i 0x038A
#define LSb32SemaHub_empty_ST_24i 24
#define LSb16SemaHub_empty_ST_24i 8
#define bSemaHub_empty_ST_24i 1
#define MSK32SemaHub_empty_ST_24i 0x01000000
#define BA_SemaHub_empty_ST_25i 0x038B
#define B16SemaHub_empty_ST_25i 0x038A
#define LSb32SemaHub_empty_ST_25i 25
#define LSb16SemaHub_empty_ST_25i 9
#define bSemaHub_empty_ST_25i 1
#define MSK32SemaHub_empty_ST_25i 0x02000000
#define BA_SemaHub_empty_ST_26i 0x038B
#define B16SemaHub_empty_ST_26i 0x038A
#define LSb32SemaHub_empty_ST_26i 26
#define LSb16SemaHub_empty_ST_26i 10
#define bSemaHub_empty_ST_26i 1
#define MSK32SemaHub_empty_ST_26i 0x04000000
#define BA_SemaHub_empty_ST_27i 0x038B
#define B16SemaHub_empty_ST_27i 0x038A
#define LSb32SemaHub_empty_ST_27i 27
#define LSb16SemaHub_empty_ST_27i 11
#define bSemaHub_empty_ST_27i 1
#define MSK32SemaHub_empty_ST_27i 0x08000000
#define BA_SemaHub_empty_ST_28i 0x038B
#define B16SemaHub_empty_ST_28i 0x038A
#define LSb32SemaHub_empty_ST_28i 28
#define LSb16SemaHub_empty_ST_28i 12
#define bSemaHub_empty_ST_28i 1
#define MSK32SemaHub_empty_ST_28i 0x10000000
#define BA_SemaHub_empty_ST_29i 0x038B
#define B16SemaHub_empty_ST_29i 0x038A
#define LSb32SemaHub_empty_ST_29i 29
#define LSb16SemaHub_empty_ST_29i 13
#define bSemaHub_empty_ST_29i 1
#define MSK32SemaHub_empty_ST_29i 0x20000000
#define BA_SemaHub_empty_ST_30i 0x038B
#define B16SemaHub_empty_ST_30i 0x038A
#define LSb32SemaHub_empty_ST_30i 30
#define LSb16SemaHub_empty_ST_30i 14
#define bSemaHub_empty_ST_30i 1
#define MSK32SemaHub_empty_ST_30i 0x40000000
#define BA_SemaHub_empty_ST_31i 0x038B
#define B16SemaHub_empty_ST_31i 0x038A
#define LSb32SemaHub_empty_ST_31i 31
#define LSb16SemaHub_empty_ST_31i 15
#define bSemaHub_empty_ST_31i 1
#define MSK32SemaHub_empty_ST_31i 0x80000000
///////////////////////////////////////////////////////////
#define RA_SemaHub_full 0x038C
#define BA_SemaHub_full_ST_0i 0x038C
#define B16SemaHub_full_ST_0i 0x038C
#define LSb32SemaHub_full_ST_0i 0
#define LSb16SemaHub_full_ST_0i 0
#define bSemaHub_full_ST_0i 1
#define MSK32SemaHub_full_ST_0i 0x00000001
#define BA_SemaHub_full_ST_1i 0x038C
#define B16SemaHub_full_ST_1i 0x038C
#define LSb32SemaHub_full_ST_1i 1
#define LSb16SemaHub_full_ST_1i 1
#define bSemaHub_full_ST_1i 1
#define MSK32SemaHub_full_ST_1i 0x00000002
#define BA_SemaHub_full_ST_2i 0x038C
#define B16SemaHub_full_ST_2i 0x038C
#define LSb32SemaHub_full_ST_2i 2
#define LSb16SemaHub_full_ST_2i 2
#define bSemaHub_full_ST_2i 1
#define MSK32SemaHub_full_ST_2i 0x00000004
#define BA_SemaHub_full_ST_3i 0x038C
#define B16SemaHub_full_ST_3i 0x038C
#define LSb32SemaHub_full_ST_3i 3
#define LSb16SemaHub_full_ST_3i 3
#define bSemaHub_full_ST_3i 1
#define MSK32SemaHub_full_ST_3i 0x00000008
#define BA_SemaHub_full_ST_4i 0x038C
#define B16SemaHub_full_ST_4i 0x038C
#define LSb32SemaHub_full_ST_4i 4
#define LSb16SemaHub_full_ST_4i 4
#define bSemaHub_full_ST_4i 1
#define MSK32SemaHub_full_ST_4i 0x00000010
#define BA_SemaHub_full_ST_5i 0x038C
#define B16SemaHub_full_ST_5i 0x038C
#define LSb32SemaHub_full_ST_5i 5
#define LSb16SemaHub_full_ST_5i 5
#define bSemaHub_full_ST_5i 1
#define MSK32SemaHub_full_ST_5i 0x00000020
#define BA_SemaHub_full_ST_6i 0x038C
#define B16SemaHub_full_ST_6i 0x038C
#define LSb32SemaHub_full_ST_6i 6
#define LSb16SemaHub_full_ST_6i 6
#define bSemaHub_full_ST_6i 1
#define MSK32SemaHub_full_ST_6i 0x00000040
#define BA_SemaHub_full_ST_7i 0x038C
#define B16SemaHub_full_ST_7i 0x038C
#define LSb32SemaHub_full_ST_7i 7
#define LSb16SemaHub_full_ST_7i 7
#define bSemaHub_full_ST_7i 1
#define MSK32SemaHub_full_ST_7i 0x00000080
#define BA_SemaHub_full_ST_8i 0x038D
#define B16SemaHub_full_ST_8i 0x038C
#define LSb32SemaHub_full_ST_8i 8
#define LSb16SemaHub_full_ST_8i 8
#define bSemaHub_full_ST_8i 1
#define MSK32SemaHub_full_ST_8i 0x00000100
#define BA_SemaHub_full_ST_9i 0x038D
#define B16SemaHub_full_ST_9i 0x038C
#define LSb32SemaHub_full_ST_9i 9
#define LSb16SemaHub_full_ST_9i 9
#define bSemaHub_full_ST_9i 1
#define MSK32SemaHub_full_ST_9i 0x00000200
#define BA_SemaHub_full_ST_10i 0x038D
#define B16SemaHub_full_ST_10i 0x038C
#define LSb32SemaHub_full_ST_10i 10
#define LSb16SemaHub_full_ST_10i 10
#define bSemaHub_full_ST_10i 1
#define MSK32SemaHub_full_ST_10i 0x00000400
#define BA_SemaHub_full_ST_11i 0x038D
#define B16SemaHub_full_ST_11i 0x038C
#define LSb32SemaHub_full_ST_11i 11
#define LSb16SemaHub_full_ST_11i 11
#define bSemaHub_full_ST_11i 1
#define MSK32SemaHub_full_ST_11i 0x00000800
#define BA_SemaHub_full_ST_12i 0x038D
#define B16SemaHub_full_ST_12i 0x038C
#define LSb32SemaHub_full_ST_12i 12
#define LSb16SemaHub_full_ST_12i 12
#define bSemaHub_full_ST_12i 1
#define MSK32SemaHub_full_ST_12i 0x00001000
#define BA_SemaHub_full_ST_13i 0x038D
#define B16SemaHub_full_ST_13i 0x038C
#define LSb32SemaHub_full_ST_13i 13
#define LSb16SemaHub_full_ST_13i 13
#define bSemaHub_full_ST_13i 1
#define MSK32SemaHub_full_ST_13i 0x00002000
#define BA_SemaHub_full_ST_14i 0x038D
#define B16SemaHub_full_ST_14i 0x038C
#define LSb32SemaHub_full_ST_14i 14
#define LSb16SemaHub_full_ST_14i 14
#define bSemaHub_full_ST_14i 1
#define MSK32SemaHub_full_ST_14i 0x00004000
#define BA_SemaHub_full_ST_15i 0x038D
#define B16SemaHub_full_ST_15i 0x038C
#define LSb32SemaHub_full_ST_15i 15
#define LSb16SemaHub_full_ST_15i 15
#define bSemaHub_full_ST_15i 1
#define MSK32SemaHub_full_ST_15i 0x00008000
#define BA_SemaHub_full_ST_16i 0x038E
#define B16SemaHub_full_ST_16i 0x038E
#define LSb32SemaHub_full_ST_16i 16
#define LSb16SemaHub_full_ST_16i 0
#define bSemaHub_full_ST_16i 1
#define MSK32SemaHub_full_ST_16i 0x00010000
#define BA_SemaHub_full_ST_17i 0x038E
#define B16SemaHub_full_ST_17i 0x038E
#define LSb32SemaHub_full_ST_17i 17
#define LSb16SemaHub_full_ST_17i 1
#define bSemaHub_full_ST_17i 1
#define MSK32SemaHub_full_ST_17i 0x00020000
#define BA_SemaHub_full_ST_18i 0x038E
#define B16SemaHub_full_ST_18i 0x038E
#define LSb32SemaHub_full_ST_18i 18
#define LSb16SemaHub_full_ST_18i 2
#define bSemaHub_full_ST_18i 1
#define MSK32SemaHub_full_ST_18i 0x00040000
#define BA_SemaHub_full_ST_19i 0x038E
#define B16SemaHub_full_ST_19i 0x038E
#define LSb32SemaHub_full_ST_19i 19
#define LSb16SemaHub_full_ST_19i 3
#define bSemaHub_full_ST_19i 1
#define MSK32SemaHub_full_ST_19i 0x00080000
#define BA_SemaHub_full_ST_20i 0x038E
#define B16SemaHub_full_ST_20i 0x038E
#define LSb32SemaHub_full_ST_20i 20
#define LSb16SemaHub_full_ST_20i 4
#define bSemaHub_full_ST_20i 1
#define MSK32SemaHub_full_ST_20i 0x00100000
#define BA_SemaHub_full_ST_21i 0x038E
#define B16SemaHub_full_ST_21i 0x038E
#define LSb32SemaHub_full_ST_21i 21
#define LSb16SemaHub_full_ST_21i 5
#define bSemaHub_full_ST_21i 1
#define MSK32SemaHub_full_ST_21i 0x00200000
#define BA_SemaHub_full_ST_22i 0x038E
#define B16SemaHub_full_ST_22i 0x038E
#define LSb32SemaHub_full_ST_22i 22
#define LSb16SemaHub_full_ST_22i 6
#define bSemaHub_full_ST_22i 1
#define MSK32SemaHub_full_ST_22i 0x00400000
#define BA_SemaHub_full_ST_23i 0x038E
#define B16SemaHub_full_ST_23i 0x038E
#define LSb32SemaHub_full_ST_23i 23
#define LSb16SemaHub_full_ST_23i 7
#define bSemaHub_full_ST_23i 1
#define MSK32SemaHub_full_ST_23i 0x00800000
#define BA_SemaHub_full_ST_24i 0x038F
#define B16SemaHub_full_ST_24i 0x038E
#define LSb32SemaHub_full_ST_24i 24
#define LSb16SemaHub_full_ST_24i 8
#define bSemaHub_full_ST_24i 1
#define MSK32SemaHub_full_ST_24i 0x01000000
#define BA_SemaHub_full_ST_25i 0x038F
#define B16SemaHub_full_ST_25i 0x038E
#define LSb32SemaHub_full_ST_25i 25
#define LSb16SemaHub_full_ST_25i 9
#define bSemaHub_full_ST_25i 1
#define MSK32SemaHub_full_ST_25i 0x02000000
#define BA_SemaHub_full_ST_26i 0x038F
#define B16SemaHub_full_ST_26i 0x038E
#define LSb32SemaHub_full_ST_26i 26
#define LSb16SemaHub_full_ST_26i 10
#define bSemaHub_full_ST_26i 1
#define MSK32SemaHub_full_ST_26i 0x04000000
#define BA_SemaHub_full_ST_27i 0x038F
#define B16SemaHub_full_ST_27i 0x038E
#define LSb32SemaHub_full_ST_27i 27
#define LSb16SemaHub_full_ST_27i 11
#define bSemaHub_full_ST_27i 1
#define MSK32SemaHub_full_ST_27i 0x08000000
#define BA_SemaHub_full_ST_28i 0x038F
#define B16SemaHub_full_ST_28i 0x038E
#define LSb32SemaHub_full_ST_28i 28
#define LSb16SemaHub_full_ST_28i 12
#define bSemaHub_full_ST_28i 1
#define MSK32SemaHub_full_ST_28i 0x10000000
#define BA_SemaHub_full_ST_29i 0x038F
#define B16SemaHub_full_ST_29i 0x038E
#define LSb32SemaHub_full_ST_29i 29
#define LSb16SemaHub_full_ST_29i 13
#define bSemaHub_full_ST_29i 1
#define MSK32SemaHub_full_ST_29i 0x20000000
#define BA_SemaHub_full_ST_30i 0x038F
#define B16SemaHub_full_ST_30i 0x038E
#define LSb32SemaHub_full_ST_30i 30
#define LSb16SemaHub_full_ST_30i 14
#define bSemaHub_full_ST_30i 1
#define MSK32SemaHub_full_ST_30i 0x40000000
#define BA_SemaHub_full_ST_31i 0x038F
#define B16SemaHub_full_ST_31i 0x038E
#define LSb32SemaHub_full_ST_31i 31
#define LSb16SemaHub_full_ST_31i 15
#define bSemaHub_full_ST_31i 1
#define MSK32SemaHub_full_ST_31i 0x80000000
///////////////////////////////////////////////////////////
#define RA_SemaHub_almostEmpty 0x0390
#define BA_SemaHub_almostEmpty_ST_0i 0x0390
#define B16SemaHub_almostEmpty_ST_0i 0x0390
#define LSb32SemaHub_almostEmpty_ST_0i 0
#define LSb16SemaHub_almostEmpty_ST_0i 0
#define bSemaHub_almostEmpty_ST_0i 1
#define MSK32SemaHub_almostEmpty_ST_0i 0x00000001
#define BA_SemaHub_almostEmpty_ST_1i 0x0390
#define B16SemaHub_almostEmpty_ST_1i 0x0390
#define LSb32SemaHub_almostEmpty_ST_1i 1
#define LSb16SemaHub_almostEmpty_ST_1i 1
#define bSemaHub_almostEmpty_ST_1i 1
#define MSK32SemaHub_almostEmpty_ST_1i 0x00000002
#define BA_SemaHub_almostEmpty_ST_2i 0x0390
#define B16SemaHub_almostEmpty_ST_2i 0x0390
#define LSb32SemaHub_almostEmpty_ST_2i 2
#define LSb16SemaHub_almostEmpty_ST_2i 2
#define bSemaHub_almostEmpty_ST_2i 1
#define MSK32SemaHub_almostEmpty_ST_2i 0x00000004
#define BA_SemaHub_almostEmpty_ST_3i 0x0390
#define B16SemaHub_almostEmpty_ST_3i 0x0390
#define LSb32SemaHub_almostEmpty_ST_3i 3
#define LSb16SemaHub_almostEmpty_ST_3i 3
#define bSemaHub_almostEmpty_ST_3i 1
#define MSK32SemaHub_almostEmpty_ST_3i 0x00000008
#define BA_SemaHub_almostEmpty_ST_4i 0x0390
#define B16SemaHub_almostEmpty_ST_4i 0x0390
#define LSb32SemaHub_almostEmpty_ST_4i 4
#define LSb16SemaHub_almostEmpty_ST_4i 4
#define bSemaHub_almostEmpty_ST_4i 1
#define MSK32SemaHub_almostEmpty_ST_4i 0x00000010
#define BA_SemaHub_almostEmpty_ST_5i 0x0390
#define B16SemaHub_almostEmpty_ST_5i 0x0390
#define LSb32SemaHub_almostEmpty_ST_5i 5
#define LSb16SemaHub_almostEmpty_ST_5i 5
#define bSemaHub_almostEmpty_ST_5i 1
#define MSK32SemaHub_almostEmpty_ST_5i 0x00000020
#define BA_SemaHub_almostEmpty_ST_6i 0x0390
#define B16SemaHub_almostEmpty_ST_6i 0x0390
#define LSb32SemaHub_almostEmpty_ST_6i 6
#define LSb16SemaHub_almostEmpty_ST_6i 6
#define bSemaHub_almostEmpty_ST_6i 1
#define MSK32SemaHub_almostEmpty_ST_6i 0x00000040
#define BA_SemaHub_almostEmpty_ST_7i 0x0390
#define B16SemaHub_almostEmpty_ST_7i 0x0390
#define LSb32SemaHub_almostEmpty_ST_7i 7
#define LSb16SemaHub_almostEmpty_ST_7i 7
#define bSemaHub_almostEmpty_ST_7i 1
#define MSK32SemaHub_almostEmpty_ST_7i 0x00000080
#define BA_SemaHub_almostEmpty_ST_8i 0x0391
#define B16SemaHub_almostEmpty_ST_8i 0x0390
#define LSb32SemaHub_almostEmpty_ST_8i 8
#define LSb16SemaHub_almostEmpty_ST_8i 8
#define bSemaHub_almostEmpty_ST_8i 1
#define MSK32SemaHub_almostEmpty_ST_8i 0x00000100
#define BA_SemaHub_almostEmpty_ST_9i 0x0391
#define B16SemaHub_almostEmpty_ST_9i 0x0390
#define LSb32SemaHub_almostEmpty_ST_9i 9
#define LSb16SemaHub_almostEmpty_ST_9i 9
#define bSemaHub_almostEmpty_ST_9i 1
#define MSK32SemaHub_almostEmpty_ST_9i 0x00000200
#define BA_SemaHub_almostEmpty_ST_10i 0x0391
#define B16SemaHub_almostEmpty_ST_10i 0x0390
#define LSb32SemaHub_almostEmpty_ST_10i 10
#define LSb16SemaHub_almostEmpty_ST_10i 10
#define bSemaHub_almostEmpty_ST_10i 1
#define MSK32SemaHub_almostEmpty_ST_10i 0x00000400
#define BA_SemaHub_almostEmpty_ST_11i 0x0391
#define B16SemaHub_almostEmpty_ST_11i 0x0390
#define LSb32SemaHub_almostEmpty_ST_11i 11
#define LSb16SemaHub_almostEmpty_ST_11i 11
#define bSemaHub_almostEmpty_ST_11i 1
#define MSK32SemaHub_almostEmpty_ST_11i 0x00000800
#define BA_SemaHub_almostEmpty_ST_12i 0x0391
#define B16SemaHub_almostEmpty_ST_12i 0x0390
#define LSb32SemaHub_almostEmpty_ST_12i 12
#define LSb16SemaHub_almostEmpty_ST_12i 12
#define bSemaHub_almostEmpty_ST_12i 1
#define MSK32SemaHub_almostEmpty_ST_12i 0x00001000
#define BA_SemaHub_almostEmpty_ST_13i 0x0391
#define B16SemaHub_almostEmpty_ST_13i 0x0390
#define LSb32SemaHub_almostEmpty_ST_13i 13
#define LSb16SemaHub_almostEmpty_ST_13i 13
#define bSemaHub_almostEmpty_ST_13i 1
#define MSK32SemaHub_almostEmpty_ST_13i 0x00002000
#define BA_SemaHub_almostEmpty_ST_14i 0x0391
#define B16SemaHub_almostEmpty_ST_14i 0x0390
#define LSb32SemaHub_almostEmpty_ST_14i 14
#define LSb16SemaHub_almostEmpty_ST_14i 14
#define bSemaHub_almostEmpty_ST_14i 1
#define MSK32SemaHub_almostEmpty_ST_14i 0x00004000
#define BA_SemaHub_almostEmpty_ST_15i 0x0391
#define B16SemaHub_almostEmpty_ST_15i 0x0390
#define LSb32SemaHub_almostEmpty_ST_15i 15
#define LSb16SemaHub_almostEmpty_ST_15i 15
#define bSemaHub_almostEmpty_ST_15i 1
#define MSK32SemaHub_almostEmpty_ST_15i 0x00008000
#define BA_SemaHub_almostEmpty_ST_16i 0x0392
#define B16SemaHub_almostEmpty_ST_16i 0x0392
#define LSb32SemaHub_almostEmpty_ST_16i 16
#define LSb16SemaHub_almostEmpty_ST_16i 0
#define bSemaHub_almostEmpty_ST_16i 1
#define MSK32SemaHub_almostEmpty_ST_16i 0x00010000
#define BA_SemaHub_almostEmpty_ST_17i 0x0392
#define B16SemaHub_almostEmpty_ST_17i 0x0392
#define LSb32SemaHub_almostEmpty_ST_17i 17
#define LSb16SemaHub_almostEmpty_ST_17i 1
#define bSemaHub_almostEmpty_ST_17i 1
#define MSK32SemaHub_almostEmpty_ST_17i 0x00020000
#define BA_SemaHub_almostEmpty_ST_18i 0x0392
#define B16SemaHub_almostEmpty_ST_18i 0x0392
#define LSb32SemaHub_almostEmpty_ST_18i 18
#define LSb16SemaHub_almostEmpty_ST_18i 2
#define bSemaHub_almostEmpty_ST_18i 1
#define MSK32SemaHub_almostEmpty_ST_18i 0x00040000
#define BA_SemaHub_almostEmpty_ST_19i 0x0392
#define B16SemaHub_almostEmpty_ST_19i 0x0392
#define LSb32SemaHub_almostEmpty_ST_19i 19
#define LSb16SemaHub_almostEmpty_ST_19i 3
#define bSemaHub_almostEmpty_ST_19i 1
#define MSK32SemaHub_almostEmpty_ST_19i 0x00080000
#define BA_SemaHub_almostEmpty_ST_20i 0x0392
#define B16SemaHub_almostEmpty_ST_20i 0x0392
#define LSb32SemaHub_almostEmpty_ST_20i 20
#define LSb16SemaHub_almostEmpty_ST_20i 4
#define bSemaHub_almostEmpty_ST_20i 1
#define MSK32SemaHub_almostEmpty_ST_20i 0x00100000
#define BA_SemaHub_almostEmpty_ST_21i 0x0392
#define B16SemaHub_almostEmpty_ST_21i 0x0392
#define LSb32SemaHub_almostEmpty_ST_21i 21
#define LSb16SemaHub_almostEmpty_ST_21i 5
#define bSemaHub_almostEmpty_ST_21i 1
#define MSK32SemaHub_almostEmpty_ST_21i 0x00200000
#define BA_SemaHub_almostEmpty_ST_22i 0x0392
#define B16SemaHub_almostEmpty_ST_22i 0x0392
#define LSb32SemaHub_almostEmpty_ST_22i 22
#define LSb16SemaHub_almostEmpty_ST_22i 6
#define bSemaHub_almostEmpty_ST_22i 1
#define MSK32SemaHub_almostEmpty_ST_22i 0x00400000
#define BA_SemaHub_almostEmpty_ST_23i 0x0392
#define B16SemaHub_almostEmpty_ST_23i 0x0392
#define LSb32SemaHub_almostEmpty_ST_23i 23
#define LSb16SemaHub_almostEmpty_ST_23i 7
#define bSemaHub_almostEmpty_ST_23i 1
#define MSK32SemaHub_almostEmpty_ST_23i 0x00800000
#define BA_SemaHub_almostEmpty_ST_24i 0x0393
#define B16SemaHub_almostEmpty_ST_24i 0x0392
#define LSb32SemaHub_almostEmpty_ST_24i 24
#define LSb16SemaHub_almostEmpty_ST_24i 8
#define bSemaHub_almostEmpty_ST_24i 1
#define MSK32SemaHub_almostEmpty_ST_24i 0x01000000
#define BA_SemaHub_almostEmpty_ST_25i 0x0393
#define B16SemaHub_almostEmpty_ST_25i 0x0392
#define LSb32SemaHub_almostEmpty_ST_25i 25
#define LSb16SemaHub_almostEmpty_ST_25i 9
#define bSemaHub_almostEmpty_ST_25i 1
#define MSK32SemaHub_almostEmpty_ST_25i 0x02000000
#define BA_SemaHub_almostEmpty_ST_26i 0x0393
#define B16SemaHub_almostEmpty_ST_26i 0x0392
#define LSb32SemaHub_almostEmpty_ST_26i 26
#define LSb16SemaHub_almostEmpty_ST_26i 10
#define bSemaHub_almostEmpty_ST_26i 1
#define MSK32SemaHub_almostEmpty_ST_26i 0x04000000
#define BA_SemaHub_almostEmpty_ST_27i 0x0393
#define B16SemaHub_almostEmpty_ST_27i 0x0392
#define LSb32SemaHub_almostEmpty_ST_27i 27
#define LSb16SemaHub_almostEmpty_ST_27i 11
#define bSemaHub_almostEmpty_ST_27i 1
#define MSK32SemaHub_almostEmpty_ST_27i 0x08000000
#define BA_SemaHub_almostEmpty_ST_28i 0x0393
#define B16SemaHub_almostEmpty_ST_28i 0x0392
#define LSb32SemaHub_almostEmpty_ST_28i 28
#define LSb16SemaHub_almostEmpty_ST_28i 12
#define bSemaHub_almostEmpty_ST_28i 1
#define MSK32SemaHub_almostEmpty_ST_28i 0x10000000
#define BA_SemaHub_almostEmpty_ST_29i 0x0393
#define B16SemaHub_almostEmpty_ST_29i 0x0392
#define LSb32SemaHub_almostEmpty_ST_29i 29
#define LSb16SemaHub_almostEmpty_ST_29i 13
#define bSemaHub_almostEmpty_ST_29i 1
#define MSK32SemaHub_almostEmpty_ST_29i 0x20000000
#define BA_SemaHub_almostEmpty_ST_30i 0x0393
#define B16SemaHub_almostEmpty_ST_30i 0x0392
#define LSb32SemaHub_almostEmpty_ST_30i 30
#define LSb16SemaHub_almostEmpty_ST_30i 14
#define bSemaHub_almostEmpty_ST_30i 1
#define MSK32SemaHub_almostEmpty_ST_30i 0x40000000
#define BA_SemaHub_almostEmpty_ST_31i 0x0393
#define B16SemaHub_almostEmpty_ST_31i 0x0392
#define LSb32SemaHub_almostEmpty_ST_31i 31
#define LSb16SemaHub_almostEmpty_ST_31i 15
#define bSemaHub_almostEmpty_ST_31i 1
#define MSK32SemaHub_almostEmpty_ST_31i 0x80000000
///////////////////////////////////////////////////////////
#define RA_SemaHub_almostFull 0x0394
#define BA_SemaHub_almostFull_ST_0i 0x0394
#define B16SemaHub_almostFull_ST_0i 0x0394
#define LSb32SemaHub_almostFull_ST_0i 0
#define LSb16SemaHub_almostFull_ST_0i 0
#define bSemaHub_almostFull_ST_0i 1
#define MSK32SemaHub_almostFull_ST_0i 0x00000001
#define BA_SemaHub_almostFull_ST_1i 0x0394
#define B16SemaHub_almostFull_ST_1i 0x0394
#define LSb32SemaHub_almostFull_ST_1i 1
#define LSb16SemaHub_almostFull_ST_1i 1
#define bSemaHub_almostFull_ST_1i 1
#define MSK32SemaHub_almostFull_ST_1i 0x00000002
#define BA_SemaHub_almostFull_ST_2i 0x0394
#define B16SemaHub_almostFull_ST_2i 0x0394
#define LSb32SemaHub_almostFull_ST_2i 2
#define LSb16SemaHub_almostFull_ST_2i 2
#define bSemaHub_almostFull_ST_2i 1
#define MSK32SemaHub_almostFull_ST_2i 0x00000004
#define BA_SemaHub_almostFull_ST_3i 0x0394
#define B16SemaHub_almostFull_ST_3i 0x0394
#define LSb32SemaHub_almostFull_ST_3i 3
#define LSb16SemaHub_almostFull_ST_3i 3
#define bSemaHub_almostFull_ST_3i 1
#define MSK32SemaHub_almostFull_ST_3i 0x00000008
#define BA_SemaHub_almostFull_ST_4i 0x0394
#define B16SemaHub_almostFull_ST_4i 0x0394
#define LSb32SemaHub_almostFull_ST_4i 4
#define LSb16SemaHub_almostFull_ST_4i 4
#define bSemaHub_almostFull_ST_4i 1
#define MSK32SemaHub_almostFull_ST_4i 0x00000010
#define BA_SemaHub_almostFull_ST_5i 0x0394
#define B16SemaHub_almostFull_ST_5i 0x0394
#define LSb32SemaHub_almostFull_ST_5i 5
#define LSb16SemaHub_almostFull_ST_5i 5
#define bSemaHub_almostFull_ST_5i 1
#define MSK32SemaHub_almostFull_ST_5i 0x00000020
#define BA_SemaHub_almostFull_ST_6i 0x0394
#define B16SemaHub_almostFull_ST_6i 0x0394
#define LSb32SemaHub_almostFull_ST_6i 6
#define LSb16SemaHub_almostFull_ST_6i 6
#define bSemaHub_almostFull_ST_6i 1
#define MSK32SemaHub_almostFull_ST_6i 0x00000040
#define BA_SemaHub_almostFull_ST_7i 0x0394
#define B16SemaHub_almostFull_ST_7i 0x0394
#define LSb32SemaHub_almostFull_ST_7i 7
#define LSb16SemaHub_almostFull_ST_7i 7
#define bSemaHub_almostFull_ST_7i 1
#define MSK32SemaHub_almostFull_ST_7i 0x00000080
#define BA_SemaHub_almostFull_ST_8i 0x0395
#define B16SemaHub_almostFull_ST_8i 0x0394
#define LSb32SemaHub_almostFull_ST_8i 8
#define LSb16SemaHub_almostFull_ST_8i 8
#define bSemaHub_almostFull_ST_8i 1
#define MSK32SemaHub_almostFull_ST_8i 0x00000100
#define BA_SemaHub_almostFull_ST_9i 0x0395
#define B16SemaHub_almostFull_ST_9i 0x0394
#define LSb32SemaHub_almostFull_ST_9i 9
#define LSb16SemaHub_almostFull_ST_9i 9
#define bSemaHub_almostFull_ST_9i 1
#define MSK32SemaHub_almostFull_ST_9i 0x00000200
#define BA_SemaHub_almostFull_ST_10i 0x0395
#define B16SemaHub_almostFull_ST_10i 0x0394
#define LSb32SemaHub_almostFull_ST_10i 10
#define LSb16SemaHub_almostFull_ST_10i 10
#define bSemaHub_almostFull_ST_10i 1
#define MSK32SemaHub_almostFull_ST_10i 0x00000400
#define BA_SemaHub_almostFull_ST_11i 0x0395
#define B16SemaHub_almostFull_ST_11i 0x0394
#define LSb32SemaHub_almostFull_ST_11i 11
#define LSb16SemaHub_almostFull_ST_11i 11
#define bSemaHub_almostFull_ST_11i 1
#define MSK32SemaHub_almostFull_ST_11i 0x00000800
#define BA_SemaHub_almostFull_ST_12i 0x0395
#define B16SemaHub_almostFull_ST_12i 0x0394
#define LSb32SemaHub_almostFull_ST_12i 12
#define LSb16SemaHub_almostFull_ST_12i 12
#define bSemaHub_almostFull_ST_12i 1
#define MSK32SemaHub_almostFull_ST_12i 0x00001000
#define BA_SemaHub_almostFull_ST_13i 0x0395
#define B16SemaHub_almostFull_ST_13i 0x0394
#define LSb32SemaHub_almostFull_ST_13i 13
#define LSb16SemaHub_almostFull_ST_13i 13
#define bSemaHub_almostFull_ST_13i 1
#define MSK32SemaHub_almostFull_ST_13i 0x00002000
#define BA_SemaHub_almostFull_ST_14i 0x0395
#define B16SemaHub_almostFull_ST_14i 0x0394
#define LSb32SemaHub_almostFull_ST_14i 14
#define LSb16SemaHub_almostFull_ST_14i 14
#define bSemaHub_almostFull_ST_14i 1
#define MSK32SemaHub_almostFull_ST_14i 0x00004000
#define BA_SemaHub_almostFull_ST_15i 0x0395
#define B16SemaHub_almostFull_ST_15i 0x0394
#define LSb32SemaHub_almostFull_ST_15i 15
#define LSb16SemaHub_almostFull_ST_15i 15
#define bSemaHub_almostFull_ST_15i 1
#define MSK32SemaHub_almostFull_ST_15i 0x00008000
#define BA_SemaHub_almostFull_ST_16i 0x0396
#define B16SemaHub_almostFull_ST_16i 0x0396
#define LSb32SemaHub_almostFull_ST_16i 16
#define LSb16SemaHub_almostFull_ST_16i 0
#define bSemaHub_almostFull_ST_16i 1
#define MSK32SemaHub_almostFull_ST_16i 0x00010000
#define BA_SemaHub_almostFull_ST_17i 0x0396
#define B16SemaHub_almostFull_ST_17i 0x0396
#define LSb32SemaHub_almostFull_ST_17i 17
#define LSb16SemaHub_almostFull_ST_17i 1
#define bSemaHub_almostFull_ST_17i 1
#define MSK32SemaHub_almostFull_ST_17i 0x00020000
#define BA_SemaHub_almostFull_ST_18i 0x0396
#define B16SemaHub_almostFull_ST_18i 0x0396
#define LSb32SemaHub_almostFull_ST_18i 18
#define LSb16SemaHub_almostFull_ST_18i 2
#define bSemaHub_almostFull_ST_18i 1
#define MSK32SemaHub_almostFull_ST_18i 0x00040000
#define BA_SemaHub_almostFull_ST_19i 0x0396
#define B16SemaHub_almostFull_ST_19i 0x0396
#define LSb32SemaHub_almostFull_ST_19i 19
#define LSb16SemaHub_almostFull_ST_19i 3
#define bSemaHub_almostFull_ST_19i 1
#define MSK32SemaHub_almostFull_ST_19i 0x00080000
#define BA_SemaHub_almostFull_ST_20i 0x0396
#define B16SemaHub_almostFull_ST_20i 0x0396
#define LSb32SemaHub_almostFull_ST_20i 20
#define LSb16SemaHub_almostFull_ST_20i 4
#define bSemaHub_almostFull_ST_20i 1
#define MSK32SemaHub_almostFull_ST_20i 0x00100000
#define BA_SemaHub_almostFull_ST_21i 0x0396
#define B16SemaHub_almostFull_ST_21i 0x0396
#define LSb32SemaHub_almostFull_ST_21i 21
#define LSb16SemaHub_almostFull_ST_21i 5
#define bSemaHub_almostFull_ST_21i 1
#define MSK32SemaHub_almostFull_ST_21i 0x00200000
#define BA_SemaHub_almostFull_ST_22i 0x0396
#define B16SemaHub_almostFull_ST_22i 0x0396
#define LSb32SemaHub_almostFull_ST_22i 22
#define LSb16SemaHub_almostFull_ST_22i 6
#define bSemaHub_almostFull_ST_22i 1
#define MSK32SemaHub_almostFull_ST_22i 0x00400000
#define BA_SemaHub_almostFull_ST_23i 0x0396
#define B16SemaHub_almostFull_ST_23i 0x0396
#define LSb32SemaHub_almostFull_ST_23i 23
#define LSb16SemaHub_almostFull_ST_23i 7
#define bSemaHub_almostFull_ST_23i 1
#define MSK32SemaHub_almostFull_ST_23i 0x00800000
#define BA_SemaHub_almostFull_ST_24i 0x0397
#define B16SemaHub_almostFull_ST_24i 0x0396
#define LSb32SemaHub_almostFull_ST_24i 24
#define LSb16SemaHub_almostFull_ST_24i 8
#define bSemaHub_almostFull_ST_24i 1
#define MSK32SemaHub_almostFull_ST_24i 0x01000000
#define BA_SemaHub_almostFull_ST_25i 0x0397
#define B16SemaHub_almostFull_ST_25i 0x0396
#define LSb32SemaHub_almostFull_ST_25i 25
#define LSb16SemaHub_almostFull_ST_25i 9
#define bSemaHub_almostFull_ST_25i 1
#define MSK32SemaHub_almostFull_ST_25i 0x02000000
#define BA_SemaHub_almostFull_ST_26i 0x0397
#define B16SemaHub_almostFull_ST_26i 0x0396
#define LSb32SemaHub_almostFull_ST_26i 26
#define LSb16SemaHub_almostFull_ST_26i 10
#define bSemaHub_almostFull_ST_26i 1
#define MSK32SemaHub_almostFull_ST_26i 0x04000000
#define BA_SemaHub_almostFull_ST_27i 0x0397
#define B16SemaHub_almostFull_ST_27i 0x0396
#define LSb32SemaHub_almostFull_ST_27i 27
#define LSb16SemaHub_almostFull_ST_27i 11
#define bSemaHub_almostFull_ST_27i 1
#define MSK32SemaHub_almostFull_ST_27i 0x08000000
#define BA_SemaHub_almostFull_ST_28i 0x0397
#define B16SemaHub_almostFull_ST_28i 0x0396
#define LSb32SemaHub_almostFull_ST_28i 28
#define LSb16SemaHub_almostFull_ST_28i 12
#define bSemaHub_almostFull_ST_28i 1
#define MSK32SemaHub_almostFull_ST_28i 0x10000000
#define BA_SemaHub_almostFull_ST_29i 0x0397
#define B16SemaHub_almostFull_ST_29i 0x0396
#define LSb32SemaHub_almostFull_ST_29i 29
#define LSb16SemaHub_almostFull_ST_29i 13
#define bSemaHub_almostFull_ST_29i 1
#define MSK32SemaHub_almostFull_ST_29i 0x20000000
#define BA_SemaHub_almostFull_ST_30i 0x0397
#define B16SemaHub_almostFull_ST_30i 0x0396
#define LSb32SemaHub_almostFull_ST_30i 30
#define LSb16SemaHub_almostFull_ST_30i 14
#define bSemaHub_almostFull_ST_30i 1
#define MSK32SemaHub_almostFull_ST_30i 0x40000000
#define BA_SemaHub_almostFull_ST_31i 0x0397
#define B16SemaHub_almostFull_ST_31i 0x0396
#define LSb32SemaHub_almostFull_ST_31i 31
#define LSb16SemaHub_almostFull_ST_31i 15
#define bSemaHub_almostFull_ST_31i 1
#define MSK32SemaHub_almostFull_ST_31i 0x80000000
///////////////////////////////////////////////////////////
typedef struct SIE_SemaHub {
///////////////////////////////////////////////////////////
SIE_SemaQuery ie_counter[64];
///////////////////////////////////////////////////////////
SIE_Semaphore ie_cell[32];
///////////////////////////////////////////////////////////
#define GET32SemaHub_PUSH_ID(r32) _BFGET_(r32, 7, 0)
#define SET32SemaHub_PUSH_ID(r32,v) _BFSET_(r32, 7, 0,v)
#define GET16SemaHub_PUSH_ID(r16) _BFGET_(r16, 7, 0)
#define SET16SemaHub_PUSH_ID(r16,v) _BFSET_(r16, 7, 0,v)
#define GET32SemaHub_PUSH_delta(r32) _BFGET_(r32,15, 8)
#define SET32SemaHub_PUSH_delta(r32,v) _BFSET_(r32,15, 8,v)
#define GET16SemaHub_PUSH_delta(r16) _BFGET_(r16,15, 8)
#define SET16SemaHub_PUSH_delta(r16,v) _BFSET_(r16,15, 8,v)
#define w32SemaHub_PUSH {\
UNSG32 uPUSH_ID : 8;\
UNSG32 uPUSH_delta : 8;\
UNSG32 RSVDx380_b16 : 16;\
}
union { UNSG32 u32SemaHub_PUSH;
struct w32SemaHub_PUSH;
};
///////////////////////////////////////////////////////////
#define GET32SemaHub_POP_ID(r32) _BFGET_(r32, 7, 0)
#define SET32SemaHub_POP_ID(r32,v) _BFSET_(r32, 7, 0,v)
#define GET16SemaHub_POP_ID(r16) _BFGET_(r16, 7, 0)
#define SET16SemaHub_POP_ID(r16,v) _BFSET_(r16, 7, 0,v)
#define GET32SemaHub_POP_delta(r32) _BFGET_(r32,15, 8)
#define SET32SemaHub_POP_delta(r32,v) _BFSET_(r32,15, 8,v)
#define GET16SemaHub_POP_delta(r16) _BFGET_(r16,15, 8)
#define SET16SemaHub_POP_delta(r16,v) _BFSET_(r16,15, 8,v)
#define w32SemaHub_POP {\
UNSG32 uPOP_ID : 8;\
UNSG32 uPOP_delta : 8;\
UNSG32 RSVDx384_b16 : 16;\
}
union { UNSG32 u32SemaHub_POP;
struct w32SemaHub_POP;
};
///////////////////////////////////////////////////////////
#define GET32SemaHub_empty_ST_0i(r32) _BFGET_(r32, 0, 0)
#define SET32SemaHub_empty_ST_0i(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16SemaHub_empty_ST_0i(r16) _BFGET_(r16, 0, 0)
#define SET16SemaHub_empty_ST_0i(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32SemaHub_empty_ST_1i(r32) _BFGET_(r32, 1, 1)
#define SET32SemaHub_empty_ST_1i(r32,v) _BFSET_(r32, 1, 1,v)
#define GET16SemaHub_empty_ST_1i(r16) _BFGET_(r16, 1, 1)
#define SET16SemaHub_empty_ST_1i(r16,v) _BFSET_(r16, 1, 1,v)
#define GET32SemaHub_empty_ST_2i(r32) _BFGET_(r32, 2, 2)
#define SET32SemaHub_empty_ST_2i(r32,v) _BFSET_(r32, 2, 2,v)
#define GET16SemaHub_empty_ST_2i(r16) _BFGET_(r16, 2, 2)
#define SET16SemaHub_empty_ST_2i(r16,v) _BFSET_(r16, 2, 2,v)
#define GET32SemaHub_empty_ST_3i(r32) _BFGET_(r32, 3, 3)
#define SET32SemaHub_empty_ST_3i(r32,v) _BFSET_(r32, 3, 3,v)
#define GET16SemaHub_empty_ST_3i(r16) _BFGET_(r16, 3, 3)
#define SET16SemaHub_empty_ST_3i(r16,v) _BFSET_(r16, 3, 3,v)
#define GET32SemaHub_empty_ST_4i(r32) _BFGET_(r32, 4, 4)
#define SET32SemaHub_empty_ST_4i(r32,v) _BFSET_(r32, 4, 4,v)
#define GET16SemaHub_empty_ST_4i(r16) _BFGET_(r16, 4, 4)
#define SET16SemaHub_empty_ST_4i(r16,v) _BFSET_(r16, 4, 4,v)
#define GET32SemaHub_empty_ST_5i(r32) _BFGET_(r32, 5, 5)
#define SET32SemaHub_empty_ST_5i(r32,v) _BFSET_(r32, 5, 5,v)
#define GET16SemaHub_empty_ST_5i(r16) _BFGET_(r16, 5, 5)
#define SET16SemaHub_empty_ST_5i(r16,v) _BFSET_(r16, 5, 5,v)
#define GET32SemaHub_empty_ST_6i(r32) _BFGET_(r32, 6, 6)
#define SET32SemaHub_empty_ST_6i(r32,v) _BFSET_(r32, 6, 6,v)
#define GET16SemaHub_empty_ST_6i(r16) _BFGET_(r16, 6, 6)
#define SET16SemaHub_empty_ST_6i(r16,v) _BFSET_(r16, 6, 6,v)
#define GET32SemaHub_empty_ST_7i(r32) _BFGET_(r32, 7, 7)
#define SET32SemaHub_empty_ST_7i(r32,v) _BFSET_(r32, 7, 7,v)
#define GET16SemaHub_empty_ST_7i(r16) _BFGET_(r16, 7, 7)
#define SET16SemaHub_empty_ST_7i(r16,v) _BFSET_(r16, 7, 7,v)
#define GET32SemaHub_empty_ST_8i(r32) _BFGET_(r32, 8, 8)
#define SET32SemaHub_empty_ST_8i(r32,v) _BFSET_(r32, 8, 8,v)
#define GET16SemaHub_empty_ST_8i(r16) _BFGET_(r16, 8, 8)
#define SET16SemaHub_empty_ST_8i(r16,v) _BFSET_(r16, 8, 8,v)
#define GET32SemaHub_empty_ST_9i(r32) _BFGET_(r32, 9, 9)
#define SET32SemaHub_empty_ST_9i(r32,v) _BFSET_(r32, 9, 9,v)
#define GET16SemaHub_empty_ST_9i(r16) _BFGET_(r16, 9, 9)
#define SET16SemaHub_empty_ST_9i(r16,v) _BFSET_(r16, 9, 9,v)
#define GET32SemaHub_empty_ST_10i(r32) _BFGET_(r32,10,10)
#define SET32SemaHub_empty_ST_10i(r32,v) _BFSET_(r32,10,10,v)
#define GET16SemaHub_empty_ST_10i(r16) _BFGET_(r16,10,10)
#define SET16SemaHub_empty_ST_10i(r16,v) _BFSET_(r16,10,10,v)
#define GET32SemaHub_empty_ST_11i(r32) _BFGET_(r32,11,11)
#define SET32SemaHub_empty_ST_11i(r32,v) _BFSET_(r32,11,11,v)
#define GET16SemaHub_empty_ST_11i(r16) _BFGET_(r16,11,11)
#define SET16SemaHub_empty_ST_11i(r16,v) _BFSET_(r16,11,11,v)
#define GET32SemaHub_empty_ST_12i(r32) _BFGET_(r32,12,12)
#define SET32SemaHub_empty_ST_12i(r32,v) _BFSET_(r32,12,12,v)
#define GET16SemaHub_empty_ST_12i(r16) _BFGET_(r16,12,12)
#define SET16SemaHub_empty_ST_12i(r16,v) _BFSET_(r16,12,12,v)
#define GET32SemaHub_empty_ST_13i(r32) _BFGET_(r32,13,13)
#define SET32SemaHub_empty_ST_13i(r32,v) _BFSET_(r32,13,13,v)
#define GET16SemaHub_empty_ST_13i(r16) _BFGET_(r16,13,13)
#define SET16SemaHub_empty_ST_13i(r16,v) _BFSET_(r16,13,13,v)
#define GET32SemaHub_empty_ST_14i(r32) _BFGET_(r32,14,14)
#define SET32SemaHub_empty_ST_14i(r32,v) _BFSET_(r32,14,14,v)
#define GET16SemaHub_empty_ST_14i(r16) _BFGET_(r16,14,14)
#define SET16SemaHub_empty_ST_14i(r16,v) _BFSET_(r16,14,14,v)
#define GET32SemaHub_empty_ST_15i(r32) _BFGET_(r32,15,15)
#define SET32SemaHub_empty_ST_15i(r32,v) _BFSET_(r32,15,15,v)
#define GET16SemaHub_empty_ST_15i(r16) _BFGET_(r16,15,15)
#define SET16SemaHub_empty_ST_15i(r16,v) _BFSET_(r16,15,15,v)
#define GET32SemaHub_empty_ST_16i(r32) _BFGET_(r32,16,16)
#define SET32SemaHub_empty_ST_16i(r32,v) _BFSET_(r32,16,16,v)
#define GET16SemaHub_empty_ST_16i(r16) _BFGET_(r16, 0, 0)
#define SET16SemaHub_empty_ST_16i(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32SemaHub_empty_ST_17i(r32) _BFGET_(r32,17,17)
#define SET32SemaHub_empty_ST_17i(r32,v) _BFSET_(r32,17,17,v)
#define GET16SemaHub_empty_ST_17i(r16) _BFGET_(r16, 1, 1)
#define SET16SemaHub_empty_ST_17i(r16,v) _BFSET_(r16, 1, 1,v)
#define GET32SemaHub_empty_ST_18i(r32) _BFGET_(r32,18,18)
#define SET32SemaHub_empty_ST_18i(r32,v) _BFSET_(r32,18,18,v)
#define GET16SemaHub_empty_ST_18i(r16) _BFGET_(r16, 2, 2)
#define SET16SemaHub_empty_ST_18i(r16,v) _BFSET_(r16, 2, 2,v)
#define GET32SemaHub_empty_ST_19i(r32) _BFGET_(r32,19,19)
#define SET32SemaHub_empty_ST_19i(r32,v) _BFSET_(r32,19,19,v)
#define GET16SemaHub_empty_ST_19i(r16) _BFGET_(r16, 3, 3)
#define SET16SemaHub_empty_ST_19i(r16,v) _BFSET_(r16, 3, 3,v)
#define GET32SemaHub_empty_ST_20i(r32) _BFGET_(r32,20,20)
#define SET32SemaHub_empty_ST_20i(r32,v) _BFSET_(r32,20,20,v)
#define GET16SemaHub_empty_ST_20i(r16) _BFGET_(r16, 4, 4)
#define SET16SemaHub_empty_ST_20i(r16,v) _BFSET_(r16, 4, 4,v)
#define GET32SemaHub_empty_ST_21i(r32) _BFGET_(r32,21,21)
#define SET32SemaHub_empty_ST_21i(r32,v) _BFSET_(r32,21,21,v)
#define GET16SemaHub_empty_ST_21i(r16) _BFGET_(r16, 5, 5)
#define SET16SemaHub_empty_ST_21i(r16,v) _BFSET_(r16, 5, 5,v)
#define GET32SemaHub_empty_ST_22i(r32) _BFGET_(r32,22,22)
#define SET32SemaHub_empty_ST_22i(r32,v) _BFSET_(r32,22,22,v)
#define GET16SemaHub_empty_ST_22i(r16) _BFGET_(r16, 6, 6)
#define SET16SemaHub_empty_ST_22i(r16,v) _BFSET_(r16, 6, 6,v)
#define GET32SemaHub_empty_ST_23i(r32) _BFGET_(r32,23,23)
#define SET32SemaHub_empty_ST_23i(r32,v) _BFSET_(r32,23,23,v)
#define GET16SemaHub_empty_ST_23i(r16) _BFGET_(r16, 7, 7)
#define SET16SemaHub_empty_ST_23i(r16,v) _BFSET_(r16, 7, 7,v)
#define GET32SemaHub_empty_ST_24i(r32) _BFGET_(r32,24,24)
#define SET32SemaHub_empty_ST_24i(r32,v) _BFSET_(r32,24,24,v)
#define GET16SemaHub_empty_ST_24i(r16) _BFGET_(r16, 8, 8)
#define SET16SemaHub_empty_ST_24i(r16,v) _BFSET_(r16, 8, 8,v)
#define GET32SemaHub_empty_ST_25i(r32) _BFGET_(r32,25,25)
#define SET32SemaHub_empty_ST_25i(r32,v) _BFSET_(r32,25,25,v)
#define GET16SemaHub_empty_ST_25i(r16) _BFGET_(r16, 9, 9)
#define SET16SemaHub_empty_ST_25i(r16,v) _BFSET_(r16, 9, 9,v)
#define GET32SemaHub_empty_ST_26i(r32) _BFGET_(r32,26,26)
#define SET32SemaHub_empty_ST_26i(r32,v) _BFSET_(r32,26,26,v)
#define GET16SemaHub_empty_ST_26i(r16) _BFGET_(r16,10,10)
#define SET16SemaHub_empty_ST_26i(r16,v) _BFSET_(r16,10,10,v)
#define GET32SemaHub_empty_ST_27i(r32) _BFGET_(r32,27,27)
#define SET32SemaHub_empty_ST_27i(r32,v) _BFSET_(r32,27,27,v)
#define GET16SemaHub_empty_ST_27i(r16) _BFGET_(r16,11,11)
#define SET16SemaHub_empty_ST_27i(r16,v) _BFSET_(r16,11,11,v)
#define GET32SemaHub_empty_ST_28i(r32) _BFGET_(r32,28,28)
#define SET32SemaHub_empty_ST_28i(r32,v) _BFSET_(r32,28,28,v)
#define GET16SemaHub_empty_ST_28i(r16) _BFGET_(r16,12,12)
#define SET16SemaHub_empty_ST_28i(r16,v) _BFSET_(r16,12,12,v)
#define GET32SemaHub_empty_ST_29i(r32) _BFGET_(r32,29,29)
#define SET32SemaHub_empty_ST_29i(r32,v) _BFSET_(r32,29,29,v)
#define GET16SemaHub_empty_ST_29i(r16) _BFGET_(r16,13,13)
#define SET16SemaHub_empty_ST_29i(r16,v) _BFSET_(r16,13,13,v)
#define GET32SemaHub_empty_ST_30i(r32) _BFGET_(r32,30,30)
#define SET32SemaHub_empty_ST_30i(r32,v) _BFSET_(r32,30,30,v)
#define GET16SemaHub_empty_ST_30i(r16) _BFGET_(r16,14,14)
#define SET16SemaHub_empty_ST_30i(r16,v) _BFSET_(r16,14,14,v)
#define GET32SemaHub_empty_ST_31i(r32) _BFGET_(r32,31,31)
#define SET32SemaHub_empty_ST_31i(r32,v) _BFSET_(r32,31,31,v)
#define GET16SemaHub_empty_ST_31i(r16) _BFGET_(r16,15,15)
#define SET16SemaHub_empty_ST_31i(r16,v) _BFSET_(r16,15,15,v)
#define w32SemaHub_empty {\
UNSG32 uempty_ST_0i : 1;\
UNSG32 uempty_ST_1i : 1;\
UNSG32 uempty_ST_2i : 1;\
UNSG32 uempty_ST_3i : 1;\
UNSG32 uempty_ST_4i : 1;\
UNSG32 uempty_ST_5i : 1;\
UNSG32 uempty_ST_6i : 1;\
UNSG32 uempty_ST_7i : 1;\
UNSG32 uempty_ST_8i : 1;\
UNSG32 uempty_ST_9i : 1;\
UNSG32 uempty_ST_10i : 1;\
UNSG32 uempty_ST_11i : 1;\
UNSG32 uempty_ST_12i : 1;\
UNSG32 uempty_ST_13i : 1;\
UNSG32 uempty_ST_14i : 1;\
UNSG32 uempty_ST_15i : 1;\
UNSG32 uempty_ST_16i : 1;\
UNSG32 uempty_ST_17i : 1;\
UNSG32 uempty_ST_18i : 1;\
UNSG32 uempty_ST_19i : 1;\
UNSG32 uempty_ST_20i : 1;\
UNSG32 uempty_ST_21i : 1;\
UNSG32 uempty_ST_22i : 1;\
UNSG32 uempty_ST_23i : 1;\
UNSG32 uempty_ST_24i : 1;\
UNSG32 uempty_ST_25i : 1;\
UNSG32 uempty_ST_26i : 1;\
UNSG32 uempty_ST_27i : 1;\
UNSG32 uempty_ST_28i : 1;\
UNSG32 uempty_ST_29i : 1;\
UNSG32 uempty_ST_30i : 1;\
UNSG32 uempty_ST_31i : 1;\
}
union { UNSG32 u32SemaHub_empty;
struct w32SemaHub_empty;
};
///////////////////////////////////////////////////////////
#define GET32SemaHub_full_ST_0i(r32) _BFGET_(r32, 0, 0)
#define SET32SemaHub_full_ST_0i(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16SemaHub_full_ST_0i(r16) _BFGET_(r16, 0, 0)
#define SET16SemaHub_full_ST_0i(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32SemaHub_full_ST_1i(r32) _BFGET_(r32, 1, 1)
#define SET32SemaHub_full_ST_1i(r32,v) _BFSET_(r32, 1, 1,v)
#define GET16SemaHub_full_ST_1i(r16) _BFGET_(r16, 1, 1)
#define SET16SemaHub_full_ST_1i(r16,v) _BFSET_(r16, 1, 1,v)
#define GET32SemaHub_full_ST_2i(r32) _BFGET_(r32, 2, 2)
#define SET32SemaHub_full_ST_2i(r32,v) _BFSET_(r32, 2, 2,v)
#define GET16SemaHub_full_ST_2i(r16) _BFGET_(r16, 2, 2)
#define SET16SemaHub_full_ST_2i(r16,v) _BFSET_(r16, 2, 2,v)
#define GET32SemaHub_full_ST_3i(r32) _BFGET_(r32, 3, 3)
#define SET32SemaHub_full_ST_3i(r32,v) _BFSET_(r32, 3, 3,v)
#define GET16SemaHub_full_ST_3i(r16) _BFGET_(r16, 3, 3)
#define SET16SemaHub_full_ST_3i(r16,v) _BFSET_(r16, 3, 3,v)
#define GET32SemaHub_full_ST_4i(r32) _BFGET_(r32, 4, 4)
#define SET32SemaHub_full_ST_4i(r32,v) _BFSET_(r32, 4, 4,v)
#define GET16SemaHub_full_ST_4i(r16) _BFGET_(r16, 4, 4)
#define SET16SemaHub_full_ST_4i(r16,v) _BFSET_(r16, 4, 4,v)
#define GET32SemaHub_full_ST_5i(r32) _BFGET_(r32, 5, 5)
#define SET32SemaHub_full_ST_5i(r32,v) _BFSET_(r32, 5, 5,v)
#define GET16SemaHub_full_ST_5i(r16) _BFGET_(r16, 5, 5)
#define SET16SemaHub_full_ST_5i(r16,v) _BFSET_(r16, 5, 5,v)
#define GET32SemaHub_full_ST_6i(r32) _BFGET_(r32, 6, 6)
#define SET32SemaHub_full_ST_6i(r32,v) _BFSET_(r32, 6, 6,v)
#define GET16SemaHub_full_ST_6i(r16) _BFGET_(r16, 6, 6)
#define SET16SemaHub_full_ST_6i(r16,v) _BFSET_(r16, 6, 6,v)
#define GET32SemaHub_full_ST_7i(r32) _BFGET_(r32, 7, 7)
#define SET32SemaHub_full_ST_7i(r32,v) _BFSET_(r32, 7, 7,v)
#define GET16SemaHub_full_ST_7i(r16) _BFGET_(r16, 7, 7)
#define SET16SemaHub_full_ST_7i(r16,v) _BFSET_(r16, 7, 7,v)
#define GET32SemaHub_full_ST_8i(r32) _BFGET_(r32, 8, 8)
#define SET32SemaHub_full_ST_8i(r32,v) _BFSET_(r32, 8, 8,v)
#define GET16SemaHub_full_ST_8i(r16) _BFGET_(r16, 8, 8)
#define SET16SemaHub_full_ST_8i(r16,v) _BFSET_(r16, 8, 8,v)
#define GET32SemaHub_full_ST_9i(r32) _BFGET_(r32, 9, 9)
#define SET32SemaHub_full_ST_9i(r32,v) _BFSET_(r32, 9, 9,v)
#define GET16SemaHub_full_ST_9i(r16) _BFGET_(r16, 9, 9)
#define SET16SemaHub_full_ST_9i(r16,v) _BFSET_(r16, 9, 9,v)
#define GET32SemaHub_full_ST_10i(r32) _BFGET_(r32,10,10)
#define SET32SemaHub_full_ST_10i(r32,v) _BFSET_(r32,10,10,v)
#define GET16SemaHub_full_ST_10i(r16) _BFGET_(r16,10,10)
#define SET16SemaHub_full_ST_10i(r16,v) _BFSET_(r16,10,10,v)
#define GET32SemaHub_full_ST_11i(r32) _BFGET_(r32,11,11)
#define SET32SemaHub_full_ST_11i(r32,v) _BFSET_(r32,11,11,v)
#define GET16SemaHub_full_ST_11i(r16) _BFGET_(r16,11,11)
#define SET16SemaHub_full_ST_11i(r16,v) _BFSET_(r16,11,11,v)
#define GET32SemaHub_full_ST_12i(r32) _BFGET_(r32,12,12)
#define SET32SemaHub_full_ST_12i(r32,v) _BFSET_(r32,12,12,v)
#define GET16SemaHub_full_ST_12i(r16) _BFGET_(r16,12,12)
#define SET16SemaHub_full_ST_12i(r16,v) _BFSET_(r16,12,12,v)
#define GET32SemaHub_full_ST_13i(r32) _BFGET_(r32,13,13)
#define SET32SemaHub_full_ST_13i(r32,v) _BFSET_(r32,13,13,v)
#define GET16SemaHub_full_ST_13i(r16) _BFGET_(r16,13,13)
#define SET16SemaHub_full_ST_13i(r16,v) _BFSET_(r16,13,13,v)
#define GET32SemaHub_full_ST_14i(r32) _BFGET_(r32,14,14)
#define SET32SemaHub_full_ST_14i(r32,v) _BFSET_(r32,14,14,v)
#define GET16SemaHub_full_ST_14i(r16) _BFGET_(r16,14,14)
#define SET16SemaHub_full_ST_14i(r16,v) _BFSET_(r16,14,14,v)
#define GET32SemaHub_full_ST_15i(r32) _BFGET_(r32,15,15)
#define SET32SemaHub_full_ST_15i(r32,v) _BFSET_(r32,15,15,v)
#define GET16SemaHub_full_ST_15i(r16) _BFGET_(r16,15,15)
#define SET16SemaHub_full_ST_15i(r16,v) _BFSET_(r16,15,15,v)
#define GET32SemaHub_full_ST_16i(r32) _BFGET_(r32,16,16)
#define SET32SemaHub_full_ST_16i(r32,v) _BFSET_(r32,16,16,v)
#define GET16SemaHub_full_ST_16i(r16) _BFGET_(r16, 0, 0)
#define SET16SemaHub_full_ST_16i(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32SemaHub_full_ST_17i(r32) _BFGET_(r32,17,17)
#define SET32SemaHub_full_ST_17i(r32,v) _BFSET_(r32,17,17,v)
#define GET16SemaHub_full_ST_17i(r16) _BFGET_(r16, 1, 1)
#define SET16SemaHub_full_ST_17i(r16,v) _BFSET_(r16, 1, 1,v)
#define GET32SemaHub_full_ST_18i(r32) _BFGET_(r32,18,18)
#define SET32SemaHub_full_ST_18i(r32,v) _BFSET_(r32,18,18,v)
#define GET16SemaHub_full_ST_18i(r16) _BFGET_(r16, 2, 2)
#define SET16SemaHub_full_ST_18i(r16,v) _BFSET_(r16, 2, 2,v)
#define GET32SemaHub_full_ST_19i(r32) _BFGET_(r32,19,19)
#define SET32SemaHub_full_ST_19i(r32,v) _BFSET_(r32,19,19,v)
#define GET16SemaHub_full_ST_19i(r16) _BFGET_(r16, 3, 3)
#define SET16SemaHub_full_ST_19i(r16,v) _BFSET_(r16, 3, 3,v)
#define GET32SemaHub_full_ST_20i(r32) _BFGET_(r32,20,20)
#define SET32SemaHub_full_ST_20i(r32,v) _BFSET_(r32,20,20,v)
#define GET16SemaHub_full_ST_20i(r16) _BFGET_(r16, 4, 4)
#define SET16SemaHub_full_ST_20i(r16,v) _BFSET_(r16, 4, 4,v)
#define GET32SemaHub_full_ST_21i(r32) _BFGET_(r32,21,21)
#define SET32SemaHub_full_ST_21i(r32,v) _BFSET_(r32,21,21,v)
#define GET16SemaHub_full_ST_21i(r16) _BFGET_(r16, 5, 5)
#define SET16SemaHub_full_ST_21i(r16,v) _BFSET_(r16, 5, 5,v)
#define GET32SemaHub_full_ST_22i(r32) _BFGET_(r32,22,22)
#define SET32SemaHub_full_ST_22i(r32,v) _BFSET_(r32,22,22,v)
#define GET16SemaHub_full_ST_22i(r16) _BFGET_(r16, 6, 6)
#define SET16SemaHub_full_ST_22i(r16,v) _BFSET_(r16, 6, 6,v)
#define GET32SemaHub_full_ST_23i(r32) _BFGET_(r32,23,23)
#define SET32SemaHub_full_ST_23i(r32,v) _BFSET_(r32,23,23,v)
#define GET16SemaHub_full_ST_23i(r16) _BFGET_(r16, 7, 7)
#define SET16SemaHub_full_ST_23i(r16,v) _BFSET_(r16, 7, 7,v)
#define GET32SemaHub_full_ST_24i(r32) _BFGET_(r32,24,24)
#define SET32SemaHub_full_ST_24i(r32,v) _BFSET_(r32,24,24,v)
#define GET16SemaHub_full_ST_24i(r16) _BFGET_(r16, 8, 8)
#define SET16SemaHub_full_ST_24i(r16,v) _BFSET_(r16, 8, 8,v)
#define GET32SemaHub_full_ST_25i(r32) _BFGET_(r32,25,25)
#define SET32SemaHub_full_ST_25i(r32,v) _BFSET_(r32,25,25,v)
#define GET16SemaHub_full_ST_25i(r16) _BFGET_(r16, 9, 9)
#define SET16SemaHub_full_ST_25i(r16,v) _BFSET_(r16, 9, 9,v)
#define GET32SemaHub_full_ST_26i(r32) _BFGET_(r32,26,26)
#define SET32SemaHub_full_ST_26i(r32,v) _BFSET_(r32,26,26,v)
#define GET16SemaHub_full_ST_26i(r16) _BFGET_(r16,10,10)
#define SET16SemaHub_full_ST_26i(r16,v) _BFSET_(r16,10,10,v)
#define GET32SemaHub_full_ST_27i(r32) _BFGET_(r32,27,27)
#define SET32SemaHub_full_ST_27i(r32,v) _BFSET_(r32,27,27,v)
#define GET16SemaHub_full_ST_27i(r16) _BFGET_(r16,11,11)
#define SET16SemaHub_full_ST_27i(r16,v) _BFSET_(r16,11,11,v)
#define GET32SemaHub_full_ST_28i(r32) _BFGET_(r32,28,28)
#define SET32SemaHub_full_ST_28i(r32,v) _BFSET_(r32,28,28,v)
#define GET16SemaHub_full_ST_28i(r16) _BFGET_(r16,12,12)
#define SET16SemaHub_full_ST_28i(r16,v) _BFSET_(r16,12,12,v)
#define GET32SemaHub_full_ST_29i(r32) _BFGET_(r32,29,29)
#define SET32SemaHub_full_ST_29i(r32,v) _BFSET_(r32,29,29,v)
#define GET16SemaHub_full_ST_29i(r16) _BFGET_(r16,13,13)
#define SET16SemaHub_full_ST_29i(r16,v) _BFSET_(r16,13,13,v)
#define GET32SemaHub_full_ST_30i(r32) _BFGET_(r32,30,30)
#define SET32SemaHub_full_ST_30i(r32,v) _BFSET_(r32,30,30,v)
#define GET16SemaHub_full_ST_30i(r16) _BFGET_(r16,14,14)
#define SET16SemaHub_full_ST_30i(r16,v) _BFSET_(r16,14,14,v)
#define GET32SemaHub_full_ST_31i(r32) _BFGET_(r32,31,31)
#define SET32SemaHub_full_ST_31i(r32,v) _BFSET_(r32,31,31,v)
#define GET16SemaHub_full_ST_31i(r16) _BFGET_(r16,15,15)
#define SET16SemaHub_full_ST_31i(r16,v) _BFSET_(r16,15,15,v)
#define w32SemaHub_full {\
UNSG32 ufull_ST_0i : 1;\
UNSG32 ufull_ST_1i : 1;\
UNSG32 ufull_ST_2i : 1;\
UNSG32 ufull_ST_3i : 1;\
UNSG32 ufull_ST_4i : 1;\
UNSG32 ufull_ST_5i : 1;\
UNSG32 ufull_ST_6i : 1;\
UNSG32 ufull_ST_7i : 1;\
UNSG32 ufull_ST_8i : 1;\
UNSG32 ufull_ST_9i : 1;\
UNSG32 ufull_ST_10i : 1;\
UNSG32 ufull_ST_11i : 1;\
UNSG32 ufull_ST_12i : 1;\
UNSG32 ufull_ST_13i : 1;\
UNSG32 ufull_ST_14i : 1;\
UNSG32 ufull_ST_15i : 1;\
UNSG32 ufull_ST_16i : 1;\
UNSG32 ufull_ST_17i : 1;\
UNSG32 ufull_ST_18i : 1;\
UNSG32 ufull_ST_19i : 1;\
UNSG32 ufull_ST_20i : 1;\
UNSG32 ufull_ST_21i : 1;\
UNSG32 ufull_ST_22i : 1;\
UNSG32 ufull_ST_23i : 1;\
UNSG32 ufull_ST_24i : 1;\
UNSG32 ufull_ST_25i : 1;\
UNSG32 ufull_ST_26i : 1;\
UNSG32 ufull_ST_27i : 1;\
UNSG32 ufull_ST_28i : 1;\
UNSG32 ufull_ST_29i : 1;\
UNSG32 ufull_ST_30i : 1;\
UNSG32 ufull_ST_31i : 1;\
}
union { UNSG32 u32SemaHub_full;
struct w32SemaHub_full;
};
///////////////////////////////////////////////////////////
#define GET32SemaHub_almostEmpty_ST_0i(r32) _BFGET_(r32, 0, 0)
#define SET32SemaHub_almostEmpty_ST_0i(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16SemaHub_almostEmpty_ST_0i(r16) _BFGET_(r16, 0, 0)
#define SET16SemaHub_almostEmpty_ST_0i(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32SemaHub_almostEmpty_ST_1i(r32) _BFGET_(r32, 1, 1)
#define SET32SemaHub_almostEmpty_ST_1i(r32,v) _BFSET_(r32, 1, 1,v)
#define GET16SemaHub_almostEmpty_ST_1i(r16) _BFGET_(r16, 1, 1)
#define SET16SemaHub_almostEmpty_ST_1i(r16,v) _BFSET_(r16, 1, 1,v)
#define GET32SemaHub_almostEmpty_ST_2i(r32) _BFGET_(r32, 2, 2)
#define SET32SemaHub_almostEmpty_ST_2i(r32,v) _BFSET_(r32, 2, 2,v)
#define GET16SemaHub_almostEmpty_ST_2i(r16) _BFGET_(r16, 2, 2)
#define SET16SemaHub_almostEmpty_ST_2i(r16,v) _BFSET_(r16, 2, 2,v)
#define GET32SemaHub_almostEmpty_ST_3i(r32) _BFGET_(r32, 3, 3)
#define SET32SemaHub_almostEmpty_ST_3i(r32,v) _BFSET_(r32, 3, 3,v)
#define GET16SemaHub_almostEmpty_ST_3i(r16) _BFGET_(r16, 3, 3)
#define SET16SemaHub_almostEmpty_ST_3i(r16,v) _BFSET_(r16, 3, 3,v)
#define GET32SemaHub_almostEmpty_ST_4i(r32) _BFGET_(r32, 4, 4)
#define SET32SemaHub_almostEmpty_ST_4i(r32,v) _BFSET_(r32, 4, 4,v)
#define GET16SemaHub_almostEmpty_ST_4i(r16) _BFGET_(r16, 4, 4)
#define SET16SemaHub_almostEmpty_ST_4i(r16,v) _BFSET_(r16, 4, 4,v)
#define GET32SemaHub_almostEmpty_ST_5i(r32) _BFGET_(r32, 5, 5)
#define SET32SemaHub_almostEmpty_ST_5i(r32,v) _BFSET_(r32, 5, 5,v)
#define GET16SemaHub_almostEmpty_ST_5i(r16) _BFGET_(r16, 5, 5)
#define SET16SemaHub_almostEmpty_ST_5i(r16,v) _BFSET_(r16, 5, 5,v)
#define GET32SemaHub_almostEmpty_ST_6i(r32) _BFGET_(r32, 6, 6)
#define SET32SemaHub_almostEmpty_ST_6i(r32,v) _BFSET_(r32, 6, 6,v)
#define GET16SemaHub_almostEmpty_ST_6i(r16) _BFGET_(r16, 6, 6)
#define SET16SemaHub_almostEmpty_ST_6i(r16,v) _BFSET_(r16, 6, 6,v)
#define GET32SemaHub_almostEmpty_ST_7i(r32) _BFGET_(r32, 7, 7)
#define SET32SemaHub_almostEmpty_ST_7i(r32,v) _BFSET_(r32, 7, 7,v)
#define GET16SemaHub_almostEmpty_ST_7i(r16) _BFGET_(r16, 7, 7)
#define SET16SemaHub_almostEmpty_ST_7i(r16,v) _BFSET_(r16, 7, 7,v)
#define GET32SemaHub_almostEmpty_ST_8i(r32) _BFGET_(r32, 8, 8)
#define SET32SemaHub_almostEmpty_ST_8i(r32,v) _BFSET_(r32, 8, 8,v)
#define GET16SemaHub_almostEmpty_ST_8i(r16) _BFGET_(r16, 8, 8)
#define SET16SemaHub_almostEmpty_ST_8i(r16,v) _BFSET_(r16, 8, 8,v)
#define GET32SemaHub_almostEmpty_ST_9i(r32) _BFGET_(r32, 9, 9)
#define SET32SemaHub_almostEmpty_ST_9i(r32,v) _BFSET_(r32, 9, 9,v)
#define GET16SemaHub_almostEmpty_ST_9i(r16) _BFGET_(r16, 9, 9)
#define SET16SemaHub_almostEmpty_ST_9i(r16,v) _BFSET_(r16, 9, 9,v)
#define GET32SemaHub_almostEmpty_ST_10i(r32) _BFGET_(r32,10,10)
#define SET32SemaHub_almostEmpty_ST_10i(r32,v) _BFSET_(r32,10,10,v)
#define GET16SemaHub_almostEmpty_ST_10i(r16) _BFGET_(r16,10,10)
#define SET16SemaHub_almostEmpty_ST_10i(r16,v) _BFSET_(r16,10,10,v)
#define GET32SemaHub_almostEmpty_ST_11i(r32) _BFGET_(r32,11,11)
#define SET32SemaHub_almostEmpty_ST_11i(r32,v) _BFSET_(r32,11,11,v)
#define GET16SemaHub_almostEmpty_ST_11i(r16) _BFGET_(r16,11,11)
#define SET16SemaHub_almostEmpty_ST_11i(r16,v) _BFSET_(r16,11,11,v)
#define GET32SemaHub_almostEmpty_ST_12i(r32) _BFGET_(r32,12,12)
#define SET32SemaHub_almostEmpty_ST_12i(r32,v) _BFSET_(r32,12,12,v)
#define GET16SemaHub_almostEmpty_ST_12i(r16) _BFGET_(r16,12,12)
#define SET16SemaHub_almostEmpty_ST_12i(r16,v) _BFSET_(r16,12,12,v)
#define GET32SemaHub_almostEmpty_ST_13i(r32) _BFGET_(r32,13,13)
#define SET32SemaHub_almostEmpty_ST_13i(r32,v) _BFSET_(r32,13,13,v)
#define GET16SemaHub_almostEmpty_ST_13i(r16) _BFGET_(r16,13,13)
#define SET16SemaHub_almostEmpty_ST_13i(r16,v) _BFSET_(r16,13,13,v)
#define GET32SemaHub_almostEmpty_ST_14i(r32) _BFGET_(r32,14,14)
#define SET32SemaHub_almostEmpty_ST_14i(r32,v) _BFSET_(r32,14,14,v)
#define GET16SemaHub_almostEmpty_ST_14i(r16) _BFGET_(r16,14,14)
#define SET16SemaHub_almostEmpty_ST_14i(r16,v) _BFSET_(r16,14,14,v)
#define GET32SemaHub_almostEmpty_ST_15i(r32) _BFGET_(r32,15,15)
#define SET32SemaHub_almostEmpty_ST_15i(r32,v) _BFSET_(r32,15,15,v)
#define GET16SemaHub_almostEmpty_ST_15i(r16) _BFGET_(r16,15,15)
#define SET16SemaHub_almostEmpty_ST_15i(r16,v) _BFSET_(r16,15,15,v)
#define GET32SemaHub_almostEmpty_ST_16i(r32) _BFGET_(r32,16,16)
#define SET32SemaHub_almostEmpty_ST_16i(r32,v) _BFSET_(r32,16,16,v)
#define GET16SemaHub_almostEmpty_ST_16i(r16) _BFGET_(r16, 0, 0)
#define SET16SemaHub_almostEmpty_ST_16i(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32SemaHub_almostEmpty_ST_17i(r32) _BFGET_(r32,17,17)
#define SET32SemaHub_almostEmpty_ST_17i(r32,v) _BFSET_(r32,17,17,v)
#define GET16SemaHub_almostEmpty_ST_17i(r16) _BFGET_(r16, 1, 1)
#define SET16SemaHub_almostEmpty_ST_17i(r16,v) _BFSET_(r16, 1, 1,v)
#define GET32SemaHub_almostEmpty_ST_18i(r32) _BFGET_(r32,18,18)
#define SET32SemaHub_almostEmpty_ST_18i(r32,v) _BFSET_(r32,18,18,v)
#define GET16SemaHub_almostEmpty_ST_18i(r16) _BFGET_(r16, 2, 2)
#define SET16SemaHub_almostEmpty_ST_18i(r16,v) _BFSET_(r16, 2, 2,v)
#define GET32SemaHub_almostEmpty_ST_19i(r32) _BFGET_(r32,19,19)
#define SET32SemaHub_almostEmpty_ST_19i(r32,v) _BFSET_(r32,19,19,v)
#define GET16SemaHub_almostEmpty_ST_19i(r16) _BFGET_(r16, 3, 3)
#define SET16SemaHub_almostEmpty_ST_19i(r16,v) _BFSET_(r16, 3, 3,v)
#define GET32SemaHub_almostEmpty_ST_20i(r32) _BFGET_(r32,20,20)
#define SET32SemaHub_almostEmpty_ST_20i(r32,v) _BFSET_(r32,20,20,v)
#define GET16SemaHub_almostEmpty_ST_20i(r16) _BFGET_(r16, 4, 4)
#define SET16SemaHub_almostEmpty_ST_20i(r16,v) _BFSET_(r16, 4, 4,v)
#define GET32SemaHub_almostEmpty_ST_21i(r32) _BFGET_(r32,21,21)
#define SET32SemaHub_almostEmpty_ST_21i(r32,v) _BFSET_(r32,21,21,v)
#define GET16SemaHub_almostEmpty_ST_21i(r16) _BFGET_(r16, 5, 5)
#define SET16SemaHub_almostEmpty_ST_21i(r16,v) _BFSET_(r16, 5, 5,v)
#define GET32SemaHub_almostEmpty_ST_22i(r32) _BFGET_(r32,22,22)
#define SET32SemaHub_almostEmpty_ST_22i(r32,v) _BFSET_(r32,22,22,v)
#define GET16SemaHub_almostEmpty_ST_22i(r16) _BFGET_(r16, 6, 6)
#define SET16SemaHub_almostEmpty_ST_22i(r16,v) _BFSET_(r16, 6, 6,v)
#define GET32SemaHub_almostEmpty_ST_23i(r32) _BFGET_(r32,23,23)
#define SET32SemaHub_almostEmpty_ST_23i(r32,v) _BFSET_(r32,23,23,v)
#define GET16SemaHub_almostEmpty_ST_23i(r16) _BFGET_(r16, 7, 7)
#define SET16SemaHub_almostEmpty_ST_23i(r16,v) _BFSET_(r16, 7, 7,v)
#define GET32SemaHub_almostEmpty_ST_24i(r32) _BFGET_(r32,24,24)
#define SET32SemaHub_almostEmpty_ST_24i(r32,v) _BFSET_(r32,24,24,v)
#define GET16SemaHub_almostEmpty_ST_24i(r16) _BFGET_(r16, 8, 8)
#define SET16SemaHub_almostEmpty_ST_24i(r16,v) _BFSET_(r16, 8, 8,v)
#define GET32SemaHub_almostEmpty_ST_25i(r32) _BFGET_(r32,25,25)
#define SET32SemaHub_almostEmpty_ST_25i(r32,v) _BFSET_(r32,25,25,v)
#define GET16SemaHub_almostEmpty_ST_25i(r16) _BFGET_(r16, 9, 9)
#define SET16SemaHub_almostEmpty_ST_25i(r16,v) _BFSET_(r16, 9, 9,v)
#define GET32SemaHub_almostEmpty_ST_26i(r32) _BFGET_(r32,26,26)
#define SET32SemaHub_almostEmpty_ST_26i(r32,v) _BFSET_(r32,26,26,v)
#define GET16SemaHub_almostEmpty_ST_26i(r16) _BFGET_(r16,10,10)
#define SET16SemaHub_almostEmpty_ST_26i(r16,v) _BFSET_(r16,10,10,v)
#define GET32SemaHub_almostEmpty_ST_27i(r32) _BFGET_(r32,27,27)
#define SET32SemaHub_almostEmpty_ST_27i(r32,v) _BFSET_(r32,27,27,v)
#define GET16SemaHub_almostEmpty_ST_27i(r16) _BFGET_(r16,11,11)
#define SET16SemaHub_almostEmpty_ST_27i(r16,v) _BFSET_(r16,11,11,v)
#define GET32SemaHub_almostEmpty_ST_28i(r32) _BFGET_(r32,28,28)
#define SET32SemaHub_almostEmpty_ST_28i(r32,v) _BFSET_(r32,28,28,v)
#define GET16SemaHub_almostEmpty_ST_28i(r16) _BFGET_(r16,12,12)
#define SET16SemaHub_almostEmpty_ST_28i(r16,v) _BFSET_(r16,12,12,v)
#define GET32SemaHub_almostEmpty_ST_29i(r32) _BFGET_(r32,29,29)
#define SET32SemaHub_almostEmpty_ST_29i(r32,v) _BFSET_(r32,29,29,v)
#define GET16SemaHub_almostEmpty_ST_29i(r16) _BFGET_(r16,13,13)
#define SET16SemaHub_almostEmpty_ST_29i(r16,v) _BFSET_(r16,13,13,v)
#define GET32SemaHub_almostEmpty_ST_30i(r32) _BFGET_(r32,30,30)
#define SET32SemaHub_almostEmpty_ST_30i(r32,v) _BFSET_(r32,30,30,v)
#define GET16SemaHub_almostEmpty_ST_30i(r16) _BFGET_(r16,14,14)
#define SET16SemaHub_almostEmpty_ST_30i(r16,v) _BFSET_(r16,14,14,v)
#define GET32SemaHub_almostEmpty_ST_31i(r32) _BFGET_(r32,31,31)
#define SET32SemaHub_almostEmpty_ST_31i(r32,v) _BFSET_(r32,31,31,v)
#define GET16SemaHub_almostEmpty_ST_31i(r16) _BFGET_(r16,15,15)
#define SET16SemaHub_almostEmpty_ST_31i(r16,v) _BFSET_(r16,15,15,v)
#define w32SemaHub_almostEmpty {\
UNSG32 ualmostEmpty_ST_0i : 1;\
UNSG32 ualmostEmpty_ST_1i : 1;\
UNSG32 ualmostEmpty_ST_2i : 1;\
UNSG32 ualmostEmpty_ST_3i : 1;\
UNSG32 ualmostEmpty_ST_4i : 1;\
UNSG32 ualmostEmpty_ST_5i : 1;\
UNSG32 ualmostEmpty_ST_6i : 1;\
UNSG32 ualmostEmpty_ST_7i : 1;\
UNSG32 ualmostEmpty_ST_8i : 1;\
UNSG32 ualmostEmpty_ST_9i : 1;\
UNSG32 ualmostEmpty_ST_10i : 1;\
UNSG32 ualmostEmpty_ST_11i : 1;\
UNSG32 ualmostEmpty_ST_12i : 1;\
UNSG32 ualmostEmpty_ST_13i : 1;\
UNSG32 ualmostEmpty_ST_14i : 1;\
UNSG32 ualmostEmpty_ST_15i : 1;\
UNSG32 ualmostEmpty_ST_16i : 1;\
UNSG32 ualmostEmpty_ST_17i : 1;\
UNSG32 ualmostEmpty_ST_18i : 1;\
UNSG32 ualmostEmpty_ST_19i : 1;\
UNSG32 ualmostEmpty_ST_20i : 1;\
UNSG32 ualmostEmpty_ST_21i : 1;\
UNSG32 ualmostEmpty_ST_22i : 1;\
UNSG32 ualmostEmpty_ST_23i : 1;\
UNSG32 ualmostEmpty_ST_24i : 1;\
UNSG32 ualmostEmpty_ST_25i : 1;\
UNSG32 ualmostEmpty_ST_26i : 1;\
UNSG32 ualmostEmpty_ST_27i : 1;\
UNSG32 ualmostEmpty_ST_28i : 1;\
UNSG32 ualmostEmpty_ST_29i : 1;\
UNSG32 ualmostEmpty_ST_30i : 1;\
UNSG32 ualmostEmpty_ST_31i : 1;\
}
union { UNSG32 u32SemaHub_almostEmpty;
struct w32SemaHub_almostEmpty;
};
///////////////////////////////////////////////////////////
#define GET32SemaHub_almostFull_ST_0i(r32) _BFGET_(r32, 0, 0)
#define SET32SemaHub_almostFull_ST_0i(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16SemaHub_almostFull_ST_0i(r16) _BFGET_(r16, 0, 0)
#define SET16SemaHub_almostFull_ST_0i(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32SemaHub_almostFull_ST_1i(r32) _BFGET_(r32, 1, 1)
#define SET32SemaHub_almostFull_ST_1i(r32,v) _BFSET_(r32, 1, 1,v)
#define GET16SemaHub_almostFull_ST_1i(r16) _BFGET_(r16, 1, 1)
#define SET16SemaHub_almostFull_ST_1i(r16,v) _BFSET_(r16, 1, 1,v)
#define GET32SemaHub_almostFull_ST_2i(r32) _BFGET_(r32, 2, 2)
#define SET32SemaHub_almostFull_ST_2i(r32,v) _BFSET_(r32, 2, 2,v)
#define GET16SemaHub_almostFull_ST_2i(r16) _BFGET_(r16, 2, 2)
#define SET16SemaHub_almostFull_ST_2i(r16,v) _BFSET_(r16, 2, 2,v)
#define GET32SemaHub_almostFull_ST_3i(r32) _BFGET_(r32, 3, 3)
#define SET32SemaHub_almostFull_ST_3i(r32,v) _BFSET_(r32, 3, 3,v)
#define GET16SemaHub_almostFull_ST_3i(r16) _BFGET_(r16, 3, 3)
#define SET16SemaHub_almostFull_ST_3i(r16,v) _BFSET_(r16, 3, 3,v)
#define GET32SemaHub_almostFull_ST_4i(r32) _BFGET_(r32, 4, 4)
#define SET32SemaHub_almostFull_ST_4i(r32,v) _BFSET_(r32, 4, 4,v)
#define GET16SemaHub_almostFull_ST_4i(r16) _BFGET_(r16, 4, 4)
#define SET16SemaHub_almostFull_ST_4i(r16,v) _BFSET_(r16, 4, 4,v)
#define GET32SemaHub_almostFull_ST_5i(r32) _BFGET_(r32, 5, 5)
#define SET32SemaHub_almostFull_ST_5i(r32,v) _BFSET_(r32, 5, 5,v)
#define GET16SemaHub_almostFull_ST_5i(r16) _BFGET_(r16, 5, 5)
#define SET16SemaHub_almostFull_ST_5i(r16,v) _BFSET_(r16, 5, 5,v)
#define GET32SemaHub_almostFull_ST_6i(r32) _BFGET_(r32, 6, 6)
#define SET32SemaHub_almostFull_ST_6i(r32,v) _BFSET_(r32, 6, 6,v)
#define GET16SemaHub_almostFull_ST_6i(r16) _BFGET_(r16, 6, 6)
#define SET16SemaHub_almostFull_ST_6i(r16,v) _BFSET_(r16, 6, 6,v)
#define GET32SemaHub_almostFull_ST_7i(r32) _BFGET_(r32, 7, 7)
#define SET32SemaHub_almostFull_ST_7i(r32,v) _BFSET_(r32, 7, 7,v)
#define GET16SemaHub_almostFull_ST_7i(r16) _BFGET_(r16, 7, 7)
#define SET16SemaHub_almostFull_ST_7i(r16,v) _BFSET_(r16, 7, 7,v)
#define GET32SemaHub_almostFull_ST_8i(r32) _BFGET_(r32, 8, 8)
#define SET32SemaHub_almostFull_ST_8i(r32,v) _BFSET_(r32, 8, 8,v)
#define GET16SemaHub_almostFull_ST_8i(r16) _BFGET_(r16, 8, 8)
#define SET16SemaHub_almostFull_ST_8i(r16,v) _BFSET_(r16, 8, 8,v)
#define GET32SemaHub_almostFull_ST_9i(r32) _BFGET_(r32, 9, 9)
#define SET32SemaHub_almostFull_ST_9i(r32,v) _BFSET_(r32, 9, 9,v)
#define GET16SemaHub_almostFull_ST_9i(r16) _BFGET_(r16, 9, 9)
#define SET16SemaHub_almostFull_ST_9i(r16,v) _BFSET_(r16, 9, 9,v)
#define GET32SemaHub_almostFull_ST_10i(r32) _BFGET_(r32,10,10)
#define SET32SemaHub_almostFull_ST_10i(r32,v) _BFSET_(r32,10,10,v)
#define GET16SemaHub_almostFull_ST_10i(r16) _BFGET_(r16,10,10)
#define SET16SemaHub_almostFull_ST_10i(r16,v) _BFSET_(r16,10,10,v)
#define GET32SemaHub_almostFull_ST_11i(r32) _BFGET_(r32,11,11)
#define SET32SemaHub_almostFull_ST_11i(r32,v) _BFSET_(r32,11,11,v)
#define GET16SemaHub_almostFull_ST_11i(r16) _BFGET_(r16,11,11)
#define SET16SemaHub_almostFull_ST_11i(r16,v) _BFSET_(r16,11,11,v)
#define GET32SemaHub_almostFull_ST_12i(r32) _BFGET_(r32,12,12)
#define SET32SemaHub_almostFull_ST_12i(r32,v) _BFSET_(r32,12,12,v)
#define GET16SemaHub_almostFull_ST_12i(r16) _BFGET_(r16,12,12)
#define SET16SemaHub_almostFull_ST_12i(r16,v) _BFSET_(r16,12,12,v)
#define GET32SemaHub_almostFull_ST_13i(r32) _BFGET_(r32,13,13)
#define SET32SemaHub_almostFull_ST_13i(r32,v) _BFSET_(r32,13,13,v)
#define GET16SemaHub_almostFull_ST_13i(r16) _BFGET_(r16,13,13)
#define SET16SemaHub_almostFull_ST_13i(r16,v) _BFSET_(r16,13,13,v)
#define GET32SemaHub_almostFull_ST_14i(r32) _BFGET_(r32,14,14)
#define SET32SemaHub_almostFull_ST_14i(r32,v) _BFSET_(r32,14,14,v)
#define GET16SemaHub_almostFull_ST_14i(r16) _BFGET_(r16,14,14)
#define SET16SemaHub_almostFull_ST_14i(r16,v) _BFSET_(r16,14,14,v)
#define GET32SemaHub_almostFull_ST_15i(r32) _BFGET_(r32,15,15)
#define SET32SemaHub_almostFull_ST_15i(r32,v) _BFSET_(r32,15,15,v)
#define GET16SemaHub_almostFull_ST_15i(r16) _BFGET_(r16,15,15)
#define SET16SemaHub_almostFull_ST_15i(r16,v) _BFSET_(r16,15,15,v)
#define GET32SemaHub_almostFull_ST_16i(r32) _BFGET_(r32,16,16)
#define SET32SemaHub_almostFull_ST_16i(r32,v) _BFSET_(r32,16,16,v)
#define GET16SemaHub_almostFull_ST_16i(r16) _BFGET_(r16, 0, 0)
#define SET16SemaHub_almostFull_ST_16i(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32SemaHub_almostFull_ST_17i(r32) _BFGET_(r32,17,17)
#define SET32SemaHub_almostFull_ST_17i(r32,v) _BFSET_(r32,17,17,v)
#define GET16SemaHub_almostFull_ST_17i(r16) _BFGET_(r16, 1, 1)
#define SET16SemaHub_almostFull_ST_17i(r16,v) _BFSET_(r16, 1, 1,v)
#define GET32SemaHub_almostFull_ST_18i(r32) _BFGET_(r32,18,18)
#define SET32SemaHub_almostFull_ST_18i(r32,v) _BFSET_(r32,18,18,v)
#define GET16SemaHub_almostFull_ST_18i(r16) _BFGET_(r16, 2, 2)
#define SET16SemaHub_almostFull_ST_18i(r16,v) _BFSET_(r16, 2, 2,v)
#define GET32SemaHub_almostFull_ST_19i(r32) _BFGET_(r32,19,19)
#define SET32SemaHub_almostFull_ST_19i(r32,v) _BFSET_(r32,19,19,v)
#define GET16SemaHub_almostFull_ST_19i(r16) _BFGET_(r16, 3, 3)
#define SET16SemaHub_almostFull_ST_19i(r16,v) _BFSET_(r16, 3, 3,v)
#define GET32SemaHub_almostFull_ST_20i(r32) _BFGET_(r32,20,20)
#define SET32SemaHub_almostFull_ST_20i(r32,v) _BFSET_(r32,20,20,v)
#define GET16SemaHub_almostFull_ST_20i(r16) _BFGET_(r16, 4, 4)
#define SET16SemaHub_almostFull_ST_20i(r16,v) _BFSET_(r16, 4, 4,v)
#define GET32SemaHub_almostFull_ST_21i(r32) _BFGET_(r32,21,21)
#define SET32SemaHub_almostFull_ST_21i(r32,v) _BFSET_(r32,21,21,v)
#define GET16SemaHub_almostFull_ST_21i(r16) _BFGET_(r16, 5, 5)
#define SET16SemaHub_almostFull_ST_21i(r16,v) _BFSET_(r16, 5, 5,v)
#define GET32SemaHub_almostFull_ST_22i(r32) _BFGET_(r32,22,22)
#define SET32SemaHub_almostFull_ST_22i(r32,v) _BFSET_(r32,22,22,v)
#define GET16SemaHub_almostFull_ST_22i(r16) _BFGET_(r16, 6, 6)
#define SET16SemaHub_almostFull_ST_22i(r16,v) _BFSET_(r16, 6, 6,v)
#define GET32SemaHub_almostFull_ST_23i(r32) _BFGET_(r32,23,23)
#define SET32SemaHub_almostFull_ST_23i(r32,v) _BFSET_(r32,23,23,v)
#define GET16SemaHub_almostFull_ST_23i(r16) _BFGET_(r16, 7, 7)
#define SET16SemaHub_almostFull_ST_23i(r16,v) _BFSET_(r16, 7, 7,v)
#define GET32SemaHub_almostFull_ST_24i(r32) _BFGET_(r32,24,24)
#define SET32SemaHub_almostFull_ST_24i(r32,v) _BFSET_(r32,24,24,v)
#define GET16SemaHub_almostFull_ST_24i(r16) _BFGET_(r16, 8, 8)
#define SET16SemaHub_almostFull_ST_24i(r16,v) _BFSET_(r16, 8, 8,v)
#define GET32SemaHub_almostFull_ST_25i(r32) _BFGET_(r32,25,25)
#define SET32SemaHub_almostFull_ST_25i(r32,v) _BFSET_(r32,25,25,v)
#define GET16SemaHub_almostFull_ST_25i(r16) _BFGET_(r16, 9, 9)
#define SET16SemaHub_almostFull_ST_25i(r16,v) _BFSET_(r16, 9, 9,v)
#define GET32SemaHub_almostFull_ST_26i(r32) _BFGET_(r32,26,26)
#define SET32SemaHub_almostFull_ST_26i(r32,v) _BFSET_(r32,26,26,v)
#define GET16SemaHub_almostFull_ST_26i(r16) _BFGET_(r16,10,10)
#define SET16SemaHub_almostFull_ST_26i(r16,v) _BFSET_(r16,10,10,v)
#define GET32SemaHub_almostFull_ST_27i(r32) _BFGET_(r32,27,27)
#define SET32SemaHub_almostFull_ST_27i(r32,v) _BFSET_(r32,27,27,v)
#define GET16SemaHub_almostFull_ST_27i(r16) _BFGET_(r16,11,11)
#define SET16SemaHub_almostFull_ST_27i(r16,v) _BFSET_(r16,11,11,v)
#define GET32SemaHub_almostFull_ST_28i(r32) _BFGET_(r32,28,28)
#define SET32SemaHub_almostFull_ST_28i(r32,v) _BFSET_(r32,28,28,v)
#define GET16SemaHub_almostFull_ST_28i(r16) _BFGET_(r16,12,12)
#define SET16SemaHub_almostFull_ST_28i(r16,v) _BFSET_(r16,12,12,v)
#define GET32SemaHub_almostFull_ST_29i(r32) _BFGET_(r32,29,29)
#define SET32SemaHub_almostFull_ST_29i(r32,v) _BFSET_(r32,29,29,v)
#define GET16SemaHub_almostFull_ST_29i(r16) _BFGET_(r16,13,13)
#define SET16SemaHub_almostFull_ST_29i(r16,v) _BFSET_(r16,13,13,v)
#define GET32SemaHub_almostFull_ST_30i(r32) _BFGET_(r32,30,30)
#define SET32SemaHub_almostFull_ST_30i(r32,v) _BFSET_(r32,30,30,v)
#define GET16SemaHub_almostFull_ST_30i(r16) _BFGET_(r16,14,14)
#define SET16SemaHub_almostFull_ST_30i(r16,v) _BFSET_(r16,14,14,v)
#define GET32SemaHub_almostFull_ST_31i(r32) _BFGET_(r32,31,31)
#define SET32SemaHub_almostFull_ST_31i(r32,v) _BFSET_(r32,31,31,v)
#define GET16SemaHub_almostFull_ST_31i(r16) _BFGET_(r16,15,15)
#define SET16SemaHub_almostFull_ST_31i(r16,v) _BFSET_(r16,15,15,v)
#define w32SemaHub_almostFull {\
UNSG32 ualmostFull_ST_0i : 1;\
UNSG32 ualmostFull_ST_1i : 1;\
UNSG32 ualmostFull_ST_2i : 1;\
UNSG32 ualmostFull_ST_3i : 1;\
UNSG32 ualmostFull_ST_4i : 1;\
UNSG32 ualmostFull_ST_5i : 1;\
UNSG32 ualmostFull_ST_6i : 1;\
UNSG32 ualmostFull_ST_7i : 1;\
UNSG32 ualmostFull_ST_8i : 1;\
UNSG32 ualmostFull_ST_9i : 1;\
UNSG32 ualmostFull_ST_10i : 1;\
UNSG32 ualmostFull_ST_11i : 1;\
UNSG32 ualmostFull_ST_12i : 1;\
UNSG32 ualmostFull_ST_13i : 1;\
UNSG32 ualmostFull_ST_14i : 1;\
UNSG32 ualmostFull_ST_15i : 1;\
UNSG32 ualmostFull_ST_16i : 1;\
UNSG32 ualmostFull_ST_17i : 1;\
UNSG32 ualmostFull_ST_18i : 1;\
UNSG32 ualmostFull_ST_19i : 1;\
UNSG32 ualmostFull_ST_20i : 1;\
UNSG32 ualmostFull_ST_21i : 1;\
UNSG32 ualmostFull_ST_22i : 1;\
UNSG32 ualmostFull_ST_23i : 1;\
UNSG32 ualmostFull_ST_24i : 1;\
UNSG32 ualmostFull_ST_25i : 1;\
UNSG32 ualmostFull_ST_26i : 1;\
UNSG32 ualmostFull_ST_27i : 1;\
UNSG32 ualmostFull_ST_28i : 1;\
UNSG32 ualmostFull_ST_29i : 1;\
UNSG32 ualmostFull_ST_30i : 1;\
UNSG32 ualmostFull_ST_31i : 1;\
}
union { UNSG32 u32SemaHub_almostFull;
struct w32SemaHub_almostFull;
};
///////////////////////////////////////////////////////////
UNSG8 RSVDx398 [104];
///////////////////////////////////////////////////////////
} SIE_SemaHub;
typedef union T32SemaHub_PUSH
{ UNSG32 u32;
struct w32SemaHub_PUSH;
} T32SemaHub_PUSH;
typedef union T32SemaHub_POP
{ UNSG32 u32;
struct w32SemaHub_POP;
} T32SemaHub_POP;
typedef union T32SemaHub_empty
{ UNSG32 u32;
struct w32SemaHub_empty;
} T32SemaHub_empty;
typedef union T32SemaHub_full
{ UNSG32 u32;
struct w32SemaHub_full;
} T32SemaHub_full;
typedef union T32SemaHub_almostEmpty
{ UNSG32 u32;
struct w32SemaHub_almostEmpty;
} T32SemaHub_almostEmpty;
typedef union T32SemaHub_almostFull
{ UNSG32 u32;
struct w32SemaHub_almostFull;
} T32SemaHub_almostFull;
///////////////////////////////////////////////////////////
typedef union TSemaHub_PUSH
{ UNSG32 u32[1];
struct {
struct w32SemaHub_PUSH;
};
} TSemaHub_PUSH;
typedef union TSemaHub_POP
{ UNSG32 u32[1];
struct {
struct w32SemaHub_POP;
};
} TSemaHub_POP;
typedef union TSemaHub_empty
{ UNSG32 u32[1];
struct {
struct w32SemaHub_empty;
};
} TSemaHub_empty;
typedef union TSemaHub_full
{ UNSG32 u32[1];
struct {
struct w32SemaHub_full;
};
} TSemaHub_full;
typedef union TSemaHub_almostEmpty
{ UNSG32 u32[1];
struct {
struct w32SemaHub_almostEmpty;
};
} TSemaHub_almostEmpty;
typedef union TSemaHub_almostFull
{ UNSG32 u32[1];
struct {
struct w32SemaHub_almostFull;
};
} TSemaHub_almostFull;
///////////////////////////////////////////////////////////
SIGN32 SemaHub_drvrd(SIE_SemaHub *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 SemaHub_drvwr(SIE_SemaHub *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void SemaHub_reset(SIE_SemaHub *p);
SIGN32 SemaHub_cmp (SIE_SemaHub *p, SIE_SemaHub *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define SemaHub_check(p,pie,pfx,hLOG) SemaHub_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define SemaHub_print(p, pfx,hLOG) SemaHub_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: SemaHub
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE FiFo biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 CFG (W-)
/// %unsigned 20 BASE
/// ###
/// * Base address (byte-address) of a FIFO in the shared SRAM. A channel's read/write pointers will be added to this “BASE” to get exact location of shared SRAM.
/// * Note: aligned with base SRAM data bus.
/// * For example, if SRAM data is 64-bit, then base[2:0] should be 3'b0;
/// ###
/// %% 12 # Stuffing bits...
/// @ 0x00004 START (W-)
/// %unsigned 1 EN 0x0
/// ###
/// * Write 1 to this register will enable this channel, or 0 to this register will disable this channel.
/// ###
/// %% 31 # Stuffing bits...
/// @ 0x00008 CLEAR (W-)
/// %unsigned 1 EN
/// ###
/// * Write anything to clear FIFO pointers to 0.
/// * Note :
/// * CPU should make sure to disabled the channel (write 0 to START_EN register) before issue clear command, otherwise the clear request will be ignored.
/// * Do not restart the channel when clear operation is in process.
/// * HW will make sure there is no pending transactions before execute the clear operation.
/// * Associated semaphore cell needs reset separately by re-write “CFG_DEPTH”
/// ###
/// %% 31 # Stuffing bits...
/// @ 0x0000C FLUSH (W-)
/// %unsigned 1 EN
/// ###
/// * No support for now
/// ###
/// %% 31 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 16B, bits: 23b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_FiFo
#define h_FiFo (){}
#define RA_FiFo_CFG 0x0000
#define BA_FiFo_CFG_BASE 0x0000
#define B16FiFo_CFG_BASE 0x0000
#define LSb32FiFo_CFG_BASE 0
#define LSb16FiFo_CFG_BASE 0
#define bFiFo_CFG_BASE 20
#define MSK32FiFo_CFG_BASE 0x000FFFFF
///////////////////////////////////////////////////////////
#define RA_FiFo_START 0x0004
#define BA_FiFo_START_EN 0x0004
#define B16FiFo_START_EN 0x0004
#define LSb32FiFo_START_EN 0
#define LSb16FiFo_START_EN 0
#define bFiFo_START_EN 1
#define MSK32FiFo_START_EN 0x00000001
///////////////////////////////////////////////////////////
#define RA_FiFo_CLEAR 0x0008
#define BA_FiFo_CLEAR_EN 0x0008
#define B16FiFo_CLEAR_EN 0x0008
#define LSb32FiFo_CLEAR_EN 0
#define LSb16FiFo_CLEAR_EN 0
#define bFiFo_CLEAR_EN 1
#define MSK32FiFo_CLEAR_EN 0x00000001
///////////////////////////////////////////////////////////
#define RA_FiFo_FLUSH 0x000C
#define BA_FiFo_FLUSH_EN 0x000C
#define B16FiFo_FLUSH_EN 0x000C
#define LSb32FiFo_FLUSH_EN 0
#define LSb16FiFo_FLUSH_EN 0
#define bFiFo_FLUSH_EN 1
#define MSK32FiFo_FLUSH_EN 0x00000001
///////////////////////////////////////////////////////////
typedef struct SIE_FiFo {
///////////////////////////////////////////////////////////
#define GET32FiFo_CFG_BASE(r32) _BFGET_(r32,19, 0)
#define SET32FiFo_CFG_BASE(r32,v) _BFSET_(r32,19, 0,v)
#define w32FiFo_CFG {\
UNSG32 uCFG_BASE : 20;\
UNSG32 RSVDx0_b20 : 12;\
}
union { UNSG32 u32FiFo_CFG;
struct w32FiFo_CFG;
};
///////////////////////////////////////////////////////////
#define GET32FiFo_START_EN(r32) _BFGET_(r32, 0, 0)
#define SET32FiFo_START_EN(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16FiFo_START_EN(r16) _BFGET_(r16, 0, 0)
#define SET16FiFo_START_EN(r16,v) _BFSET_(r16, 0, 0,v)
#define w32FiFo_START {\
UNSG32 uSTART_EN : 1;\
UNSG32 RSVDx4_b1 : 31;\
}
union { UNSG32 u32FiFo_START;
struct w32FiFo_START;
};
///////////////////////////////////////////////////////////
#define GET32FiFo_CLEAR_EN(r32) _BFGET_(r32, 0, 0)
#define SET32FiFo_CLEAR_EN(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16FiFo_CLEAR_EN(r16) _BFGET_(r16, 0, 0)
#define SET16FiFo_CLEAR_EN(r16,v) _BFSET_(r16, 0, 0,v)
#define w32FiFo_CLEAR {\
UNSG32 uCLEAR_EN : 1;\
UNSG32 RSVDx8_b1 : 31;\
}
union { UNSG32 u32FiFo_CLEAR;
struct w32FiFo_CLEAR;
};
///////////////////////////////////////////////////////////
#define GET32FiFo_FLUSH_EN(r32) _BFGET_(r32, 0, 0)
#define SET32FiFo_FLUSH_EN(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16FiFo_FLUSH_EN(r16) _BFGET_(r16, 0, 0)
#define SET16FiFo_FLUSH_EN(r16,v) _BFSET_(r16, 0, 0,v)
#define w32FiFo_FLUSH {\
UNSG32 uFLUSH_EN : 1;\
UNSG32 RSVDxC_b1 : 31;\
}
union { UNSG32 u32FiFo_FLUSH;
struct w32FiFo_FLUSH;
};
///////////////////////////////////////////////////////////
} SIE_FiFo;
typedef union T32FiFo_CFG
{ UNSG32 u32;
struct w32FiFo_CFG;
} T32FiFo_CFG;
typedef union T32FiFo_START
{ UNSG32 u32;
struct w32FiFo_START;
} T32FiFo_START;
typedef union T32FiFo_CLEAR
{ UNSG32 u32;
struct w32FiFo_CLEAR;
} T32FiFo_CLEAR;
typedef union T32FiFo_FLUSH
{ UNSG32 u32;
struct w32FiFo_FLUSH;
} T32FiFo_FLUSH;
///////////////////////////////////////////////////////////
typedef union TFiFo_CFG
{ UNSG32 u32[1];
struct {
struct w32FiFo_CFG;
};
} TFiFo_CFG;
typedef union TFiFo_START
{ UNSG32 u32[1];
struct {
struct w32FiFo_START;
};
} TFiFo_START;
typedef union TFiFo_CLEAR
{ UNSG32 u32[1];
struct {
struct w32FiFo_CLEAR;
};
} TFiFo_CLEAR;
typedef union TFiFo_FLUSH
{ UNSG32 u32[1];
struct {
struct w32FiFo_FLUSH;
};
} TFiFo_FLUSH;
///////////////////////////////////////////////////////////
SIGN32 FiFo_drvrd(SIE_FiFo *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 FiFo_drvwr(SIE_FiFo *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void FiFo_reset(SIE_FiFo *p);
SIGN32 FiFo_cmp (SIE_FiFo *p, SIE_FiFo *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define FiFo_check(p,pie,pfx,hLOG) FiFo_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define FiFo_print(p, pfx,hLOG) FiFo_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: FiFo
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE HBO biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// # 0x00000 FiFoCtl
/// $SemaHub FiFoCtl REG
/// @ 0x00400 ARR (P)
/// # 0x00400 FiFo
/// $FiFo FiFo REG [32]
/// ###
/// * Up-to 32 FIFO channels
/// * FiFo[N] is controlled by HBO.FiFoCtl.Channel[N]
/// ###
/// @ 0x00600 BUSY (R-)
/// %unsigned 32 ST
/// ###
/// * Per channel status
/// * Indicate the clear operation status.
/// * 1: clear is in process.
/// * 0 : clear is done.
/// ###
/// @ 0x00604 (W-)
/// # # Stuffing bytes...
/// %% 2016
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 1792B, bits: 1920b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_HBO
#define h_HBO (){}
#define RA_HBO_FiFoCtl 0x0000
///////////////////////////////////////////////////////////
#define RA_HBO_ARR 0x0400
#define RA_HBO_FiFo 0x0400
///////////////////////////////////////////////////////////
#define RA_HBO_BUSY 0x0600
#define BA_HBO_BUSY_ST 0x0600
#define B16HBO_BUSY_ST 0x0600
#define LSb32HBO_BUSY_ST 0
#define LSb16HBO_BUSY_ST 0
#define bHBO_BUSY_ST 32
#define MSK32HBO_BUSY_ST 0xFFFFFFFF
///////////////////////////////////////////////////////////
typedef struct SIE_HBO {
///////////////////////////////////////////////////////////
SIE_SemaHub ie_FiFoCtl;
///////////////////////////////////////////////////////////
SIE_FiFo ie_FiFo[32];
///////////////////////////////////////////////////////////
#define GET32HBO_BUSY_ST(r32) _BFGET_(r32,31, 0)
#define SET32HBO_BUSY_ST(r32,v) _BFSET_(r32,31, 0,v)
#define w32HBO_BUSY {\
UNSG32 uBUSY_ST : 32;\
}
union { UNSG32 u32HBO_BUSY;
struct w32HBO_BUSY;
};
///////////////////////////////////////////////////////////
UNSG8 RSVDx604 [252];
///////////////////////////////////////////////////////////
} SIE_HBO;
typedef union T32HBO_BUSY
{ UNSG32 u32;
struct w32HBO_BUSY;
} T32HBO_BUSY;
///////////////////////////////////////////////////////////
typedef union THBO_BUSY
{ UNSG32 u32[1];
struct {
struct w32HBO_BUSY;
};
} THBO_BUSY;
///////////////////////////////////////////////////////////
SIGN32 HBO_drvrd(SIE_HBO *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 HBO_drvwr(SIE_HBO *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void HBO_reset(SIE_HBO *p);
SIGN32 HBO_cmp (SIE_HBO *p, SIE_HBO *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define HBO_check(p,pie,pfx,hLOG) HBO_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define HBO_print(p, pfx,hLOG) HBO_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: HBO
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE LLDesFmt biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 mem (P)
/// %unsigned 16 size
/// ###
/// * The size of one piece of scattered memory.
/// ###
/// %% 16 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 16b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_LLDesFmt
#define h_LLDesFmt (){}
#define RA_LLDesFmt_mem 0x0000
#define BA_LLDesFmt_mem_size 0x0000
#define B16LLDesFmt_mem_size 0x0000
#define LSb32LLDesFmt_mem_size 0
#define LSb16LLDesFmt_mem_size 0
#define bLLDesFmt_mem_size 16
#define MSK32LLDesFmt_mem_size 0x0000FFFF
///////////////////////////////////////////////////////////
typedef struct SIE_LLDesFmt {
///////////////////////////////////////////////////////////
#define GET32LLDesFmt_mem_size(r32) _BFGET_(r32,15, 0)
#define SET32LLDesFmt_mem_size(r32,v) _BFSET_(r32,15, 0,v)
#define GET16LLDesFmt_mem_size(r16) _BFGET_(r16,15, 0)
#define SET16LLDesFmt_mem_size(r16,v) _BFSET_(r16,15, 0,v)
#define w32LLDesFmt_mem {\
UNSG32 umem_size : 16;\
UNSG32 RSVDx0_b16 : 16;\
}
union { UNSG32 u32LLDesFmt_mem;
struct w32LLDesFmt_mem;
};
///////////////////////////////////////////////////////////
} SIE_LLDesFmt;
typedef union T32LLDesFmt_mem
{ UNSG32 u32;
struct w32LLDesFmt_mem;
} T32LLDesFmt_mem;
///////////////////////////////////////////////////////////
typedef union TLLDesFmt_mem
{ UNSG32 u32[1];
struct {
struct w32LLDesFmt_mem;
};
} TLLDesFmt_mem;
///////////////////////////////////////////////////////////
SIGN32 LLDesFmt_drvrd(SIE_LLDesFmt *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 LLDesFmt_drvwr(SIE_LLDesFmt *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void LLDesFmt_reset(SIE_LLDesFmt *p);
SIGN32 LLDesFmt_cmp (SIE_LLDesFmt *p, SIE_LLDesFmt *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define LLDesFmt_check(p,pie,pfx,hLOG) LLDesFmt_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define LLDesFmt_print(p, pfx,hLOG) LLDesFmt_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: LLDesFmt
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE dHubCmdHDR (4,4)
/// ###
/// * 32-bit dHub command header
/// * [0:31]
/// ###
/// # # ----------------------------------------------------------
/// @ 0x00000 DESC (W-)
/// %unsigned 16 size
/// ###
/// * amount of data to be transferred, in bytes or MTU.
/// * Size of 0 is forbidden.
/// ###
/// %unsigned 1 sizeMTU
/// ###
/// * 0: size given in bytes;
/// * 1: size given in MTU (see dHubChCtl.CFG.MTU for MTU size definition)
/// ###
/// %unsigned 1 semOpMTU
/// ###
/// * 0: semaphore operations applied on dHubCmd level
/// * 1: semaphore operations applied on MTU level
/// ###
/// %unsigned 5 chkSemId
/// ###
/// * ID of semaphore to check before cmd / MTU;
/// * 0 indicates semaphore check is disabled
/// ###
/// %unsigned 5 updSemId
/// ###
/// * ID of semaphore to update after cmd / MTU;
/// * 0 indicates semaphore update is disabled
/// ###
/// %unsigned 1 interrupt
/// ###
/// * 1: raise interrupt upon command finish
/// * end dHubCmdHDR
/// ###
/// %% 3 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 29b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_dHubCmdHDR
#define h_dHubCmdHDR (){}
#define RA_dHubCmdHDR_DESC 0x0000
#define BA_dHubCmdHDR_DESC_size 0x0000
#define B16dHubCmdHDR_DESC_size 0x0000
#define LSb32dHubCmdHDR_DESC_size 0
#define LSb16dHubCmdHDR_DESC_size 0
#define bdHubCmdHDR_DESC_size 16
#define MSK32dHubCmdHDR_DESC_size 0x0000FFFF
#define BA_dHubCmdHDR_DESC_sizeMTU 0x0002
#define B16dHubCmdHDR_DESC_sizeMTU 0x0002
#define LSb32dHubCmdHDR_DESC_sizeMTU 16
#define LSb16dHubCmdHDR_DESC_sizeMTU 0
#define bdHubCmdHDR_DESC_sizeMTU 1
#define MSK32dHubCmdHDR_DESC_sizeMTU 0x00010000
#define BA_dHubCmdHDR_DESC_semOpMTU 0x0002
#define B16dHubCmdHDR_DESC_semOpMTU 0x0002
#define LSb32dHubCmdHDR_DESC_semOpMTU 17
#define LSb16dHubCmdHDR_DESC_semOpMTU 1
#define bdHubCmdHDR_DESC_semOpMTU 1
#define MSK32dHubCmdHDR_DESC_semOpMTU 0x00020000
#define BA_dHubCmdHDR_DESC_chkSemId 0x0002
#define B16dHubCmdHDR_DESC_chkSemId 0x0002
#define LSb32dHubCmdHDR_DESC_chkSemId 18
#define LSb16dHubCmdHDR_DESC_chkSemId 2
#define bdHubCmdHDR_DESC_chkSemId 5
#define MSK32dHubCmdHDR_DESC_chkSemId 0x007C0000
#define BA_dHubCmdHDR_DESC_updSemId 0x0002
#define B16dHubCmdHDR_DESC_updSemId 0x0002
#define LSb32dHubCmdHDR_DESC_updSemId 23
#define LSb16dHubCmdHDR_DESC_updSemId 7
#define bdHubCmdHDR_DESC_updSemId 5
#define MSK32dHubCmdHDR_DESC_updSemId 0x0F800000
#define BA_dHubCmdHDR_DESC_interrupt 0x0003
#define B16dHubCmdHDR_DESC_interrupt 0x0002
#define LSb32dHubCmdHDR_DESC_interrupt 28
#define LSb16dHubCmdHDR_DESC_interrupt 12
#define bdHubCmdHDR_DESC_interrupt 1
#define MSK32dHubCmdHDR_DESC_interrupt 0x10000000
///////////////////////////////////////////////////////////
typedef struct SIE_dHubCmdHDR {
///////////////////////////////////////////////////////////
#define GET32dHubCmdHDR_DESC_size(r32) _BFGET_(r32,15, 0)
#define SET32dHubCmdHDR_DESC_size(r32,v) _BFSET_(r32,15, 0,v)
#define GET16dHubCmdHDR_DESC_size(r16) _BFGET_(r16,15, 0)
#define SET16dHubCmdHDR_DESC_size(r16,v) _BFSET_(r16,15, 0,v)
#define GET32dHubCmdHDR_DESC_sizeMTU(r32) _BFGET_(r32,16,16)
#define SET32dHubCmdHDR_DESC_sizeMTU(r32,v) _BFSET_(r32,16,16,v)
#define GET16dHubCmdHDR_DESC_sizeMTU(r16) _BFGET_(r16, 0, 0)
#define SET16dHubCmdHDR_DESC_sizeMTU(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32dHubCmdHDR_DESC_semOpMTU(r32) _BFGET_(r32,17,17)
#define SET32dHubCmdHDR_DESC_semOpMTU(r32,v) _BFSET_(r32,17,17,v)
#define GET16dHubCmdHDR_DESC_semOpMTU(r16) _BFGET_(r16, 1, 1)
#define SET16dHubCmdHDR_DESC_semOpMTU(r16,v) _BFSET_(r16, 1, 1,v)
#define GET32dHubCmdHDR_DESC_chkSemId(r32) _BFGET_(r32,22,18)
#define SET32dHubCmdHDR_DESC_chkSemId(r32,v) _BFSET_(r32,22,18,v)
#define GET16dHubCmdHDR_DESC_chkSemId(r16) _BFGET_(r16, 6, 2)
#define SET16dHubCmdHDR_DESC_chkSemId(r16,v) _BFSET_(r16, 6, 2,v)
#define GET32dHubCmdHDR_DESC_updSemId(r32) _BFGET_(r32,27,23)
#define SET32dHubCmdHDR_DESC_updSemId(r32,v) _BFSET_(r32,27,23,v)
#define GET16dHubCmdHDR_DESC_updSemId(r16) _BFGET_(r16,11, 7)
#define SET16dHubCmdHDR_DESC_updSemId(r16,v) _BFSET_(r16,11, 7,v)
#define GET32dHubCmdHDR_DESC_interrupt(r32) _BFGET_(r32,28,28)
#define SET32dHubCmdHDR_DESC_interrupt(r32,v) _BFSET_(r32,28,28,v)
#define GET16dHubCmdHDR_DESC_interrupt(r16) _BFGET_(r16,12,12)
#define SET16dHubCmdHDR_DESC_interrupt(r16,v) _BFSET_(r16,12,12,v)
#define w32dHubCmdHDR_DESC {\
UNSG32 uDESC_size : 16;\
UNSG32 uDESC_sizeMTU : 1;\
UNSG32 uDESC_semOpMTU : 1;\
UNSG32 uDESC_chkSemId : 5;\
UNSG32 uDESC_updSemId : 5;\
UNSG32 uDESC_interrupt : 1;\
UNSG32 RSVDx0_b29 : 3;\
}
union { UNSG32 u32dHubCmdHDR_DESC;
struct w32dHubCmdHDR_DESC;
};
///////////////////////////////////////////////////////////
} SIE_dHubCmdHDR;
typedef union T32dHubCmdHDR_DESC
{ UNSG32 u32;
struct w32dHubCmdHDR_DESC;
} T32dHubCmdHDR_DESC;
///////////////////////////////////////////////////////////
typedef union TdHubCmdHDR_DESC
{ UNSG32 u32[1];
struct {
struct w32dHubCmdHDR_DESC;
};
} TdHubCmdHDR_DESC;
///////////////////////////////////////////////////////////
SIGN32 dHubCmdHDR_drvrd(SIE_dHubCmdHDR *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 dHubCmdHDR_drvwr(SIE_dHubCmdHDR *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void dHubCmdHDR_reset(SIE_dHubCmdHDR *p);
SIGN32 dHubCmdHDR_cmp (SIE_dHubCmdHDR *p, SIE_dHubCmdHDR *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define dHubCmdHDR_check(p,pie,pfx,hLOG) dHubCmdHDR_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define dHubCmdHDR_print(p, pfx,hLOG) dHubCmdHDR_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: dHubCmdHDR
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE dHubCmd biu (4,4)
/// ###
/// * 64-bit dHub command issued by read/write masters
/// * [0:31]
/// ###
/// # # ----------------------------------------------------------
/// @ 0x00000 MEM (W-)
/// %unsigned 32 addr
/// ###
/// * DRAM data address, in bytes; not necessarily MTU aligned.
/// * [32:63]
/// ###
/// @ 0x00004 (P)
/// # 0x00004 HDR
/// $dHubCmdHDR HDR REG
/// ###
/// * end dHubCmd
/// ###
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 8B, bits: 61b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_dHubCmd
#define h_dHubCmd (){}
#define RA_dHubCmd_MEM 0x0000
#define BA_dHubCmd_MEM_addr 0x0000
#define B16dHubCmd_MEM_addr 0x0000
#define LSb32dHubCmd_MEM_addr 0
#define LSb16dHubCmd_MEM_addr 0
#define bdHubCmd_MEM_addr 32
#define MSK32dHubCmd_MEM_addr 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_dHubCmd_HDR 0x0004
///////////////////////////////////////////////////////////
typedef struct SIE_dHubCmd {
///////////////////////////////////////////////////////////
#define GET32dHubCmd_MEM_addr(r32) _BFGET_(r32,31, 0)
#define SET32dHubCmd_MEM_addr(r32,v) _BFSET_(r32,31, 0,v)
#define w32dHubCmd_MEM {\
UNSG32 uMEM_addr : 32;\
}
union { UNSG32 u32dHubCmd_MEM;
struct w32dHubCmd_MEM;
};
///////////////////////////////////////////////////////////
SIE_dHubCmdHDR ie_HDR;
///////////////////////////////////////////////////////////
} SIE_dHubCmd;
typedef union T32dHubCmd_MEM
{ UNSG32 u32;
struct w32dHubCmd_MEM;
} T32dHubCmd_MEM;
///////////////////////////////////////////////////////////
typedef union TdHubCmd_MEM
{ UNSG32 u32[1];
struct {
struct w32dHubCmd_MEM;
};
} TdHubCmd_MEM;
///////////////////////////////////////////////////////////
SIGN32 dHubCmd_drvrd(SIE_dHubCmd *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 dHubCmd_drvwr(SIE_dHubCmd *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void dHubCmd_reset(SIE_dHubCmd *p);
SIGN32 dHubCmd_cmp (SIE_dHubCmd *p, SIE_dHubCmd *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define dHubCmd_check(p,pie,pfx,hLOG) dHubCmd_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define dHubCmd_print(p, pfx,hLOG) dHubCmd_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: dHubCmd
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE dHubChannel biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 CFG (W-)
/// %unsigned 2 MTU
/// : 8byte 0x0
/// : 32byte 0x1
/// : 128byte 0x2
/// : 1024byte 0x3
/// ###
/// * Minimum transfer unit of the channel
/// ###
/// %unsigned 1 QoS
/// ###
/// * Write 1 to turn on QoS detection
/// ###
/// %unsigned 1 selfLoop
/// ###
/// * Write 1 to enable cmd looping support; 0 to turn off
/// ###
/// %unsigned 1 intrCtl 0x0
/// : cmdDone 0x0
/// : chIdle 0x1
/// ###
/// * 0 : default vlaue, the interrupt is triggered by the finish of the dHub command if the interrupt bit is defined in the dHub command.
/// * 1 : The interrupt is triggered if the dHub channel is idle ( no busy and no pending and the corresponding dHub command Q is empty).
/// ###
/// %unsigned 1 hScan 0x0
/// : rastScan 0x0
/// : invScan 0x1
/// ###
/// * This parameter will only apply to read channels.
/// * It will affect 1D dHub command for the channel.
/// * When scan is set to 1 (invScan), the data (beat) inside the dHub command will be fetched in the inverse order. ie. The data from the last address will come first and the data (beat) from the first address will come lastly.
/// ###
/// %unsigned 1 vScan 0x0
/// : rastScan 0x0
/// : invScan 0x1
/// ###
/// * This parameter will only apply to read channels.
/// * It will affect 2D channels.
/// * When scan is set to 1 (invScan),
/// * The last address line (1D command) will be fetched first, and the first address line will be fetched lastly.
/// ###
/// %% 25 # Stuffing bits...
/// @ 0x00004 START (W-)
/// %unsigned 1 EN 0x0
/// ###
/// * Write 1 to enable the channel; 0 to pause the channel
/// ###
/// %% 31 # Stuffing bits...
/// @ 0x00008 CLEAR (W-)
/// %unsigned 1 EN
/// ###
/// * Write anything to reset the channel controller state
/// ###
/// %% 31 # Stuffing bits...
/// @ 0x0000C FLUSH (W-)
/// %unsigned 1 EN
/// ###
/// * Write anything to start the data flushing process. Invalid for read (M2H) channels
/// * end dHubChannel
/// ###
/// %% 31 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 16B, bits: 10b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_dHubChannel
#define h_dHubChannel (){}
#define RA_dHubChannel_CFG 0x0000
#define BA_dHubChannel_CFG_MTU 0x0000
#define B16dHubChannel_CFG_MTU 0x0000
#define LSb32dHubChannel_CFG_MTU 0
#define LSb16dHubChannel_CFG_MTU 0
#define bdHubChannel_CFG_MTU 2
#define MSK32dHubChannel_CFG_MTU 0x00000003
#define dHubChannel_CFG_MTU_8byte 0x0
#define dHubChannel_CFG_MTU_32byte 0x1
#define dHubChannel_CFG_MTU_128byte 0x2
#define dHubChannel_CFG_MTU_1024byte 0x3
#define BA_dHubChannel_CFG_QoS 0x0000
#define B16dHubChannel_CFG_QoS 0x0000
#define LSb32dHubChannel_CFG_QoS 2
#define LSb16dHubChannel_CFG_QoS 2
#define bdHubChannel_CFG_QoS 1
#define MSK32dHubChannel_CFG_QoS 0x00000004
#define BA_dHubChannel_CFG_selfLoop 0x0000
#define B16dHubChannel_CFG_selfLoop 0x0000
#define LSb32dHubChannel_CFG_selfLoop 3
#define LSb16dHubChannel_CFG_selfLoop 3
#define bdHubChannel_CFG_selfLoop 1
#define MSK32dHubChannel_CFG_selfLoop 0x00000008
#define BA_dHubChannel_CFG_intrCtl 0x0000
#define B16dHubChannel_CFG_intrCtl 0x0000
#define LSb32dHubChannel_CFG_intrCtl 4
#define LSb16dHubChannel_CFG_intrCtl 4
#define bdHubChannel_CFG_intrCtl 1
#define MSK32dHubChannel_CFG_intrCtl 0x00000010
#define dHubChannel_CFG_intrCtl_cmdDone 0x0
#define dHubChannel_CFG_intrCtl_chIdle 0x1
#define BA_dHubChannel_CFG_hScan 0x0000
#define B16dHubChannel_CFG_hScan 0x0000
#define LSb32dHubChannel_CFG_hScan 5
#define LSb16dHubChannel_CFG_hScan 5
#define bdHubChannel_CFG_hScan 1
#define MSK32dHubChannel_CFG_hScan 0x00000020
#define dHubChannel_CFG_hScan_rastScan 0x0
#define dHubChannel_CFG_hScan_invScan 0x1
#define BA_dHubChannel_CFG_vScan 0x0000
#define B16dHubChannel_CFG_vScan 0x0000
#define LSb32dHubChannel_CFG_vScan 6
#define LSb16dHubChannel_CFG_vScan 6
#define bdHubChannel_CFG_vScan 1
#define MSK32dHubChannel_CFG_vScan 0x00000040
#define dHubChannel_CFG_vScan_rastScan 0x0
#define dHubChannel_CFG_vScan_invScan 0x1
///////////////////////////////////////////////////////////
#define RA_dHubChannel_START 0x0004
#define BA_dHubChannel_START_EN 0x0004
#define B16dHubChannel_START_EN 0x0004
#define LSb32dHubChannel_START_EN 0
#define LSb16dHubChannel_START_EN 0
#define bdHubChannel_START_EN 1
#define MSK32dHubChannel_START_EN 0x00000001
///////////////////////////////////////////////////////////
#define RA_dHubChannel_CLEAR 0x0008
#define BA_dHubChannel_CLEAR_EN 0x0008
#define B16dHubChannel_CLEAR_EN 0x0008
#define LSb32dHubChannel_CLEAR_EN 0
#define LSb16dHubChannel_CLEAR_EN 0
#define bdHubChannel_CLEAR_EN 1
#define MSK32dHubChannel_CLEAR_EN 0x00000001
///////////////////////////////////////////////////////////
#define RA_dHubChannel_FLUSH 0x000C
#define BA_dHubChannel_FLUSH_EN 0x000C
#define B16dHubChannel_FLUSH_EN 0x000C
#define LSb32dHubChannel_FLUSH_EN 0
#define LSb16dHubChannel_FLUSH_EN 0
#define bdHubChannel_FLUSH_EN 1
#define MSK32dHubChannel_FLUSH_EN 0x00000001
///////////////////////////////////////////////////////////
typedef struct SIE_dHubChannel {
///////////////////////////////////////////////////////////
#define GET32dHubChannel_CFG_MTU(r32) _BFGET_(r32, 1, 0)
#define SET32dHubChannel_CFG_MTU(r32,v) _BFSET_(r32, 1, 0,v)
#define GET16dHubChannel_CFG_MTU(r16) _BFGET_(r16, 1, 0)
#define SET16dHubChannel_CFG_MTU(r16,v) _BFSET_(r16, 1, 0,v)
#define GET32dHubChannel_CFG_QoS(r32) _BFGET_(r32, 2, 2)
#define SET32dHubChannel_CFG_QoS(r32,v) _BFSET_(r32, 2, 2,v)
#define GET16dHubChannel_CFG_QoS(r16) _BFGET_(r16, 2, 2)
#define SET16dHubChannel_CFG_QoS(r16,v) _BFSET_(r16, 2, 2,v)
#define GET32dHubChannel_CFG_selfLoop(r32) _BFGET_(r32, 3, 3)
#define SET32dHubChannel_CFG_selfLoop(r32,v) _BFSET_(r32, 3, 3,v)
#define GET16dHubChannel_CFG_selfLoop(r16) _BFGET_(r16, 3, 3)
#define SET16dHubChannel_CFG_selfLoop(r16,v) _BFSET_(r16, 3, 3,v)
#define GET32dHubChannel_CFG_intrCtl(r32) _BFGET_(r32, 4, 4)
#define SET32dHubChannel_CFG_intrCtl(r32,v) _BFSET_(r32, 4, 4,v)
#define GET16dHubChannel_CFG_intrCtl(r16) _BFGET_(r16, 4, 4)
#define SET16dHubChannel_CFG_intrCtl(r16,v) _BFSET_(r16, 4, 4,v)
#define GET32dHubChannel_CFG_hScan(r32) _BFGET_(r32, 5, 5)
#define SET32dHubChannel_CFG_hScan(r32,v) _BFSET_(r32, 5, 5,v)
#define GET16dHubChannel_CFG_hScan(r16) _BFGET_(r16, 5, 5)
#define SET16dHubChannel_CFG_hScan(r16,v) _BFSET_(r16, 5, 5,v)
#define GET32dHubChannel_CFG_vScan(r32) _BFGET_(r32, 6, 6)
#define SET32dHubChannel_CFG_vScan(r32,v) _BFSET_(r32, 6, 6,v)
#define GET16dHubChannel_CFG_vScan(r16) _BFGET_(r16, 6, 6)
#define SET16dHubChannel_CFG_vScan(r16,v) _BFSET_(r16, 6, 6,v)
#define w32dHubChannel_CFG {\
UNSG32 uCFG_MTU : 2;\
UNSG32 uCFG_QoS : 1;\
UNSG32 uCFG_selfLoop : 1;\
UNSG32 uCFG_intrCtl : 1;\
UNSG32 uCFG_hScan : 1;\
UNSG32 uCFG_vScan : 1;\
UNSG32 RSVDx0_b7 : 25;\
}
union { UNSG32 u32dHubChannel_CFG;
struct w32dHubChannel_CFG;
};
///////////////////////////////////////////////////////////
#define GET32dHubChannel_START_EN(r32) _BFGET_(r32, 0, 0)
#define SET32dHubChannel_START_EN(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16dHubChannel_START_EN(r16) _BFGET_(r16, 0, 0)
#define SET16dHubChannel_START_EN(r16,v) _BFSET_(r16, 0, 0,v)
#define w32dHubChannel_START {\
UNSG32 uSTART_EN : 1;\
UNSG32 RSVDx4_b1 : 31;\
}
union { UNSG32 u32dHubChannel_START;
struct w32dHubChannel_START;
};
///////////////////////////////////////////////////////////
#define GET32dHubChannel_CLEAR_EN(r32) _BFGET_(r32, 0, 0)
#define SET32dHubChannel_CLEAR_EN(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16dHubChannel_CLEAR_EN(r16) _BFGET_(r16, 0, 0)
#define SET16dHubChannel_CLEAR_EN(r16,v) _BFSET_(r16, 0, 0,v)
#define w32dHubChannel_CLEAR {\
UNSG32 uCLEAR_EN : 1;\
UNSG32 RSVDx8_b1 : 31;\
}
union { UNSG32 u32dHubChannel_CLEAR;
struct w32dHubChannel_CLEAR;
};
///////////////////////////////////////////////////////////
#define GET32dHubChannel_FLUSH_EN(r32) _BFGET_(r32, 0, 0)
#define SET32dHubChannel_FLUSH_EN(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16dHubChannel_FLUSH_EN(r16) _BFGET_(r16, 0, 0)
#define SET16dHubChannel_FLUSH_EN(r16,v) _BFSET_(r16, 0, 0,v)
#define w32dHubChannel_FLUSH {\
UNSG32 uFLUSH_EN : 1;\
UNSG32 RSVDxC_b1 : 31;\
}
union { UNSG32 u32dHubChannel_FLUSH;
struct w32dHubChannel_FLUSH;
};
///////////////////////////////////////////////////////////
} SIE_dHubChannel;
typedef union T32dHubChannel_CFG
{ UNSG32 u32;
struct w32dHubChannel_CFG;
} T32dHubChannel_CFG;
typedef union T32dHubChannel_START
{ UNSG32 u32;
struct w32dHubChannel_START;
} T32dHubChannel_START;
typedef union T32dHubChannel_CLEAR
{ UNSG32 u32;
struct w32dHubChannel_CLEAR;
} T32dHubChannel_CLEAR;
typedef union T32dHubChannel_FLUSH
{ UNSG32 u32;
struct w32dHubChannel_FLUSH;
} T32dHubChannel_FLUSH;
///////////////////////////////////////////////////////////
typedef union TdHubChannel_CFG
{ UNSG32 u32[1];
struct {
struct w32dHubChannel_CFG;
};
} TdHubChannel_CFG;
typedef union TdHubChannel_START
{ UNSG32 u32[1];
struct {
struct w32dHubChannel_START;
};
} TdHubChannel_START;
typedef union TdHubChannel_CLEAR
{ UNSG32 u32[1];
struct {
struct w32dHubChannel_CLEAR;
};
} TdHubChannel_CLEAR;
typedef union TdHubChannel_FLUSH
{ UNSG32 u32[1];
struct {
struct w32dHubChannel_FLUSH;
};
} TdHubChannel_FLUSH;
///////////////////////////////////////////////////////////
SIGN32 dHubChannel_drvrd(SIE_dHubChannel *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 dHubChannel_drvwr(SIE_dHubChannel *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void dHubChannel_reset(SIE_dHubChannel *p);
SIGN32 dHubChannel_cmp (SIE_dHubChannel *p, SIE_dHubChannel *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define dHubChannel_check(p,pie,pfx,hLOG) dHubChannel_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define dHubChannel_print(p, pfx,hLOG) dHubChannel_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: dHubChannel
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE dHubReg biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// # 0x00000 SemaHub
/// $SemaHub SemaHub REG
/// ###
/// * For dHub internal interrupts, also provide semaphore service for external (all channels will be opened to external to access).
/// * Channel 0 is used for dHub.HBO interrupt.
/// * Channel N+1 is used for dHub.Channel[N] interrupt.
/// ###
/// @ 0x00400 (P)
/// # 0x00400 HBO
/// $HBO HBO REG
/// ###
/// * For dHub channels (command/data queues), also provide (unused) FIFO service for external.
/// * Channel 2N is used for dHub.Channel[N] command.
/// * Channel 2N+1 is used for dHub.Channel[N] data.
/// ###
/// @ 0x00B00 ARR (P)
/// # 0x00B00 channelCtl
/// $dHubChannel channelCtl REG [16]
/// ###
/// * Up-to 16 channels
/// ###
/// @ 0x00C00 BUSY (R-)
/// %unsigned 16 ST
/// ###
/// * Per channel status
/// * 0: no ongoing command is being processed, and no flushing is taking place
/// * 1: channel controller is busy
/// ###
/// %% 16 # Stuffing bits...
/// @ 0x00C04 PENDING (R-)
/// %unsigned 16 ST
/// ###
/// * Per channel status
/// * 0: Response queue is empty, meaning no outstanding AXI transactions
/// * 1: there exist some outstanding AXI transactions
/// ###
/// %% 16 # Stuffing bits...
/// @ 0x00C08 busRstEn (RW-)
/// %unsigned 1 reg 0x0
/// ###
/// * Write one to this register will trigger gate-keeper to take over the AXI bus.
/// ###
/// %% 31 # Stuffing bits...
/// @ 0x00C0C busRstDone (R-)
/// %unsigned 1 reg 0x1
/// ###
/// * After gate-keeper take over the AXI bus, it will assert this bit once there is no outstanding transactions on AXI bus.
/// ###
/// %% 31 # Stuffing bits...
/// @ 0x00C10 flowCtl (P)
/// %unsigned 8 rAlpha 0x0
/// %unsigned 8 wAlpha 0x0
/// ###
/// * Flow control parameter for read and write axi master.
/// * clkCnt=(alpha*bstLen)>>4.
/// * This # of clock cycles will be blocked for the axi master after an axi command with the burst length of “bstLen”.
/// * When set alpha to be 0, the master will never be blocked.
/// ###
/// %% 16 # Stuffing bits...
/// @ 0x00C14 axiCmdCol (P)
/// %unsigned 16 rCnt 0x0
/// %unsigned 16 wCnt 0x0
/// ###
/// * Axi command collection. The counter value indicate read/write do the command collection for # of clock cycles, start from the first command pushed to an empty command Q. Here are the conditions that will trigger the Axi master to send out command.
/// * Cmd Q full or the counter count down to “0” from the programmed value.
/// * Set the counter to 0 will disable the command collection.
/// * end dHubReg
/// ###
/// @ 0x00C18 (W-)
/// # # Stuffing bytes...
/// %% 1856
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 3328B, bits: 3314b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_dHubReg
#define h_dHubReg (){}
#define RA_dHubReg_SemaHub 0x0000
///////////////////////////////////////////////////////////
#define RA_dHubReg_HBO 0x0400
///////////////////////////////////////////////////////////
#define RA_dHubReg_ARR 0x0B00
#define RA_dHubReg_channelCtl 0x0B00
///////////////////////////////////////////////////////////
#define RA_dHubReg_BUSY 0x0C00
#define BA_dHubReg_BUSY_ST 0x0C00
#define B16dHubReg_BUSY_ST 0x0C00
#define LSb32dHubReg_BUSY_ST 0
#define LSb16dHubReg_BUSY_ST 0
#define bdHubReg_BUSY_ST 16
#define MSK32dHubReg_BUSY_ST 0x0000FFFF
///////////////////////////////////////////////////////////
#define RA_dHubReg_PENDING 0x0C04
#define BA_dHubReg_PENDING_ST 0x0C04
#define B16dHubReg_PENDING_ST 0x0C04
#define LSb32dHubReg_PENDING_ST 0
#define LSb16dHubReg_PENDING_ST 0
#define bdHubReg_PENDING_ST 16
#define MSK32dHubReg_PENDING_ST 0x0000FFFF
///////////////////////////////////////////////////////////
#define RA_dHubReg_busRstEn 0x0C08
#define BA_dHubReg_busRstEn_reg 0x0C08
#define B16dHubReg_busRstEn_reg 0x0C08
#define LSb32dHubReg_busRstEn_reg 0
#define LSb16dHubReg_busRstEn_reg 0
#define bdHubReg_busRstEn_reg 1
#define MSK32dHubReg_busRstEn_reg 0x00000001
///////////////////////////////////////////////////////////
#define RA_dHubReg_busRstDone 0x0C0C
#define BA_dHubReg_busRstDone_reg 0x0C0C
#define B16dHubReg_busRstDone_reg 0x0C0C
#define LSb32dHubReg_busRstDone_reg 0
#define LSb16dHubReg_busRstDone_reg 0
#define bdHubReg_busRstDone_reg 1
#define MSK32dHubReg_busRstDone_reg 0x00000001
///////////////////////////////////////////////////////////
#define RA_dHubReg_flowCtl 0x0C10
#define BA_dHubReg_flowCtl_rAlpha 0x0C10
#define B16dHubReg_flowCtl_rAlpha 0x0C10
#define LSb32dHubReg_flowCtl_rAlpha 0
#define LSb16dHubReg_flowCtl_rAlpha 0
#define bdHubReg_flowCtl_rAlpha 8
#define MSK32dHubReg_flowCtl_rAlpha 0x000000FF
#define BA_dHubReg_flowCtl_wAlpha 0x0C11
#define B16dHubReg_flowCtl_wAlpha 0x0C10
#define LSb32dHubReg_flowCtl_wAlpha 8
#define LSb16dHubReg_flowCtl_wAlpha 8
#define bdHubReg_flowCtl_wAlpha 8
#define MSK32dHubReg_flowCtl_wAlpha 0x0000FF00
///////////////////////////////////////////////////////////
#define RA_dHubReg_axiCmdCol 0x0C14
#define BA_dHubReg_axiCmdCol_rCnt 0x0C14
#define B16dHubReg_axiCmdCol_rCnt 0x0C14
#define LSb32dHubReg_axiCmdCol_rCnt 0
#define LSb16dHubReg_axiCmdCol_rCnt 0
#define bdHubReg_axiCmdCol_rCnt 16
#define MSK32dHubReg_axiCmdCol_rCnt 0x0000FFFF
#define BA_dHubReg_axiCmdCol_wCnt 0x0C16
#define B16dHubReg_axiCmdCol_wCnt 0x0C16
#define LSb32dHubReg_axiCmdCol_wCnt 16
#define LSb16dHubReg_axiCmdCol_wCnt 0
#define bdHubReg_axiCmdCol_wCnt 16
#define MSK32dHubReg_axiCmdCol_wCnt 0xFFFF0000
///////////////////////////////////////////////////////////
typedef struct SIE_dHubReg {
///////////////////////////////////////////////////////////
SIE_SemaHub ie_SemaHub;
///////////////////////////////////////////////////////////
SIE_HBO ie_HBO;
///////////////////////////////////////////////////////////
SIE_dHubChannel ie_channelCtl[16];
///////////////////////////////////////////////////////////
#define GET32dHubReg_BUSY_ST(r32) _BFGET_(r32,15, 0)
#define SET32dHubReg_BUSY_ST(r32,v) _BFSET_(r32,15, 0,v)
#define GET16dHubReg_BUSY_ST(r16) _BFGET_(r16,15, 0)
#define SET16dHubReg_BUSY_ST(r16,v) _BFSET_(r16,15, 0,v)
#define w32dHubReg_BUSY {\
UNSG32 uBUSY_ST : 16;\
UNSG32 RSVDxC00_b16 : 16;\
}
union { UNSG32 u32dHubReg_BUSY;
struct w32dHubReg_BUSY;
};
///////////////////////////////////////////////////////////
#define GET32dHubReg_PENDING_ST(r32) _BFGET_(r32,15, 0)
#define SET32dHubReg_PENDING_ST(r32,v) _BFSET_(r32,15, 0,v)
#define GET16dHubReg_PENDING_ST(r16) _BFGET_(r16,15, 0)
#define SET16dHubReg_PENDING_ST(r16,v) _BFSET_(r16,15, 0,v)
#define w32dHubReg_PENDING {\
UNSG32 uPENDING_ST : 16;\
UNSG32 RSVDxC04_b16 : 16;\
}
union { UNSG32 u32dHubReg_PENDING;
struct w32dHubReg_PENDING;
};
///////////////////////////////////////////////////////////
#define GET32dHubReg_busRstEn_reg(r32) _BFGET_(r32, 0, 0)
#define SET32dHubReg_busRstEn_reg(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16dHubReg_busRstEn_reg(r16) _BFGET_(r16, 0, 0)
#define SET16dHubReg_busRstEn_reg(r16,v) _BFSET_(r16, 0, 0,v)
#define w32dHubReg_busRstEn {\
UNSG32 ubusRstEn_reg : 1;\
UNSG32 RSVDxC08_b1 : 31;\
}
union { UNSG32 u32dHubReg_busRstEn;
struct w32dHubReg_busRstEn;
};
///////////////////////////////////////////////////////////
#define GET32dHubReg_busRstDone_reg(r32) _BFGET_(r32, 0, 0)
#define SET32dHubReg_busRstDone_reg(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16dHubReg_busRstDone_reg(r16) _BFGET_(r16, 0, 0)
#define SET16dHubReg_busRstDone_reg(r16,v) _BFSET_(r16, 0, 0,v)
#define w32dHubReg_busRstDone {\
UNSG32 ubusRstDone_reg : 1;\
UNSG32 RSVDxC0C_b1 : 31;\
}
union { UNSG32 u32dHubReg_busRstDone;
struct w32dHubReg_busRstDone;
};
///////////////////////////////////////////////////////////
#define GET32dHubReg_flowCtl_rAlpha(r32) _BFGET_(r32, 7, 0)
#define SET32dHubReg_flowCtl_rAlpha(r32,v) _BFSET_(r32, 7, 0,v)
#define GET16dHubReg_flowCtl_rAlpha(r16) _BFGET_(r16, 7, 0)
#define SET16dHubReg_flowCtl_rAlpha(r16,v) _BFSET_(r16, 7, 0,v)
#define GET32dHubReg_flowCtl_wAlpha(r32) _BFGET_(r32,15, 8)
#define SET32dHubReg_flowCtl_wAlpha(r32,v) _BFSET_(r32,15, 8,v)
#define GET16dHubReg_flowCtl_wAlpha(r16) _BFGET_(r16,15, 8)
#define SET16dHubReg_flowCtl_wAlpha(r16,v) _BFSET_(r16,15, 8,v)
#define w32dHubReg_flowCtl {\
UNSG32 uflowCtl_rAlpha : 8;\
UNSG32 uflowCtl_wAlpha : 8;\
UNSG32 RSVDxC10_b16 : 16;\
}
union { UNSG32 u32dHubReg_flowCtl;
struct w32dHubReg_flowCtl;
};
///////////////////////////////////////////////////////////
#define GET32dHubReg_axiCmdCol_rCnt(r32) _BFGET_(r32,15, 0)
#define SET32dHubReg_axiCmdCol_rCnt(r32,v) _BFSET_(r32,15, 0,v)
#define GET16dHubReg_axiCmdCol_rCnt(r16) _BFGET_(r16,15, 0)
#define SET16dHubReg_axiCmdCol_rCnt(r16,v) _BFSET_(r16,15, 0,v)
#define GET32dHubReg_axiCmdCol_wCnt(r32) _BFGET_(r32,31,16)
#define SET32dHubReg_axiCmdCol_wCnt(r32,v) _BFSET_(r32,31,16,v)
#define GET16dHubReg_axiCmdCol_wCnt(r16) _BFGET_(r16,15, 0)
#define SET16dHubReg_axiCmdCol_wCnt(r16,v) _BFSET_(r16,15, 0,v)
#define w32dHubReg_axiCmdCol {\
UNSG32 uaxiCmdCol_rCnt : 16;\
UNSG32 uaxiCmdCol_wCnt : 16;\
}
union { UNSG32 u32dHubReg_axiCmdCol;
struct w32dHubReg_axiCmdCol;
};
///////////////////////////////////////////////////////////
UNSG8 RSVDxC18 [232];
///////////////////////////////////////////////////////////
} SIE_dHubReg;
typedef union T32dHubReg_BUSY
{ UNSG32 u32;
struct w32dHubReg_BUSY;
} T32dHubReg_BUSY;
typedef union T32dHubReg_PENDING
{ UNSG32 u32;
struct w32dHubReg_PENDING;
} T32dHubReg_PENDING;
typedef union T32dHubReg_busRstEn
{ UNSG32 u32;
struct w32dHubReg_busRstEn;
} T32dHubReg_busRstEn;
typedef union T32dHubReg_busRstDone
{ UNSG32 u32;
struct w32dHubReg_busRstDone;
} T32dHubReg_busRstDone;
typedef union T32dHubReg_flowCtl
{ UNSG32 u32;
struct w32dHubReg_flowCtl;
} T32dHubReg_flowCtl;
typedef union T32dHubReg_axiCmdCol
{ UNSG32 u32;
struct w32dHubReg_axiCmdCol;
} T32dHubReg_axiCmdCol;
///////////////////////////////////////////////////////////
typedef union TdHubReg_BUSY
{ UNSG32 u32[1];
struct {
struct w32dHubReg_BUSY;
};
} TdHubReg_BUSY;
typedef union TdHubReg_PENDING
{ UNSG32 u32[1];
struct {
struct w32dHubReg_PENDING;
};
} TdHubReg_PENDING;
typedef union TdHubReg_busRstEn
{ UNSG32 u32[1];
struct {
struct w32dHubReg_busRstEn;
};
} TdHubReg_busRstEn;
typedef union TdHubReg_busRstDone
{ UNSG32 u32[1];
struct {
struct w32dHubReg_busRstDone;
};
} TdHubReg_busRstDone;
typedef union TdHubReg_flowCtl
{ UNSG32 u32[1];
struct {
struct w32dHubReg_flowCtl;
};
} TdHubReg_flowCtl;
typedef union TdHubReg_axiCmdCol
{ UNSG32 u32[1];
struct {
struct w32dHubReg_axiCmdCol;
};
} TdHubReg_axiCmdCol;
///////////////////////////////////////////////////////////
SIGN32 dHubReg_drvrd(SIE_dHubReg *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 dHubReg_drvwr(SIE_dHubReg *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void dHubReg_reset(SIE_dHubReg *p);
SIGN32 dHubReg_cmp (SIE_dHubReg *p, SIE_dHubReg *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define dHubReg_check(p,pie,pfx,hLOG) dHubReg_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define dHubReg_print(p, pfx,hLOG) dHubReg_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: dHubReg
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE dHubCmd2D biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 MEM (W-)
/// %unsigned 32 addr
/// ###
/// * DRAM data address of the 2D buffer, in bytes.
/// ###
/// @ 0x00004 DESC (W-)
/// %unsigned 16 stride
/// ###
/// * Line stride size in bytes
/// ###
/// %unsigned 13 numLine
/// ###
/// * Number of lines in buffer. Size of 0 is forbidden.
/// ###
/// %unsigned 2 hdrLoop
/// ###
/// * Size of line-loop for choosing dHubCmdHDR
/// * 0 is treated as 4
/// ###
/// %unsigned 1 interrupt
/// ###
/// * 1: raise interrupt upon whole 2D command finish.
/// * 1: set the last 1D command interrupt bit.
/// * 0 : use the default 1D command interrupt bit.
/// ###
/// @ 0x00008 START (W-)
/// %unsigned 1 EN 0x0
/// ###
/// * Write 1 to enable the channel; 0 to pause the channel
/// ###
/// %% 31 # Stuffing bits...
/// @ 0x0000C CLEAR (W-)
/// %unsigned 1 EN
/// ###
/// * Write anything to reset the 2D engine.
/// ###
/// %% 31 # Stuffing bits...
/// @ 0x00010 (P)
/// # 0x00010 HDR
/// $dHubCmdHDR HDR REG [4]
/// ###
/// * Headers used in generating dHubCmd for each line in looping order, loop size (1,2,3,4) specified by DESC_hdrLoop
/// * end dHubCmd2D
/// ###
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 32B, bits: 182b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_dHubCmd2D
#define h_dHubCmd2D (){}
#define RA_dHubCmd2D_MEM 0x0000
#define BA_dHubCmd2D_MEM_addr 0x0000
#define B16dHubCmd2D_MEM_addr 0x0000
#define LSb32dHubCmd2D_MEM_addr 0
#define LSb16dHubCmd2D_MEM_addr 0
#define bdHubCmd2D_MEM_addr 32
#define MSK32dHubCmd2D_MEM_addr 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_dHubCmd2D_DESC 0x0004
#define BA_dHubCmd2D_DESC_stride 0x0004
#define B16dHubCmd2D_DESC_stride 0x0004
#define LSb32dHubCmd2D_DESC_stride 0
#define LSb16dHubCmd2D_DESC_stride 0
#define bdHubCmd2D_DESC_stride 16
#define MSK32dHubCmd2D_DESC_stride 0x0000FFFF
#define BA_dHubCmd2D_DESC_numLine 0x0006
#define B16dHubCmd2D_DESC_numLine 0x0006
#define LSb32dHubCmd2D_DESC_numLine 16
#define LSb16dHubCmd2D_DESC_numLine 0
#define bdHubCmd2D_DESC_numLine 13
#define MSK32dHubCmd2D_DESC_numLine 0x1FFF0000
#define BA_dHubCmd2D_DESC_hdrLoop 0x0007
#define B16dHubCmd2D_DESC_hdrLoop 0x0006
#define LSb32dHubCmd2D_DESC_hdrLoop 29
#define LSb16dHubCmd2D_DESC_hdrLoop 13
#define bdHubCmd2D_DESC_hdrLoop 2
#define MSK32dHubCmd2D_DESC_hdrLoop 0x60000000
#define BA_dHubCmd2D_DESC_interrupt 0x0007
#define B16dHubCmd2D_DESC_interrupt 0x0006
#define LSb32dHubCmd2D_DESC_interrupt 31
#define LSb16dHubCmd2D_DESC_interrupt 15
#define bdHubCmd2D_DESC_interrupt 1
#define MSK32dHubCmd2D_DESC_interrupt 0x80000000
///////////////////////////////////////////////////////////
#define RA_dHubCmd2D_START 0x0008
#define BA_dHubCmd2D_START_EN 0x0008
#define B16dHubCmd2D_START_EN 0x0008
#define LSb32dHubCmd2D_START_EN 0
#define LSb16dHubCmd2D_START_EN 0
#define bdHubCmd2D_START_EN 1
#define MSK32dHubCmd2D_START_EN 0x00000001
///////////////////////////////////////////////////////////
#define RA_dHubCmd2D_CLEAR 0x000C
#define BA_dHubCmd2D_CLEAR_EN 0x000C
#define B16dHubCmd2D_CLEAR_EN 0x000C
#define LSb32dHubCmd2D_CLEAR_EN 0
#define LSb16dHubCmd2D_CLEAR_EN 0
#define bdHubCmd2D_CLEAR_EN 1
#define MSK32dHubCmd2D_CLEAR_EN 0x00000001
///////////////////////////////////////////////////////////
#define RA_dHubCmd2D_HDR 0x0010
///////////////////////////////////////////////////////////
typedef struct SIE_dHubCmd2D {
///////////////////////////////////////////////////////////
#define GET32dHubCmd2D_MEM_addr(r32) _BFGET_(r32,31, 0)
#define SET32dHubCmd2D_MEM_addr(r32,v) _BFSET_(r32,31, 0,v)
#define w32dHubCmd2D_MEM {\
UNSG32 uMEM_addr : 32;\
}
union { UNSG32 u32dHubCmd2D_MEM;
struct w32dHubCmd2D_MEM;
};
///////////////////////////////////////////////////////////
#define GET32dHubCmd2D_DESC_stride(r32) _BFGET_(r32,15, 0)
#define SET32dHubCmd2D_DESC_stride(r32,v) _BFSET_(r32,15, 0,v)
#define GET16dHubCmd2D_DESC_stride(r16) _BFGET_(r16,15, 0)
#define SET16dHubCmd2D_DESC_stride(r16,v) _BFSET_(r16,15, 0,v)
#define GET32dHubCmd2D_DESC_numLine(r32) _BFGET_(r32,28,16)
#define SET32dHubCmd2D_DESC_numLine(r32,v) _BFSET_(r32,28,16,v)
#define GET16dHubCmd2D_DESC_numLine(r16) _BFGET_(r16,12, 0)
#define SET16dHubCmd2D_DESC_numLine(r16,v) _BFSET_(r16,12, 0,v)
#define GET32dHubCmd2D_DESC_hdrLoop(r32) _BFGET_(r32,30,29)
#define SET32dHubCmd2D_DESC_hdrLoop(r32,v) _BFSET_(r32,30,29,v)
#define GET16dHubCmd2D_DESC_hdrLoop(r16) _BFGET_(r16,14,13)
#define SET16dHubCmd2D_DESC_hdrLoop(r16,v) _BFSET_(r16,14,13,v)
#define GET32dHubCmd2D_DESC_interrupt(r32) _BFGET_(r32,31,31)
#define SET32dHubCmd2D_DESC_interrupt(r32,v) _BFSET_(r32,31,31,v)
#define GET16dHubCmd2D_DESC_interrupt(r16) _BFGET_(r16,15,15)
#define SET16dHubCmd2D_DESC_interrupt(r16,v) _BFSET_(r16,15,15,v)
#define w32dHubCmd2D_DESC {\
UNSG32 uDESC_stride : 16;\
UNSG32 uDESC_numLine : 13;\
UNSG32 uDESC_hdrLoop : 2;\
UNSG32 uDESC_interrupt : 1;\
}
union { UNSG32 u32dHubCmd2D_DESC;
struct w32dHubCmd2D_DESC;
};
///////////////////////////////////////////////////////////
#define GET32dHubCmd2D_START_EN(r32) _BFGET_(r32, 0, 0)
#define SET32dHubCmd2D_START_EN(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16dHubCmd2D_START_EN(r16) _BFGET_(r16, 0, 0)
#define SET16dHubCmd2D_START_EN(r16,v) _BFSET_(r16, 0, 0,v)
#define w32dHubCmd2D_START {\
UNSG32 uSTART_EN : 1;\
UNSG32 RSVDx8_b1 : 31;\
}
union { UNSG32 u32dHubCmd2D_START;
struct w32dHubCmd2D_START;
};
///////////////////////////////////////////////////////////
#define GET32dHubCmd2D_CLEAR_EN(r32) _BFGET_(r32, 0, 0)
#define SET32dHubCmd2D_CLEAR_EN(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16dHubCmd2D_CLEAR_EN(r16) _BFGET_(r16, 0, 0)
#define SET16dHubCmd2D_CLEAR_EN(r16,v) _BFSET_(r16, 0, 0,v)
#define w32dHubCmd2D_CLEAR {\
UNSG32 uCLEAR_EN : 1;\
UNSG32 RSVDxC_b1 : 31;\
}
union { UNSG32 u32dHubCmd2D_CLEAR;
struct w32dHubCmd2D_CLEAR;
};
///////////////////////////////////////////////////////////
SIE_dHubCmdHDR ie_HDR[4];
///////////////////////////////////////////////////////////
} SIE_dHubCmd2D;
typedef union T32dHubCmd2D_MEM
{ UNSG32 u32;
struct w32dHubCmd2D_MEM;
} T32dHubCmd2D_MEM;
typedef union T32dHubCmd2D_DESC
{ UNSG32 u32;
struct w32dHubCmd2D_DESC;
} T32dHubCmd2D_DESC;
typedef union T32dHubCmd2D_START
{ UNSG32 u32;
struct w32dHubCmd2D_START;
} T32dHubCmd2D_START;
typedef union T32dHubCmd2D_CLEAR
{ UNSG32 u32;
struct w32dHubCmd2D_CLEAR;
} T32dHubCmd2D_CLEAR;
///////////////////////////////////////////////////////////
typedef union TdHubCmd2D_MEM
{ UNSG32 u32[1];
struct {
struct w32dHubCmd2D_MEM;
};
} TdHubCmd2D_MEM;
typedef union TdHubCmd2D_DESC
{ UNSG32 u32[1];
struct {
struct w32dHubCmd2D_DESC;
};
} TdHubCmd2D_DESC;
typedef union TdHubCmd2D_START
{ UNSG32 u32[1];
struct {
struct w32dHubCmd2D_START;
};
} TdHubCmd2D_START;
typedef union TdHubCmd2D_CLEAR
{ UNSG32 u32[1];
struct {
struct w32dHubCmd2D_CLEAR;
};
} TdHubCmd2D_CLEAR;
///////////////////////////////////////////////////////////
SIGN32 dHubCmd2D_drvrd(SIE_dHubCmd2D *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 dHubCmd2D_drvwr(SIE_dHubCmd2D *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void dHubCmd2D_reset(SIE_dHubCmd2D *p);
SIGN32 dHubCmd2D_cmp (SIE_dHubCmd2D *p, SIE_dHubCmd2D *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define dHubCmd2D_check(p,pie,pfx,hLOG) dHubCmd2D_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define dHubCmd2D_print(p, pfx,hLOG) dHubCmd2D_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: dHubCmd2D
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE dHubQuery (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 RESP (R-)
/// %unsigned 16 ST
/// ###
/// * Dhub channel state machine status.
/// ###
/// %% 16 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 16b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_dHubQuery
#define h_dHubQuery (){}
#define RA_dHubQuery_RESP 0x0000
#define BA_dHubQuery_RESP_ST 0x0000
#define B16dHubQuery_RESP_ST 0x0000
#define LSb32dHubQuery_RESP_ST 0
#define LSb16dHubQuery_RESP_ST 0
#define bdHubQuery_RESP_ST 16
#define MSK32dHubQuery_RESP_ST 0x0000FFFF
///////////////////////////////////////////////////////////
typedef struct SIE_dHubQuery {
///////////////////////////////////////////////////////////
#define GET32dHubQuery_RESP_ST(r32) _BFGET_(r32,15, 0)
#define SET32dHubQuery_RESP_ST(r32,v) _BFSET_(r32,15, 0,v)
#define GET16dHubQuery_RESP_ST(r16) _BFGET_(r16,15, 0)
#define SET16dHubQuery_RESP_ST(r16,v) _BFSET_(r16,15, 0,v)
#define w32dHubQuery_RESP {\
UNSG32 uRESP_ST : 16;\
UNSG32 RSVDx0_b16 : 16;\
}
union { UNSG32 u32dHubQuery_RESP;
struct w32dHubQuery_RESP;
};
///////////////////////////////////////////////////////////
} SIE_dHubQuery;
typedef union T32dHubQuery_RESP
{ UNSG32 u32;
struct w32dHubQuery_RESP;
} T32dHubQuery_RESP;
///////////////////////////////////////////////////////////
typedef union TdHubQuery_RESP
{ UNSG32 u32[1];
struct {
struct w32dHubQuery_RESP;
};
} TdHubQuery_RESP;
///////////////////////////////////////////////////////////
SIGN32 dHubQuery_drvrd(SIE_dHubQuery *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 dHubQuery_drvwr(SIE_dHubQuery *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void dHubQuery_reset(SIE_dHubQuery *p);
SIGN32 dHubQuery_cmp (SIE_dHubQuery *p, SIE_dHubQuery *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define dHubQuery_check(p,pie,pfx,hLOG) dHubQuery_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define dHubQuery_print(p, pfx,hLOG) dHubQuery_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: dHubQuery
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE dHubReg2D biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// # 0x00000 dHub
/// $dHubReg dHub REG
/// @ 0x00D00 ARR (P)
/// # 0x00D00 Cmd2D
/// $dHubCmd2D Cmd2D REG [16]
/// ###
/// * Up-to 16 2D channels.
/// * 2D Channel[N] is connected to dHub.Channel[N] command queue, that is, dHub.HBO.Channel[2N]
/// * Note: Number of 2D channels could be less than dHub channels (rest of are 1D only)
/// ###
/// @ 0x00F00 BUSY (R-)
/// %unsigned 16 ST
/// ###
/// * Per channel status
/// * 0: no ongoing command is being processed
/// * 1: channel controller is busy
/// ###
/// %% 16 # Stuffing bits...
/// @ 0x00F04 (W-)
/// # # Stuffing bytes...
/// %% 480
/// @ 0x00F40 (P)
/// # 0x00F40 CH_ST
/// $dHubQuery CH_ST MEM [16]
/// ###
/// * end dHubReg2D
/// ###
/// @ 0x00F80 (W-)
/// # # Stuffing bytes...
/// %% 1024
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4096B, bits: 6274b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_dHubReg2D
#define h_dHubReg2D (){}
#define RA_dHubReg2D_dHub 0x0000
///////////////////////////////////////////////////////////
#define RA_dHubReg2D_ARR 0x0D00
#define RA_dHubReg2D_Cmd2D 0x0D00
///////////////////////////////////////////////////////////
#define RA_dHubReg2D_BUSY 0x0F00
#define BA_dHubReg2D_BUSY_ST 0x0F00
#define B16dHubReg2D_BUSY_ST 0x0F00
#define LSb32dHubReg2D_BUSY_ST 0
#define LSb16dHubReg2D_BUSY_ST 0
#define bdHubReg2D_BUSY_ST 16
#define MSK32dHubReg2D_BUSY_ST 0x0000FFFF
///////////////////////////////////////////////////////////
#define RA_dHubReg2D_CH_ST 0x0F40
///////////////////////////////////////////////////////////
typedef struct SIE_dHubReg2D {
///////////////////////////////////////////////////////////
SIE_dHubReg ie_dHub;
///////////////////////////////////////////////////////////
SIE_dHubCmd2D ie_Cmd2D[16];
///////////////////////////////////////////////////////////
#define GET32dHubReg2D_BUSY_ST(r32) _BFGET_(r32,15, 0)
#define SET32dHubReg2D_BUSY_ST(r32,v) _BFSET_(r32,15, 0,v)
#define GET16dHubReg2D_BUSY_ST(r16) _BFGET_(r16,15, 0)
#define SET16dHubReg2D_BUSY_ST(r16,v) _BFSET_(r16,15, 0,v)
#define w32dHubReg2D_BUSY {\
UNSG32 uBUSY_ST : 16;\
UNSG32 RSVDxF00_b16 : 16;\
}
union { UNSG32 u32dHubReg2D_BUSY;
struct w32dHubReg2D_BUSY;
};
///////////////////////////////////////////////////////////
UNSG8 RSVDxF04 [60];
///////////////////////////////////////////////////////////
SIE_dHubQuery ie_CH_ST[16];
///////////////////////////////////////////////////////////
UNSG8 RSVDxF80 [128];
///////////////////////////////////////////////////////////
} SIE_dHubReg2D;
typedef union T32dHubReg2D_BUSY
{ UNSG32 u32;
struct w32dHubReg2D_BUSY;
} T32dHubReg2D_BUSY;
///////////////////////////////////////////////////////////
typedef union TdHubReg2D_BUSY
{ UNSG32 u32[1];
struct {
struct w32dHubReg2D_BUSY;
};
} TdHubReg2D_BUSY;
///////////////////////////////////////////////////////////
SIGN32 dHubReg2D_drvrd(SIE_dHubReg2D *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 dHubReg2D_drvwr(SIE_dHubReg2D *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void dHubReg2D_reset(SIE_dHubReg2D *p);
SIGN32 dHubReg2D_cmp (SIE_dHubReg2D *p, SIE_dHubReg2D *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define dHubReg2D_check(p,pie,pfx,hLOG) dHubReg2D_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define dHubReg2D_print(p, pfx,hLOG) dHubReg2D_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: dHubReg2D
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE ALU64CMD (4,4)
/// ###
/// * 16-bit + 6-bit parameters for A64CMD
/// ###
/// # # ----------------------------------------------------------
/// @ 0x00000 par (W-)
/// %unsigned 16 rS
/// ###
/// * rS register for A64CMD
/// ###
/// %unsigned 6 q6
/// ###
/// * q6 parameter for A64CMD
/// * end ALU64CMD
/// ###
/// %% 10 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 22b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_ALU64CMD
#define h_ALU64CMD (){}
#define RA_ALU64CMD_par 0x0000
#define BA_ALU64CMD_par_rS 0x0000
#define B16ALU64CMD_par_rS 0x0000
#define LSb32ALU64CMD_par_rS 0
#define LSb16ALU64CMD_par_rS 0
#define bALU64CMD_par_rS 16
#define MSK32ALU64CMD_par_rS 0x0000FFFF
#define BA_ALU64CMD_par_q6 0x0002
#define B16ALU64CMD_par_q6 0x0002
#define LSb32ALU64CMD_par_q6 16
#define LSb16ALU64CMD_par_q6 0
#define bALU64CMD_par_q6 6
#define MSK32ALU64CMD_par_q6 0x003F0000
///////////////////////////////////////////////////////////
typedef struct SIE_ALU64CMD {
///////////////////////////////////////////////////////////
#define GET32ALU64CMD_par_rS(r32) _BFGET_(r32,15, 0)
#define SET32ALU64CMD_par_rS(r32,v) _BFSET_(r32,15, 0,v)
#define GET16ALU64CMD_par_rS(r16) _BFGET_(r16,15, 0)
#define SET16ALU64CMD_par_rS(r16,v) _BFSET_(r16,15, 0,v)
#define GET32ALU64CMD_par_q6(r32) _BFGET_(r32,21,16)
#define SET32ALU64CMD_par_q6(r32,v) _BFSET_(r32,21,16,v)
#define GET16ALU64CMD_par_q6(r16) _BFGET_(r16, 5, 0)
#define SET16ALU64CMD_par_q6(r16,v) _BFSET_(r16, 5, 0,v)
#define w32ALU64CMD_par {\
UNSG32 upar_rS : 16;\
UNSG32 upar_q6 : 6;\
UNSG32 RSVDx0_b22 : 10;\
}
union { UNSG32 u32ALU64CMD_par;
struct w32ALU64CMD_par;
};
///////////////////////////////////////////////////////////
} SIE_ALU64CMD;
typedef union T32ALU64CMD_par
{ UNSG32 u32;
struct w32ALU64CMD_par;
} T32ALU64CMD_par;
///////////////////////////////////////////////////////////
typedef union TALU64CMD_par
{ UNSG32 u32[1];
struct {
struct w32ALU64CMD_par;
};
} TALU64CMD_par;
///////////////////////////////////////////////////////////
SIGN32 ALU64CMD_drvrd(SIE_ALU64CMD *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 ALU64CMD_drvwr(SIE_ALU64CMD *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void ALU64CMD_reset(SIE_ALU64CMD *p);
SIGN32 ALU64CMD_cmp (SIE_ALU64CMD *p, SIE_ALU64CMD *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define ALU64CMD_check(p,pie,pfx,hLOG) ALU64CMD_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define ALU64CMD_print(p, pfx,hLOG) ALU64CMD_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: ALU64CMD
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE A64CmdAll (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 ext (P)
/// # 0x00000 ext
/// $ALU64CMD ext REG [256]
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 1024B, bits: 5632b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_A64CmdAll
#define h_A64CmdAll (){}
#define RA_A64CmdAll_ext 0x0000
///////////////////////////////////////////////////////////
typedef struct SIE_A64CmdAll {
///////////////////////////////////////////////////////////
SIE_ALU64CMD ie_ext[256];
///////////////////////////////////////////////////////////
} SIE_A64CmdAll;
///////////////////////////////////////////////////////////
SIGN32 A64CmdAll_drvrd(SIE_A64CmdAll *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 A64CmdAll_drvwr(SIE_A64CmdAll *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void A64CmdAll_reset(SIE_A64CmdAll *p);
SIGN32 A64CmdAll_cmp (SIE_A64CmdAll *p, SIE_A64CmdAll *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define A64CmdAll_check(p,pie,pfx,hLOG) A64CmdAll_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define A64CmdAll_print(p, pfx,hLOG) A64CmdAll_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: A64CmdAll
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE ALU64DAT (4,4)
/// ###
/// * 64-bit return data from ALU64 extensions
/// ###
/// # # ----------------------------------------------------------
/// @ 0x00000 low (R-)
/// %unsigned 32 val
/// ###
/// * Lower 32-bit of the ALU64 return value; read triggers ALU64 extension pop
/// ###
/// @ 0x00004 high (R-)
/// %unsigned 32 val
/// ###
/// * Higher 32-bit of the ALU64 return value
/// * end ALU64DAT
/// ###
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 8B, bits: 64b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_ALU64DAT
#define h_ALU64DAT (){}
#define RA_ALU64DAT_low 0x0000
#define BA_ALU64DAT_low_val 0x0000
#define B16ALU64DAT_low_val 0x0000
#define LSb32ALU64DAT_low_val 0
#define LSb16ALU64DAT_low_val 0
#define bALU64DAT_low_val 32
#define MSK32ALU64DAT_low_val 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_ALU64DAT_high 0x0004
#define BA_ALU64DAT_high_val 0x0004
#define B16ALU64DAT_high_val 0x0004
#define LSb32ALU64DAT_high_val 0
#define LSb16ALU64DAT_high_val 0
#define bALU64DAT_high_val 32
#define MSK32ALU64DAT_high_val 0xFFFFFFFF
///////////////////////////////////////////////////////////
typedef struct SIE_ALU64DAT {
///////////////////////////////////////////////////////////
#define GET32ALU64DAT_low_val(r32) _BFGET_(r32,31, 0)
#define SET32ALU64DAT_low_val(r32,v) _BFSET_(r32,31, 0,v)
#define w32ALU64DAT_low {\
UNSG32 ulow_val : 32;\
}
union { UNSG32 u32ALU64DAT_low;
struct w32ALU64DAT_low;
};
///////////////////////////////////////////////////////////
#define GET32ALU64DAT_high_val(r32) _BFGET_(r32,31, 0)
#define SET32ALU64DAT_high_val(r32,v) _BFSET_(r32,31, 0,v)
#define w32ALU64DAT_high {\
UNSG32 uhigh_val : 32;\
}
union { UNSG32 u32ALU64DAT_high;
struct w32ALU64DAT_high;
};
///////////////////////////////////////////////////////////
} SIE_ALU64DAT;
typedef union T32ALU64DAT_low
{ UNSG32 u32;
struct w32ALU64DAT_low;
} T32ALU64DAT_low;
typedef union T32ALU64DAT_high
{ UNSG32 u32;
struct w32ALU64DAT_high;
} T32ALU64DAT_high;
///////////////////////////////////////////////////////////
typedef union TALU64DAT_low
{ UNSG32 u32[1];
struct {
struct w32ALU64DAT_low;
};
} TALU64DAT_low;
typedef union TALU64DAT_high
{ UNSG32 u32[1];
struct {
struct w32ALU64DAT_high;
};
} TALU64DAT_high;
///////////////////////////////////////////////////////////
SIGN32 ALU64DAT_drvrd(SIE_ALU64DAT *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 ALU64DAT_drvwr(SIE_ALU64DAT *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void ALU64DAT_reset(SIE_ALU64DAT *p);
SIGN32 ALU64DAT_cmp (SIE_ALU64DAT *p, SIE_ALU64DAT *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define ALU64DAT_check(p,pie,pfx,hLOG) ALU64DAT_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define ALU64DAT_print(p, pfx,hLOG) ALU64DAT_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: ALU64DAT
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE A64DatAll (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 ext (P)
/// # 0x00000 ext
/// $ALU64DAT ext REG [256]
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 2048B, bits: 16384b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_A64DatAll
#define h_A64DatAll (){}
#define RA_A64DatAll_ext 0x0000
///////////////////////////////////////////////////////////
typedef struct SIE_A64DatAll {
///////////////////////////////////////////////////////////
SIE_ALU64DAT ie_ext[256];
///////////////////////////////////////////////////////////
} SIE_A64DatAll;
///////////////////////////////////////////////////////////
SIGN32 A64DatAll_drvrd(SIE_A64DatAll *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 A64DatAll_drvwr(SIE_A64DatAll *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void A64DatAll_reset(SIE_A64DatAll *p);
SIGN32 A64DatAll_cmp (SIE_A64DatAll *p, SIE_A64DatAll *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define A64DatAll_check(p,pie,pfx,hLOG) A64DatAll_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define A64DatAll_print(p, pfx,hLOG) A64DatAll_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: A64DatAll
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE ALU64 biu (4,4)
/// ###
/// * Registers ports for CPU to access FIGO ALU64 extensions
/// ###
/// # # ----------------------------------------------------------
/// @ 0x00000 xT_l (P)
/// %unsigned 32 val
/// ###
/// * Higher 32-bit of the FIGO xT register
/// ###
/// @ 0x00004 xT_h (P)
/// %unsigned 32 val
/// ###
/// * Lower 32-bit of the FIGO xT register
/// ###
/// @ 0x00008 X2Q (RW-)
/// %unsigned 6 adr
/// ###
/// * Write triggers a transfer from {xt_H, xt_L} to RF64 selected by the address
/// ###
/// %% 26 # Stuffing bits...
/// @ 0x0000C PopParam (P)
/// %unsigned 16 rS
/// ###
/// * rS register for A64LD
/// ###
/// %% 16 # Stuffing bits...
/// @ 0x00010 (W-)
/// # # Stuffing bytes...
/// %% 8064
/// @ 0x00400 Push (P)
/// # 0x00400 a64CmdAll
/// $A64CmdAll a64CmdAll MEM
/// ###
/// * Write triggers A64CMD
/// ###
/// @ 0x00800 Pop (P)
/// # 0x00800 a64DatAll
/// $A64DatAll a64DatAll MEM
/// ###
/// * Read triggers A64LD
/// * ALU64 interface
/// ###
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4096B, bits: 150b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_ALU64
#define h_ALU64 (){}
#define RA_ALU64_xT_l 0x0000
#define BA_ALU64_xT_l_val 0x0000
#define B16ALU64_xT_l_val 0x0000
#define LSb32ALU64_xT_l_val 0
#define LSb16ALU64_xT_l_val 0
#define bALU64_xT_l_val 32
#define MSK32ALU64_xT_l_val 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_ALU64_xT_h 0x0004
#define BA_ALU64_xT_h_val 0x0004
#define B16ALU64_xT_h_val 0x0004
#define LSb32ALU64_xT_h_val 0
#define LSb16ALU64_xT_h_val 0
#define bALU64_xT_h_val 32
#define MSK32ALU64_xT_h_val 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_ALU64_X2Q 0x0008
#define BA_ALU64_X2Q_adr 0x0008
#define B16ALU64_X2Q_adr 0x0008
#define LSb32ALU64_X2Q_adr 0
#define LSb16ALU64_X2Q_adr 0
#define bALU64_X2Q_adr 6
#define MSK32ALU64_X2Q_adr 0x0000003F
///////////////////////////////////////////////////////////
#define RA_ALU64_PopParam 0x000C
#define BA_ALU64_PopParam_rS 0x000C
#define B16ALU64_PopParam_rS 0x000C
#define LSb32ALU64_PopParam_rS 0
#define LSb16ALU64_PopParam_rS 0
#define bALU64_PopParam_rS 16
#define MSK32ALU64_PopParam_rS 0x0000FFFF
///////////////////////////////////////////////////////////
#define RA_ALU64_Push 0x0400
#define RA_ALU64_a64CmdAll 0x0400
///////////////////////////////////////////////////////////
#define RA_ALU64_Pop 0x0800
#define RA_ALU64_a64DatAll 0x0800
///////////////////////////////////////////////////////////
typedef struct SIE_ALU64 {
///////////////////////////////////////////////////////////
#define GET32ALU64_xT_l_val(r32) _BFGET_(r32,31, 0)
#define SET32ALU64_xT_l_val(r32,v) _BFSET_(r32,31, 0,v)
#define w32ALU64_xT_l {\
UNSG32 uxT_l_val : 32;\
}
union { UNSG32 u32ALU64_xT_l;
struct w32ALU64_xT_l;
};
///////////////////////////////////////////////////////////
#define GET32ALU64_xT_h_val(r32) _BFGET_(r32,31, 0)
#define SET32ALU64_xT_h_val(r32,v) _BFSET_(r32,31, 0,v)
#define w32ALU64_xT_h {\
UNSG32 uxT_h_val : 32;\
}
union { UNSG32 u32ALU64_xT_h;
struct w32ALU64_xT_h;
};
///////////////////////////////////////////////////////////
#define GET32ALU64_X2Q_adr(r32) _BFGET_(r32, 5, 0)
#define SET32ALU64_X2Q_adr(r32,v) _BFSET_(r32, 5, 0,v)
#define GET16ALU64_X2Q_adr(r16) _BFGET_(r16, 5, 0)
#define SET16ALU64_X2Q_adr(r16,v) _BFSET_(r16, 5, 0,v)
#define w32ALU64_X2Q {\
UNSG32 uX2Q_adr : 6;\
UNSG32 RSVDx8_b6 : 26;\
}
union { UNSG32 u32ALU64_X2Q;
struct w32ALU64_X2Q;
};
///////////////////////////////////////////////////////////
#define GET32ALU64_PopParam_rS(r32) _BFGET_(r32,15, 0)
#define SET32ALU64_PopParam_rS(r32,v) _BFSET_(r32,15, 0,v)
#define GET16ALU64_PopParam_rS(r16) _BFGET_(r16,15, 0)
#define SET16ALU64_PopParam_rS(r16,v) _BFSET_(r16,15, 0,v)
#define w32ALU64_PopParam {\
UNSG32 uPopParam_rS : 16;\
UNSG32 RSVDxC_b16 : 16;\
}
union { UNSG32 u32ALU64_PopParam;
struct w32ALU64_PopParam;
};
///////////////////////////////////////////////////////////
UNSG8 RSVDx10 [1008];
///////////////////////////////////////////////////////////
SIE_A64CmdAll ie_a64CmdAll;
///////////////////////////////////////////////////////////
SIE_A64DatAll ie_a64DatAll;
///////////////////////////////////////////////////////////
} SIE_ALU64;
typedef union T32ALU64_xT_l
{ UNSG32 u32;
struct w32ALU64_xT_l;
} T32ALU64_xT_l;
typedef union T32ALU64_xT_h
{ UNSG32 u32;
struct w32ALU64_xT_h;
} T32ALU64_xT_h;
typedef union T32ALU64_X2Q
{ UNSG32 u32;
struct w32ALU64_X2Q;
} T32ALU64_X2Q;
typedef union T32ALU64_PopParam
{ UNSG32 u32;
struct w32ALU64_PopParam;
} T32ALU64_PopParam;
///////////////////////////////////////////////////////////
typedef union TALU64_xT_l
{ UNSG32 u32[1];
struct {
struct w32ALU64_xT_l;
};
} TALU64_xT_l;
typedef union TALU64_xT_h
{ UNSG32 u32[1];
struct {
struct w32ALU64_xT_h;
};
} TALU64_xT_h;
typedef union TALU64_X2Q
{ UNSG32 u32[1];
struct {
struct w32ALU64_X2Q;
};
} TALU64_X2Q;
typedef union TALU64_PopParam
{ UNSG32 u32[1];
struct {
struct w32ALU64_PopParam;
};
} TALU64_PopParam;
///////////////////////////////////////////////////////////
SIGN32 ALU64_drvrd(SIE_ALU64 *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 ALU64_drvwr(SIE_ALU64 *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void ALU64_reset(SIE_ALU64 *p);
SIGN32 ALU64_cmp (SIE_ALU64 *p, SIE_ALU64 *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define ALU64_check(p,pie,pfx,hLOG) ALU64_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define ALU64_print(p, pfx,hLOG) ALU64_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: ALU64
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE FigoTraceBuf biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 entry (P)
/// %unsigned 32 val
/// ###
/// * Register window for the trace buffer
/// ###
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 32b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_FigoTraceBuf
#define h_FigoTraceBuf (){}
#define RA_FigoTraceBuf_entry 0x0000
#define BA_FigoTraceBuf_entry_val 0x0000
#define B16FigoTraceBuf_entry_val 0x0000
#define LSb32FigoTraceBuf_entry_val 0
#define LSb16FigoTraceBuf_entry_val 0
#define bFigoTraceBuf_entry_val 32
#define MSK32FigoTraceBuf_entry_val 0xFFFFFFFF
///////////////////////////////////////////////////////////
typedef struct SIE_FigoTraceBuf {
///////////////////////////////////////////////////////////
#define GET32FigoTraceBuf_entry_val(r32) _BFGET_(r32,31, 0)
#define SET32FigoTraceBuf_entry_val(r32,v) _BFSET_(r32,31, 0,v)
#define w32FigoTraceBuf_entry {\
UNSG32 uentry_val : 32;\
}
union { UNSG32 u32FigoTraceBuf_entry;
struct w32FigoTraceBuf_entry;
};
///////////////////////////////////////////////////////////
} SIE_FigoTraceBuf;
typedef union T32FigoTraceBuf_entry
{ UNSG32 u32;
struct w32FigoTraceBuf_entry;
} T32FigoTraceBuf_entry;
///////////////////////////////////////////////////////////
typedef union TFigoTraceBuf_entry
{ UNSG32 u32[1];
struct {
struct w32FigoTraceBuf_entry;
};
} TFigoTraceBuf_entry;
///////////////////////////////////////////////////////////
SIGN32 FigoTraceBuf_drvrd(SIE_FigoTraceBuf *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 FigoTraceBuf_drvwr(SIE_FigoTraceBuf *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void FigoTraceBuf_reset(SIE_FigoTraceBuf *p);
SIGN32 FigoTraceBuf_cmp (SIE_FigoTraceBuf *p, SIE_FigoTraceBuf *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define FigoTraceBuf_check(p,pie,pfx,hLOG) FigoTraceBuf_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define FigoTraceBuf_print(p, pfx,hLOG) FigoTraceBuf_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: FigoTraceBuf
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE FigoReg16 biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 entry (P)
/// %unsigned 16 val
/// ###
/// * Register window for the trace buffer
/// ###
/// %% 16 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 16b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_FigoReg16
#define h_FigoReg16 (){}
#define RA_FigoReg16_entry 0x0000
#define BA_FigoReg16_entry_val 0x0000
#define B16FigoReg16_entry_val 0x0000
#define LSb32FigoReg16_entry_val 0
#define LSb16FigoReg16_entry_val 0
#define bFigoReg16_entry_val 16
#define MSK32FigoReg16_entry_val 0x0000FFFF
///////////////////////////////////////////////////////////
typedef struct SIE_FigoReg16 {
///////////////////////////////////////////////////////////
#define GET32FigoReg16_entry_val(r32) _BFGET_(r32,15, 0)
#define SET32FigoReg16_entry_val(r32,v) _BFSET_(r32,15, 0,v)
#define GET16FigoReg16_entry_val(r16) _BFGET_(r16,15, 0)
#define SET16FigoReg16_entry_val(r16,v) _BFSET_(r16,15, 0,v)
#define w32FigoReg16_entry {\
UNSG32 uentry_val : 16;\
UNSG32 RSVDx0_b16 : 16;\
}
union { UNSG32 u32FigoReg16_entry;
struct w32FigoReg16_entry;
};
///////////////////////////////////////////////////////////
} SIE_FigoReg16;
typedef union T32FigoReg16_entry
{ UNSG32 u32;
struct w32FigoReg16_entry;
} T32FigoReg16_entry;
///////////////////////////////////////////////////////////
typedef union TFigoReg16_entry
{ UNSG32 u32[1];
struct {
struct w32FigoReg16_entry;
};
} TFigoReg16_entry;
///////////////////////////////////////////////////////////
SIGN32 FigoReg16_drvrd(SIE_FigoReg16 *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 FigoReg16_drvwr(SIE_FigoReg16 *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void FigoReg16_reset(SIE_FigoReg16 *p);
SIGN32 FigoReg16_cmp (SIE_FigoReg16 *p, SIE_FigoReg16 *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define FigoReg16_check(p,pie,pfx,hLOG) FigoReg16_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define FigoReg16_print(p, pfx,hLOG) FigoReg16_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: FigoReg16
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE FigoRF16Reg biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 entry (RW)
/// %unsigned 16 val 0x0
/// ###
/// * Register window for the RF16 access in debug mode
/// ###
/// %% 16 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 16b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_FigoRF16Reg
#define h_FigoRF16Reg (){}
#define RA_FigoRF16Reg_entry 0x0000
#define BA_FigoRF16Reg_entry_val 0x0000
#define B16FigoRF16Reg_entry_val 0x0000
#define LSb32FigoRF16Reg_entry_val 0
#define LSb16FigoRF16Reg_entry_val 0
#define bFigoRF16Reg_entry_val 16
#define MSK32FigoRF16Reg_entry_val 0x0000FFFF
///////////////////////////////////////////////////////////
typedef struct SIE_FigoRF16Reg {
///////////////////////////////////////////////////////////
#define GET32FigoRF16Reg_entry_val(r32) _BFGET_(r32,15, 0)
#define SET32FigoRF16Reg_entry_val(r32,v) _BFSET_(r32,15, 0,v)
#define GET16FigoRF16Reg_entry_val(r16) _BFGET_(r16,15, 0)
#define SET16FigoRF16Reg_entry_val(r16,v) _BFSET_(r16,15, 0,v)
#define w32FigoRF16Reg_entry {\
UNSG32 uentry_val : 16;\
UNSG32 RSVDx0_b16 : 16;\
}
union { UNSG32 u32FigoRF16Reg_entry;
struct w32FigoRF16Reg_entry;
};
///////////////////////////////////////////////////////////
} SIE_FigoRF16Reg;
typedef union T32FigoRF16Reg_entry
{ UNSG32 u32;
struct w32FigoRF16Reg_entry;
} T32FigoRF16Reg_entry;
///////////////////////////////////////////////////////////
typedef union TFigoRF16Reg_entry
{ UNSG32 u32[1];
struct {
struct w32FigoRF16Reg_entry;
};
} TFigoRF16Reg_entry;
///////////////////////////////////////////////////////////
SIGN32 FigoRF16Reg_drvrd(SIE_FigoRF16Reg *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 FigoRF16Reg_drvwr(SIE_FigoRF16Reg *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void FigoRF16Reg_reset(SIE_FigoRF16Reg *p);
SIGN32 FigoRF16Reg_cmp (SIE_FigoRF16Reg *p, SIE_FigoRF16Reg *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define FigoRF16Reg_check(p,pie,pfx,hLOG) FigoRF16Reg_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define FigoRF16Reg_print(p, pfx,hLOG) FigoRF16Reg_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: FigoRF16Reg
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE FigoMem16 (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 entry (RW-)
/// %unsigned 16 val
/// ###
/// * Register window for the Jump Stack access in debug mode
/// ###
/// %% 16 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 16b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_FigoMem16
#define h_FigoMem16 (){}
#define RA_FigoMem16_entry 0x0000
#define BA_FigoMem16_entry_val 0x0000
#define B16FigoMem16_entry_val 0x0000
#define LSb32FigoMem16_entry_val 0
#define LSb16FigoMem16_entry_val 0
#define bFigoMem16_entry_val 16
#define MSK32FigoMem16_entry_val 0x0000FFFF
///////////////////////////////////////////////////////////
typedef struct SIE_FigoMem16 {
///////////////////////////////////////////////////////////
#define GET32FigoMem16_entry_val(r32) _BFGET_(r32,15, 0)
#define SET32FigoMem16_entry_val(r32,v) _BFSET_(r32,15, 0,v)
#define GET16FigoMem16_entry_val(r16) _BFGET_(r16,15, 0)
#define SET16FigoMem16_entry_val(r16,v) _BFSET_(r16,15, 0,v)
#define w32FigoMem16_entry {\
UNSG32 uentry_val : 16;\
UNSG32 RSVDx0_b16 : 16;\
}
union { UNSG32 u32FigoMem16_entry;
struct w32FigoMem16_entry;
};
///////////////////////////////////////////////////////////
} SIE_FigoMem16;
typedef union T32FigoMem16_entry
{ UNSG32 u32;
struct w32FigoMem16_entry;
} T32FigoMem16_entry;
///////////////////////////////////////////////////////////
typedef union TFigoMem16_entry
{ UNSG32 u32[1];
struct {
struct w32FigoMem16_entry;
};
} TFigoMem16_entry;
///////////////////////////////////////////////////////////
SIGN32 FigoMem16_drvrd(SIE_FigoMem16 *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 FigoMem16_drvwr(SIE_FigoMem16 *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void FigoMem16_reset(SIE_FigoMem16 *p);
SIGN32 FigoMem16_cmp (SIE_FigoMem16 *p, SIE_FigoMem16 *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define FigoMem16_check(p,pie,pfx,hLOG) FigoMem16_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define FigoMem16_print(p, pfx,hLOG) FigoMem16_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: FigoMem16
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE FigoMem32 (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 entry (RW-)
/// %unsigned 32 val
/// ###
/// * Register window for the Jump Stack access in debug mode
/// ###
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 32b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_FigoMem32
#define h_FigoMem32 (){}
#define RA_FigoMem32_entry 0x0000
#define BA_FigoMem32_entry_val 0x0000
#define B16FigoMem32_entry_val 0x0000
#define LSb32FigoMem32_entry_val 0
#define LSb16FigoMem32_entry_val 0
#define bFigoMem32_entry_val 32
#define MSK32FigoMem32_entry_val 0xFFFFFFFF
///////////////////////////////////////////////////////////
typedef struct SIE_FigoMem32 {
///////////////////////////////////////////////////////////
#define GET32FigoMem32_entry_val(r32) _BFGET_(r32,31, 0)
#define SET32FigoMem32_entry_val(r32,v) _BFSET_(r32,31, 0,v)
#define w32FigoMem32_entry {\
UNSG32 uentry_val : 32;\
}
union { UNSG32 u32FigoMem32_entry;
struct w32FigoMem32_entry;
};
///////////////////////////////////////////////////////////
} SIE_FigoMem32;
typedef union T32FigoMem32_entry
{ UNSG32 u32;
struct w32FigoMem32_entry;
} T32FigoMem32_entry;
///////////////////////////////////////////////////////////
typedef union TFigoMem32_entry
{ UNSG32 u32[1];
struct {
struct w32FigoMem32_entry;
};
} TFigoMem32_entry;
///////////////////////////////////////////////////////////
SIGN32 FigoMem32_drvrd(SIE_FigoMem32 *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 FigoMem32_drvwr(SIE_FigoMem32 *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void FigoMem32_reset(SIE_FigoMem32 *p);
SIGN32 FigoMem32_cmp (SIE_FigoMem32 *p, SIE_FigoMem32 *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define FigoMem32_check(p,pie,pfx,hLOG) FigoMem32_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define FigoMem32_print(p, pfx,hLOG) FigoMem32_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: FigoMem32
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE FigoDebug biu (4,4)
/// ###
/// * FIGO debug mode related registers and signals
/// ###
/// # # ----------------------------------------------------------
/// @ 0x00000 figoDbg (RW-)
/// ###
/// * Puts FIGO in debug mode
/// ###
/// %unsigned 1 on 0x0
/// %% 31 # Stuffing bits...
/// @ 0x00004 figoDbgMode (P)
/// ###
/// * Determines FIGO's behavior in debug mode
/// ###
/// %unsigned 2 mode 0x0
/// : stop 0x0
/// ###
/// * FIGO flushes and stalls its pipeline
/// ###
/// : step 0x1
/// ###
/// * FIGO executes one instruction at a time. Repeat to execute the next instruction.
/// ###
/// : slow_run 0x2
/// ###
/// * FIGO inserts sufficient bubbles between each instruction to bypass all forwarding logic
/// ###
/// : fast_run 0x3
/// ###
/// * FIGO resumes full-speed operation. Feature has been disabled due to timing impact.
/// ###
/// %% 30 # Stuffing bits...
/// @ 0x00008 figoDbgModeStatus (R-)
/// ###
/// * Similar to figoDbgMode, but read-only. Shows the actual status of FIGO, as it may be different from what is set in figoDbgMode.
/// ###
/// %unsigned 2 mode 0x0
/// : stop 0x0
/// : step 0x1
/// : slow_run 0x2
/// : fast_run 0x3
/// ###
/// * Same enumerations
/// ###
/// %% 30 # Stuffing bits...
/// @ 0x0000C figoDbgTrigInMask (P)
/// ###
/// * 4 mask bits for trigger-in signals from up to 4 other FIGOs hitting breakpoints.
/// ###
/// %unsigned 4 on 0xF
/// ###
/// * On by default, all trigger-ins are blocked.
/// ###
/// %% 28 # Stuffing bits...
/// @ 0x00010 (W-)
/// # # Stuffing bytes...
/// %% 384
/// @ 0x00040 figoDbgRF16 (RW-)
/// ###
/// * BIU access to RF16
/// ###
/// # 0x00040 rf16
/// $FigoMem16 rf16 MEM [16]
/// ###
/// * Register mapping
/// * x0 = {d0,c0,b0,a0} = MEM[3:0]
/// * x1 = {d1,c1,b1,a1} = MEM[7:4]
/// * x2 = {d2,c2,b2,a2} = MEM[11:8]
/// * x3 = {d3,c3,b3,a3} = MEM[15:12]
/// ###
/// @ 0x00080 figoDbgRB (RW-)
/// ###
/// * BIU access to RB register
/// ###
/// %unsigned 16 rb 0x0
/// %% 16 # Stuffing bits...
/// @ 0x00084 figoDbgPCAtFetch (R-)
/// ###
/// * BIU access to PC register at Fetch stage
/// ###
/// %unsigned 16 pc 0x0
/// %% 16 # Stuffing bits...
/// @ 0x00088 (W-)
/// # # Stuffing bytes...
/// %% 64
/// @ 0x00090 figoDbgJumpStack (RW-)
/// ###
/// * BIU access to jump stack
/// ###
/// # 0x00090 stack
/// $FigoMem32 stack MEM [4]
/// ###
/// * Register mapping
/// * MEM[0] = {branchPos[0],jumpDest[0]}
/// * MEM[1] = {branchPos[1],jumpDest[1]}
/// * MEM[2] = {branchPos[2],jumpDest[2]}
/// * MEM[3] = {branchPos[3],jumpDest[3]}
/// ###
/// @ 0x000A0 figoDbgStackDepth (R-)
/// ###
/// * BIU access to number of current jump stack entries
/// ###
/// %unsigned 5 depth 0x0
/// ###
/// * Values are one-hot. Following actual stack pointer implementation inside FIGO so that no additional logic is required.
/// * 00001 = 0 valid entries (stack empty)
/// * 00010 = 1 valid entry
/// * 00100 = 2 valid entries
/// * 01000 = 3 valid entries
/// * 10000 = 4 valid entries (stack full)
/// ###
/// %% 27 # Stuffing bits...
/// @ 0x000A4 figoDbgFlags (R-)
/// ###
/// * BIU access to flags register
/// ###
/// %unsigned 16 flags 0x0
/// ###
/// * flags[15:0] = {LSj, Lj, GSj, Gj, LS, L, GS, G, 1, 0, Cj, Zj, V, N, C, Z}
/// ###
/// %% 16 # Stuffing bits...
/// @ 0x000A8 figoDbgBreak (WOC-)
/// ###
/// * Bit that indicates FIGO entered debug mode due to breakpoint
/// ###
/// %unsigned 1 up 0x0
/// ###
/// * Write one to clear
/// ###
/// %% 31 # Stuffing bits...
/// @ 0x000AC figoDbgBkBitWen (P)
/// ###
/// * Enable bit to allow breakpoint bits to be written into ITCM by BIU.
/// ###
/// %unsigned 1 en 0x0
/// ###
/// * Additional enable bit to safeguard against accidentally writing ones into the breakpoint fields of the ITCM.
/// * Register window for the trace buffer
/// ###
/// %% 31 # Stuffing bits...
/// @ 0x000B0 (W-)
/// # # Stuffing bytes...
/// %% 128
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 192B, bits: 128b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_FigoDebug
#define h_FigoDebug (){}
#define RA_FigoDebug_figoDbg 0x0000
#define BA_FigoDebug_figoDbg_on 0x0000
#define B16FigoDebug_figoDbg_on 0x0000
#define LSb32FigoDebug_figoDbg_on 0
#define LSb16FigoDebug_figoDbg_on 0
#define bFigoDebug_figoDbg_on 1
#define MSK32FigoDebug_figoDbg_on 0x00000001
///////////////////////////////////////////////////////////
#define RA_FigoDebug_figoDbgMode 0x0004
#define BA_FigoDebug_figoDbgMode_mode 0x0004
#define B16FigoDebug_figoDbgMode_mode 0x0004
#define LSb32FigoDebug_figoDbgMode_mode 0
#define LSb16FigoDebug_figoDbgMode_mode 0
#define bFigoDebug_figoDbgMode_mode 2
#define MSK32FigoDebug_figoDbgMode_mode 0x00000003
#define FigoDebug_figoDbgMode_mode_stop 0x0
#define FigoDebug_figoDbgMode_mode_step 0x1
#define FigoDebug_figoDbgMode_mode_slow_run 0x2
#define FigoDebug_figoDbgMode_mode_fast_run 0x3
///////////////////////////////////////////////////////////
#define RA_FigoDebug_figoDbgModeStatus 0x0008
#define BA_FigoDebug_figoDbgModeStatus_mode 0x0008
#define B16FigoDebug_figoDbgModeStatus_mode 0x0008
#define LSb32FigoDebug_figoDbgModeStatus_mode 0
#define LSb16FigoDebug_figoDbgModeStatus_mode 0
#define bFigoDebug_figoDbgModeStatus_mode 2
#define MSK32FigoDebug_figoDbgModeStatus_mode 0x00000003
#define FigoDebug_figoDbgModeStatus_mode_stop 0x0
#define FigoDebug_figoDbgModeStatus_mode_step 0x1
#define FigoDebug_figoDbgModeStatus_mode_slow_run 0x2
#define FigoDebug_figoDbgModeStatus_mode_fast_run 0x3
///////////////////////////////////////////////////////////
#define RA_FigoDebug_figoDbgTrigInMask 0x000C
#define BA_FigoDebug_figoDbgTrigInMask_on 0x000C
#define B16FigoDebug_figoDbgTrigInMask_on 0x000C
#define LSb32FigoDebug_figoDbgTrigInMask_on 0
#define LSb16FigoDebug_figoDbgTrigInMask_on 0
#define bFigoDebug_figoDbgTrigInMask_on 4
#define MSK32FigoDebug_figoDbgTrigInMask_on 0x0000000F
///////////////////////////////////////////////////////////
#define RA_FigoDebug_figoDbgRF16 0x0040
#define RA_FigoDebug_rf16 0x0040
///////////////////////////////////////////////////////////
#define RA_FigoDebug_figoDbgRB 0x0080
#define BA_FigoDebug_figoDbgRB_rb 0x0080
#define B16FigoDebug_figoDbgRB_rb 0x0080
#define LSb32FigoDebug_figoDbgRB_rb 0
#define LSb16FigoDebug_figoDbgRB_rb 0
#define bFigoDebug_figoDbgRB_rb 16
#define MSK32FigoDebug_figoDbgRB_rb 0x0000FFFF
///////////////////////////////////////////////////////////
#define RA_FigoDebug_figoDbgPCAtFetch 0x0084
#define BA_FigoDebug_figoDbgPCAtFetch_pc 0x0084
#define B16FigoDebug_figoDbgPCAtFetch_pc 0x0084
#define LSb32FigoDebug_figoDbgPCAtFetch_pc 0
#define LSb16FigoDebug_figoDbgPCAtFetch_pc 0
#define bFigoDebug_figoDbgPCAtFetch_pc 16
#define MSK32FigoDebug_figoDbgPCAtFetch_pc 0x0000FFFF
///////////////////////////////////////////////////////////
#define RA_FigoDebug_figoDbgJumpStack 0x0090
#define RA_FigoDebug_stack 0x0090
///////////////////////////////////////////////////////////
#define RA_FigoDebug_figoDbgStackDepth 0x00A0
#define BA_FigoDebug_figoDbgStackDepth_depth 0x00A0
#define B16FigoDebug_figoDbgStackDepth_depth 0x00A0
#define LSb32FigoDebug_figoDbgStackDepth_depth 0
#define LSb16FigoDebug_figoDbgStackDepth_depth 0
#define bFigoDebug_figoDbgStackDepth_depth 5
#define MSK32FigoDebug_figoDbgStackDepth_depth 0x0000001F
///////////////////////////////////////////////////////////
#define RA_FigoDebug_figoDbgFlags 0x00A4
#define BA_FigoDebug_figoDbgFlags_flags 0x00A4
#define B16FigoDebug_figoDbgFlags_flags 0x00A4
#define LSb32FigoDebug_figoDbgFlags_flags 0
#define LSb16FigoDebug_figoDbgFlags_flags 0
#define bFigoDebug_figoDbgFlags_flags 16
#define MSK32FigoDebug_figoDbgFlags_flags 0x0000FFFF
///////////////////////////////////////////////////////////
#define RA_FigoDebug_figoDbgBreak 0x00A8
#define BA_FigoDebug_figoDbgBreak_up 0x00A8
#define B16FigoDebug_figoDbgBreak_up 0x00A8
#define LSb32FigoDebug_figoDbgBreak_up 0
#define LSb16FigoDebug_figoDbgBreak_up 0
#define bFigoDebug_figoDbgBreak_up 1
#define MSK32FigoDebug_figoDbgBreak_up 0x00000001
///////////////////////////////////////////////////////////
#define RA_FigoDebug_figoDbgBkBitWen 0x00AC
#define BA_FigoDebug_figoDbgBkBitWen_en 0x00AC
#define B16FigoDebug_figoDbgBkBitWen_en 0x00AC
#define LSb32FigoDebug_figoDbgBkBitWen_en 0
#define LSb16FigoDebug_figoDbgBkBitWen_en 0
#define bFigoDebug_figoDbgBkBitWen_en 1
#define MSK32FigoDebug_figoDbgBkBitWen_en 0x00000001
///////////////////////////////////////////////////////////
typedef struct SIE_FigoDebug {
///////////////////////////////////////////////////////////
#define GET32FigoDebug_figoDbg_on(r32) _BFGET_(r32, 0, 0)
#define SET32FigoDebug_figoDbg_on(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16FigoDebug_figoDbg_on(r16) _BFGET_(r16, 0, 0)
#define SET16FigoDebug_figoDbg_on(r16,v) _BFSET_(r16, 0, 0,v)
#define w32FigoDebug_figoDbg {\
UNSG32 ufigoDbg_on : 1;\
UNSG32 RSVDx0_b1 : 31;\
}
union { UNSG32 u32FigoDebug_figoDbg;
struct w32FigoDebug_figoDbg;
};
///////////////////////////////////////////////////////////
#define GET32FigoDebug_figoDbgMode_mode(r32) _BFGET_(r32, 1, 0)
#define SET32FigoDebug_figoDbgMode_mode(r32,v) _BFSET_(r32, 1, 0,v)
#define GET16FigoDebug_figoDbgMode_mode(r16) _BFGET_(r16, 1, 0)
#define SET16FigoDebug_figoDbgMode_mode(r16,v) _BFSET_(r16, 1, 0,v)
#define w32FigoDebug_figoDbgMode {\
UNSG32 ufigoDbgMode_mode : 2;\
UNSG32 RSVDx4_b2 : 30;\
}
union { UNSG32 u32FigoDebug_figoDbgMode;
struct w32FigoDebug_figoDbgMode;
};
///////////////////////////////////////////////////////////
#define GET32FigoDebug_figoDbgModeStatus_mode(r32) _BFGET_(r32, 1, 0)
#define SET32FigoDebug_figoDbgModeStatus_mode(r32,v) _BFSET_(r32, 1, 0,v)
#define GET16FigoDebug_figoDbgModeStatus_mode(r16) _BFGET_(r16, 1, 0)
#define SET16FigoDebug_figoDbgModeStatus_mode(r16,v) _BFSET_(r16, 1, 0,v)
#define w32FigoDebug_figoDbgModeStatus {\
UNSG32 ufigoDbgModeStatus_mode : 2;\
UNSG32 RSVDx8_b2 : 30;\
}
union { UNSG32 u32FigoDebug_figoDbgModeStatus;
struct w32FigoDebug_figoDbgModeStatus;
};
///////////////////////////////////////////////////////////
#define GET32FigoDebug_figoDbgTrigInMask_on(r32) _BFGET_(r32, 3, 0)
#define SET32FigoDebug_figoDbgTrigInMask_on(r32,v) _BFSET_(r32, 3, 0,v)
#define GET16FigoDebug_figoDbgTrigInMask_on(r16) _BFGET_(r16, 3, 0)
#define SET16FigoDebug_figoDbgTrigInMask_on(r16,v) _BFSET_(r16, 3, 0,v)
#define w32FigoDebug_figoDbgTrigInMask {\
UNSG32 ufigoDbgTrigInMask_on : 4;\
UNSG32 RSVDxC_b4 : 28;\
}
union { UNSG32 u32FigoDebug_figoDbgTrigInMask;
struct w32FigoDebug_figoDbgTrigInMask;
};
///////////////////////////////////////////////////////////
UNSG8 RSVDx10 [48];
///////////////////////////////////////////////////////////
SIE_FigoMem16 ie_rf16[16];
///////////////////////////////////////////////////////////
#define GET32FigoDebug_figoDbgRB_rb(r32) _BFGET_(r32,15, 0)
#define SET32FigoDebug_figoDbgRB_rb(r32,v) _BFSET_(r32,15, 0,v)
#define GET16FigoDebug_figoDbgRB_rb(r16) _BFGET_(r16,15, 0)
#define SET16FigoDebug_figoDbgRB_rb(r16,v) _BFSET_(r16,15, 0,v)
#define w32FigoDebug_figoDbgRB {\
UNSG32 ufigoDbgRB_rb : 16;\
UNSG32 RSVDx80_b16 : 16;\
}
union { UNSG32 u32FigoDebug_figoDbgRB;
struct w32FigoDebug_figoDbgRB;
};
///////////////////////////////////////////////////////////
#define GET32FigoDebug_figoDbgPCAtFetch_pc(r32) _BFGET_(r32,15, 0)
#define SET32FigoDebug_figoDbgPCAtFetch_pc(r32,v) _BFSET_(r32,15, 0,v)
#define GET16FigoDebug_figoDbgPCAtFetch_pc(r16) _BFGET_(r16,15, 0)
#define SET16FigoDebug_figoDbgPCAtFetch_pc(r16,v) _BFSET_(r16,15, 0,v)
#define w32FigoDebug_figoDbgPCAtFetch {\
UNSG32 ufigoDbgPCAtFetch_pc : 16;\
UNSG32 RSVDx84_b16 : 16;\
}
union { UNSG32 u32FigoDebug_figoDbgPCAtFetch;
struct w32FigoDebug_figoDbgPCAtFetch;
};
///////////////////////////////////////////////////////////
UNSG8 RSVDx88 [8];
///////////////////////////////////////////////////////////
SIE_FigoMem32 ie_stack[4];
///////////////////////////////////////////////////////////
#define GET32FigoDebug_figoDbgStackDepth_depth(r32) _BFGET_(r32, 4, 0)
#define SET32FigoDebug_figoDbgStackDepth_depth(r32,v) _BFSET_(r32, 4, 0,v)
#define GET16FigoDebug_figoDbgStackDepth_depth(r16) _BFGET_(r16, 4, 0)
#define SET16FigoDebug_figoDbgStackDepth_depth(r16,v) _BFSET_(r16, 4, 0,v)
#define w32FigoDebug_figoDbgStackDepth {\
UNSG32 ufigoDbgStackDepth_depth : 5;\
UNSG32 RSVDxA0_b5 : 27;\
}
union { UNSG32 u32FigoDebug_figoDbgStackDepth;
struct w32FigoDebug_figoDbgStackDepth;
};
///////////////////////////////////////////////////////////
#define GET32FigoDebug_figoDbgFlags_flags(r32) _BFGET_(r32,15, 0)
#define SET32FigoDebug_figoDbgFlags_flags(r32,v) _BFSET_(r32,15, 0,v)
#define GET16FigoDebug_figoDbgFlags_flags(r16) _BFGET_(r16,15, 0)
#define SET16FigoDebug_figoDbgFlags_flags(r16,v) _BFSET_(r16,15, 0,v)
#define w32FigoDebug_figoDbgFlags {\
UNSG32 ufigoDbgFlags_flags : 16;\
UNSG32 RSVDxA4_b16 : 16;\
}
union { UNSG32 u32FigoDebug_figoDbgFlags;
struct w32FigoDebug_figoDbgFlags;
};
///////////////////////////////////////////////////////////
#define GET32FigoDebug_figoDbgBreak_up(r32) _BFGET_(r32, 0, 0)
#define SET32FigoDebug_figoDbgBreak_up(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16FigoDebug_figoDbgBreak_up(r16) _BFGET_(r16, 0, 0)
#define SET16FigoDebug_figoDbgBreak_up(r16,v) _BFSET_(r16, 0, 0,v)
#define w32FigoDebug_figoDbgBreak {\
UNSG32 ufigoDbgBreak_up : 1;\
UNSG32 RSVDxA8_b1 : 31;\
}
union { UNSG32 u32FigoDebug_figoDbgBreak;
struct w32FigoDebug_figoDbgBreak;
};
///////////////////////////////////////////////////////////
#define GET32FigoDebug_figoDbgBkBitWen_en(r32) _BFGET_(r32, 0, 0)
#define SET32FigoDebug_figoDbgBkBitWen_en(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16FigoDebug_figoDbgBkBitWen_en(r16) _BFGET_(r16, 0, 0)
#define SET16FigoDebug_figoDbgBkBitWen_en(r16,v) _BFSET_(r16, 0, 0,v)
#define w32FigoDebug_figoDbgBkBitWen {\
UNSG32 ufigoDbgBkBitWen_en : 1;\
UNSG32 RSVDxAC_b1 : 31;\
}
union { UNSG32 u32FigoDebug_figoDbgBkBitWen;
struct w32FigoDebug_figoDbgBkBitWen;
};
///////////////////////////////////////////////////////////
UNSG8 RSVDxB0 [16];
///////////////////////////////////////////////////////////
} SIE_FigoDebug;
typedef union T32FigoDebug_figoDbg
{ UNSG32 u32;
struct w32FigoDebug_figoDbg;
} T32FigoDebug_figoDbg;
typedef union T32FigoDebug_figoDbgMode
{ UNSG32 u32;
struct w32FigoDebug_figoDbgMode;
} T32FigoDebug_figoDbgMode;
typedef union T32FigoDebug_figoDbgModeStatus
{ UNSG32 u32;
struct w32FigoDebug_figoDbgModeStatus;
} T32FigoDebug_figoDbgModeStatus;
typedef union T32FigoDebug_figoDbgTrigInMask
{ UNSG32 u32;
struct w32FigoDebug_figoDbgTrigInMask;
} T32FigoDebug_figoDbgTrigInMask;
typedef union T32FigoDebug_figoDbgRB
{ UNSG32 u32;
struct w32FigoDebug_figoDbgRB;
} T32FigoDebug_figoDbgRB;
typedef union T32FigoDebug_figoDbgPCAtFetch
{ UNSG32 u32;
struct w32FigoDebug_figoDbgPCAtFetch;
} T32FigoDebug_figoDbgPCAtFetch;
typedef union T32FigoDebug_figoDbgStackDepth
{ UNSG32 u32;
struct w32FigoDebug_figoDbgStackDepth;
} T32FigoDebug_figoDbgStackDepth;
typedef union T32FigoDebug_figoDbgFlags
{ UNSG32 u32;
struct w32FigoDebug_figoDbgFlags;
} T32FigoDebug_figoDbgFlags;
typedef union T32FigoDebug_figoDbgBreak
{ UNSG32 u32;
struct w32FigoDebug_figoDbgBreak;
} T32FigoDebug_figoDbgBreak;
typedef union T32FigoDebug_figoDbgBkBitWen
{ UNSG32 u32;
struct w32FigoDebug_figoDbgBkBitWen;
} T32FigoDebug_figoDbgBkBitWen;
///////////////////////////////////////////////////////////
typedef union TFigoDebug_figoDbg
{ UNSG32 u32[1];
struct {
struct w32FigoDebug_figoDbg;
};
} TFigoDebug_figoDbg;
typedef union TFigoDebug_figoDbgMode
{ UNSG32 u32[1];
struct {
struct w32FigoDebug_figoDbgMode;
};
} TFigoDebug_figoDbgMode;
typedef union TFigoDebug_figoDbgModeStatus
{ UNSG32 u32[1];
struct {
struct w32FigoDebug_figoDbgModeStatus;
};
} TFigoDebug_figoDbgModeStatus;
typedef union TFigoDebug_figoDbgTrigInMask
{ UNSG32 u32[1];
struct {
struct w32FigoDebug_figoDbgTrigInMask;
};
} TFigoDebug_figoDbgTrigInMask;
typedef union TFigoDebug_figoDbgRB
{ UNSG32 u32[1];
struct {
struct w32FigoDebug_figoDbgRB;
};
} TFigoDebug_figoDbgRB;
typedef union TFigoDebug_figoDbgPCAtFetch
{ UNSG32 u32[1];
struct {
struct w32FigoDebug_figoDbgPCAtFetch;
};
} TFigoDebug_figoDbgPCAtFetch;
typedef union TFigoDebug_figoDbgStackDepth
{ UNSG32 u32[1];
struct {
struct w32FigoDebug_figoDbgStackDepth;
};
} TFigoDebug_figoDbgStackDepth;
typedef union TFigoDebug_figoDbgFlags
{ UNSG32 u32[1];
struct {
struct w32FigoDebug_figoDbgFlags;
};
} TFigoDebug_figoDbgFlags;
typedef union TFigoDebug_figoDbgBreak
{ UNSG32 u32[1];
struct {
struct w32FigoDebug_figoDbgBreak;
};
} TFigoDebug_figoDbgBreak;
typedef union TFigoDebug_figoDbgBkBitWen
{ UNSG32 u32[1];
struct {
struct w32FigoDebug_figoDbgBkBitWen;
};
} TFigoDebug_figoDbgBkBitWen;
///////////////////////////////////////////////////////////
SIGN32 FigoDebug_drvrd(SIE_FigoDebug *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 FigoDebug_drvwr(SIE_FigoDebug *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void FigoDebug_reset(SIE_FigoDebug *p);
SIGN32 FigoDebug_cmp (SIE_FigoDebug *p, SIE_FigoDebug *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define FigoDebug_check(p,pie,pfx,hLOG) FigoDebug_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define FigoDebug_print(p, pfx,hLOG) FigoDebug_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: FigoDebug
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE FigoReg biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 figoCtrl (P)
/// %unsigned 16 pcStartLoc 0x0
/// %unsigned 1 tBufMode 0x0
/// : freeRun 0x0
/// ###
/// * Trace buffer operating as ring buffer
/// ###
/// : fifoMode 0x1
/// ###
/// * Trace buffer operating as FIFO; FIGO stalls when full
/// ###
/// %% 15 # Stuffing bits...
/// @ 0x00004 figoID (R-)
/// ###
/// * Processor ID, unique for each FIGO
/// ###
/// %unsigned 16 ID 0x0
/// ###
/// * Processor ID. Specified in FIGO baseline subsystem configuration file.
/// ###
/// %unsigned 16 REV 0x0
/// ###
/// * Revision ID. Hard-coded in FIGO core RTL.
/// ###
/// @ 0x00008 figoMaxAdr (P)
/// ###
/// * Max address for ITCM and DTCM, used to detect addr out-of-bound
/// ###
/// %unsigned 16 itcm 0xFFFF
/// %unsigned 16 dtcm 0xFFFF
/// @ 0x0000C figoFlags (WOC-)
/// ###
/// * Exception flags; FIGO halts when unmasked exception happens; write one to clear
/// ###
/// %unsigned 1 itcmAdrOOB 0x0
/// ###
/// * ITCM address > figoMaxAdr.itcm
/// ###
/// %unsigned 1 dtcmAdrOOB 0x0
/// ###
/// * DTCM address > figoMaxAdr.dtcm
/// ###
/// %unsigned 1 divideBy0 0x0
/// ###
/// * MDU divide by 0 detected
/// ###
/// %unsigned 1 traceBufFull 0x0
/// ###
/// * Trace buffer is full. Only valid when figoCtrl.tBufMode = fifoMode
/// ###
/// %unsigned 1 illegalIns 0x0
/// ###
/// * Illegal instruction detected at ID stage
/// ###
/// %unsigned 1 ALU64Overflow 0x0
/// ###
/// * One of the ALU64 extensions asserted a command push overflow.
/// ###
/// %unsigned 1 JTInvdPush 0x0
/// ###
/// * Detected a jump table push when it's already full.
/// ###
/// %% 25 # Stuffing bits...
/// @ 0x00010 figoFlagsMask (P)
/// ###
/// * Mask bits for FIGO exception flags. Does not block exception flags from asserting, instead, it prevents FIGO from halting when the masked exception occurs.
/// ###
/// %unsigned 1 itcmAdrOOBMask 0x0
/// %unsigned 1 dtcmAdrOOBMask 0x0
/// %unsigned 1 divideBy0Mask 0x0
/// %unsigned 1 traceBufFullMask 0x0
/// %unsigned 1 illegalInsMask 0x0
/// %unsigned 1 ALU64OverflowMask 0x0
/// %unsigned 1 JTInvdPushMask 0x0
/// %% 25 # Stuffing bits...
/// @ 0x00014 figoLastPC (R-)
/// ###
/// * Last PC value before exception occurred
/// ###
/// %unsigned 16 val 0x0
/// %% 16 # Stuffing bits...
/// @ 0x00018 figoCurrPC (R-)
/// # 0x00018 pc
/// $FigoReg16 pc MEM
/// ###
/// * Current PC value @ ID stage
/// ###
/// @ 0x0001C figoTraceBuf (RW-)
/// # 0x0001C tbuf
/// $FigoTraceBuf tbuf MEM
/// ###
/// * Register window for the trace buffer
/// ###
/// @ 0x00020 figoIntr (W-)
/// ###
/// * Special register for FIGO to raise interrupt to CPU via vPro semaphore; write to raise interrupt; no status
/// ###
/// %unsigned 1 up 0x0
/// %% 31 # Stuffing bits...
/// @ 0x00024 figoIntrLvl (WOC-)
/// ###
/// * Special register to record that interrupt has occurred; to be used as level interrupt; cleared by writing 1
/// ###
/// %unsigned 1 st 0x0
/// %% 31 # Stuffing bits...
/// @ 0x00028 figoRstn (RW-)
/// ###
/// * Special register to stop / reset FIGO execution; write 1 to release FIGO, write 0 to reset FIGO (sticky)
/// ###
/// %unsigned 1 up 0x0
/// %% 31 # Stuffing bits...
/// @ 0x0002C figoCnt (RW-)
/// ###
/// * Controls the FIGO counter behavior
/// ###
/// %unsigned 1 en 0x0
/// %% 31 # Stuffing bits...
/// @ 0x00030 figoCntClr (W-)
/// ###
/// * Clear FIGO counters; write 1 to clear specific counters
/// ###
/// %unsigned 1 run
/// %unsigned 1 stall
/// %% 30 # Stuffing bits...
/// @ 0x00034 figoRun (R-)
/// %unsigned 32 Cnt 0x0
/// @ 0x00038 figoStall (R-)
/// %unsigned 32 Cnt 0x0
/// @ 0x0003C (W-)
/// # # Stuffing bytes...
/// %% 15904
/// @ 0x00800 ALU64 (P)
/// # 0x00800 alu64
/// $ALU64 alu64 REG
/// ###
/// * **DONT_EXPAND_BELOW**
/// * ALU64 extensions access via AHB
/// ###
/// @ 0x01800 FIGODBG (P)
/// # 0x01800 debug
/// $FigoDebug debug REG
/// ###
/// * **DONT_EXPAND_BELOW**
/// * Debug mode related registers
/// ###
/// @ 0x018C0 (W-)
/// # # Stuffing bytes...
/// %% 14848
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 8192B, bits: 523b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_FigoReg
#define h_FigoReg (){}
#define RA_FigoReg_figoCtrl 0x0000
#define BA_FigoReg_figoCtrl_pcStartLoc 0x0000
#define B16FigoReg_figoCtrl_pcStartLoc 0x0000
#define LSb32FigoReg_figoCtrl_pcStartLoc 0
#define LSb16FigoReg_figoCtrl_pcStartLoc 0
#define bFigoReg_figoCtrl_pcStartLoc 16
#define MSK32FigoReg_figoCtrl_pcStartLoc 0x0000FFFF
#define BA_FigoReg_figoCtrl_tBufMode 0x0002
#define B16FigoReg_figoCtrl_tBufMode 0x0002
#define LSb32FigoReg_figoCtrl_tBufMode 16
#define LSb16FigoReg_figoCtrl_tBufMode 0
#define bFigoReg_figoCtrl_tBufMode 1
#define MSK32FigoReg_figoCtrl_tBufMode 0x00010000
#define FigoReg_figoCtrl_tBufMode_freeRun 0x0
#define FigoReg_figoCtrl_tBufMode_fifoMode 0x1
///////////////////////////////////////////////////////////
#define RA_FigoReg_figoID 0x0004
#define BA_FigoReg_figoID_ID 0x0004
#define B16FigoReg_figoID_ID 0x0004
#define LSb32FigoReg_figoID_ID 0
#define LSb16FigoReg_figoID_ID 0
#define bFigoReg_figoID_ID 16
#define MSK32FigoReg_figoID_ID 0x0000FFFF
#define BA_FigoReg_figoID_REV 0x0006
#define B16FigoReg_figoID_REV 0x0006
#define LSb32FigoReg_figoID_REV 16
#define LSb16FigoReg_figoID_REV 0
#define bFigoReg_figoID_REV 16
#define MSK32FigoReg_figoID_REV 0xFFFF0000
///////////////////////////////////////////////////////////
#define RA_FigoReg_figoMaxAdr 0x0008
#define BA_FigoReg_figoMaxAdr_itcm 0x0008
#define B16FigoReg_figoMaxAdr_itcm 0x0008
#define LSb32FigoReg_figoMaxAdr_itcm 0
#define LSb16FigoReg_figoMaxAdr_itcm 0
#define bFigoReg_figoMaxAdr_itcm 16
#define MSK32FigoReg_figoMaxAdr_itcm 0x0000FFFF
#define BA_FigoReg_figoMaxAdr_dtcm 0x000A
#define B16FigoReg_figoMaxAdr_dtcm 0x000A
#define LSb32FigoReg_figoMaxAdr_dtcm 16
#define LSb16FigoReg_figoMaxAdr_dtcm 0
#define bFigoReg_figoMaxAdr_dtcm 16
#define MSK32FigoReg_figoMaxAdr_dtcm 0xFFFF0000
///////////////////////////////////////////////////////////
#define RA_FigoReg_figoFlags 0x000C
#define BA_FigoReg_figoFlags_itcmAdrOOB 0x000C
#define B16FigoReg_figoFlags_itcmAdrOOB 0x000C
#define LSb32FigoReg_figoFlags_itcmAdrOOB 0
#define LSb16FigoReg_figoFlags_itcmAdrOOB 0
#define bFigoReg_figoFlags_itcmAdrOOB 1
#define MSK32FigoReg_figoFlags_itcmAdrOOB 0x00000001
#define BA_FigoReg_figoFlags_dtcmAdrOOB 0x000C
#define B16FigoReg_figoFlags_dtcmAdrOOB 0x000C
#define LSb32FigoReg_figoFlags_dtcmAdrOOB 1
#define LSb16FigoReg_figoFlags_dtcmAdrOOB 1
#define bFigoReg_figoFlags_dtcmAdrOOB 1
#define MSK32FigoReg_figoFlags_dtcmAdrOOB 0x00000002
#define BA_FigoReg_figoFlags_divideBy0 0x000C
#define B16FigoReg_figoFlags_divideBy0 0x000C
#define LSb32FigoReg_figoFlags_divideBy0 2
#define LSb16FigoReg_figoFlags_divideBy0 2
#define bFigoReg_figoFlags_divideBy0 1
#define MSK32FigoReg_figoFlags_divideBy0 0x00000004
#define BA_FigoReg_figoFlags_traceBufFull 0x000C
#define B16FigoReg_figoFlags_traceBufFull 0x000C
#define LSb32FigoReg_figoFlags_traceBufFull 3
#define LSb16FigoReg_figoFlags_traceBufFull 3
#define bFigoReg_figoFlags_traceBufFull 1
#define MSK32FigoReg_figoFlags_traceBufFull 0x00000008
#define BA_FigoReg_figoFlags_illegalIns 0x000C
#define B16FigoReg_figoFlags_illegalIns 0x000C
#define LSb32FigoReg_figoFlags_illegalIns 4
#define LSb16FigoReg_figoFlags_illegalIns 4
#define bFigoReg_figoFlags_illegalIns 1
#define MSK32FigoReg_figoFlags_illegalIns 0x00000010
#define BA_FigoReg_figoFlags_ALU64Overflow 0x000C
#define B16FigoReg_figoFlags_ALU64Overflow 0x000C
#define LSb32FigoReg_figoFlags_ALU64Overflow 5
#define LSb16FigoReg_figoFlags_ALU64Overflow 5
#define bFigoReg_figoFlags_ALU64Overflow 1
#define MSK32FigoReg_figoFlags_ALU64Overflow 0x00000020
#define BA_FigoReg_figoFlags_JTInvdPush 0x000C
#define B16FigoReg_figoFlags_JTInvdPush 0x000C
#define LSb32FigoReg_figoFlags_JTInvdPush 6
#define LSb16FigoReg_figoFlags_JTInvdPush 6
#define bFigoReg_figoFlags_JTInvdPush 1
#define MSK32FigoReg_figoFlags_JTInvdPush 0x00000040
///////////////////////////////////////////////////////////
#define RA_FigoReg_figoFlagsMask 0x0010
#define BA_FigoReg_figoFlagsMask_itcmAdrOOBMask 0x0010
#define B16FigoReg_figoFlagsMask_itcmAdrOOBMask 0x0010
#define LSb32FigoReg_figoFlagsMask_itcmAdrOOBMask 0
#define LSb16FigoReg_figoFlagsMask_itcmAdrOOBMask 0
#define bFigoReg_figoFlagsMask_itcmAdrOOBMask 1
#define MSK32FigoReg_figoFlagsMask_itcmAdrOOBMask 0x00000001
#define BA_FigoReg_figoFlagsMask_dtcmAdrOOBMask 0x0010
#define B16FigoReg_figoFlagsMask_dtcmAdrOOBMask 0x0010
#define LSb32FigoReg_figoFlagsMask_dtcmAdrOOBMask 1
#define LSb16FigoReg_figoFlagsMask_dtcmAdrOOBMask 1
#define bFigoReg_figoFlagsMask_dtcmAdrOOBMask 1
#define MSK32FigoReg_figoFlagsMask_dtcmAdrOOBMask 0x00000002
#define BA_FigoReg_figoFlagsMask_divideBy0Mask 0x0010
#define B16FigoReg_figoFlagsMask_divideBy0Mask 0x0010
#define LSb32FigoReg_figoFlagsMask_divideBy0Mask 2
#define LSb16FigoReg_figoFlagsMask_divideBy0Mask 2
#define bFigoReg_figoFlagsMask_divideBy0Mask 1
#define MSK32FigoReg_figoFlagsMask_divideBy0Mask 0x00000004
#define BA_FigoReg_figoFlagsMask_traceBufFullMask 0x0010
#define B16FigoReg_figoFlagsMask_traceBufFullMask 0x0010
#define LSb32FigoReg_figoFlagsMask_traceBufFullMask 3
#define LSb16FigoReg_figoFlagsMask_traceBufFullMask 3
#define bFigoReg_figoFlagsMask_traceBufFullMask 1
#define MSK32FigoReg_figoFlagsMask_traceBufFullMask 0x00000008
#define BA_FigoReg_figoFlagsMask_illegalInsMask 0x0010
#define B16FigoReg_figoFlagsMask_illegalInsMask 0x0010
#define LSb32FigoReg_figoFlagsMask_illegalInsMask 4
#define LSb16FigoReg_figoFlagsMask_illegalInsMask 4
#define bFigoReg_figoFlagsMask_illegalInsMask 1
#define MSK32FigoReg_figoFlagsMask_illegalInsMask 0x00000010
#define BA_FigoReg_figoFlagsMask_ALU64OverflowMask 0x0010
#define B16FigoReg_figoFlagsMask_ALU64OverflowMask 0x0010
#define LSb32FigoReg_figoFlagsMask_ALU64OverflowMask 5
#define LSb16FigoReg_figoFlagsMask_ALU64OverflowMask 5
#define bFigoReg_figoFlagsMask_ALU64OverflowMask 1
#define MSK32FigoReg_figoFlagsMask_ALU64OverflowMask 0x00000020
#define BA_FigoReg_figoFlagsMask_JTInvdPushMask 0x0010
#define B16FigoReg_figoFlagsMask_JTInvdPushMask 0x0010
#define LSb32FigoReg_figoFlagsMask_JTInvdPushMask 6
#define LSb16FigoReg_figoFlagsMask_JTInvdPushMask 6
#define bFigoReg_figoFlagsMask_JTInvdPushMask 1
#define MSK32FigoReg_figoFlagsMask_JTInvdPushMask 0x00000040
///////////////////////////////////////////////////////////
#define RA_FigoReg_figoLastPC 0x0014
#define BA_FigoReg_figoLastPC_val 0x0014
#define B16FigoReg_figoLastPC_val 0x0014
#define LSb32FigoReg_figoLastPC_val 0
#define LSb16FigoReg_figoLastPC_val 0
#define bFigoReg_figoLastPC_val 16
#define MSK32FigoReg_figoLastPC_val 0x0000FFFF
///////////////////////////////////////////////////////////
#define RA_FigoReg_figoCurrPC 0x0018
#define RA_FigoReg_pc 0x0018
///////////////////////////////////////////////////////////
#define RA_FigoReg_figoTraceBuf 0x001C
#define RA_FigoReg_tbuf 0x001C
///////////////////////////////////////////////////////////
#define RA_FigoReg_figoIntr 0x0020
#define BA_FigoReg_figoIntr_up 0x0020
#define B16FigoReg_figoIntr_up 0x0020
#define LSb32FigoReg_figoIntr_up 0
#define LSb16FigoReg_figoIntr_up 0
#define bFigoReg_figoIntr_up 1
#define MSK32FigoReg_figoIntr_up 0x00000001
///////////////////////////////////////////////////////////
#define RA_FigoReg_figoIntrLvl 0x0024
#define BA_FigoReg_figoIntrLvl_st 0x0024
#define B16FigoReg_figoIntrLvl_st 0x0024
#define LSb32FigoReg_figoIntrLvl_st 0
#define LSb16FigoReg_figoIntrLvl_st 0
#define bFigoReg_figoIntrLvl_st 1
#define MSK32FigoReg_figoIntrLvl_st 0x00000001
///////////////////////////////////////////////////////////
#define RA_FigoReg_figoRstn 0x0028
#define BA_FigoReg_figoRstn_up 0x0028
#define B16FigoReg_figoRstn_up 0x0028
#define LSb32FigoReg_figoRstn_up 0
#define LSb16FigoReg_figoRstn_up 0
#define bFigoReg_figoRstn_up 1
#define MSK32FigoReg_figoRstn_up 0x00000001
///////////////////////////////////////////////////////////
#define RA_FigoReg_figoCnt 0x002C
#define BA_FigoReg_figoCnt_en 0x002C
#define B16FigoReg_figoCnt_en 0x002C
#define LSb32FigoReg_figoCnt_en 0
#define LSb16FigoReg_figoCnt_en 0
#define bFigoReg_figoCnt_en 1
#define MSK32FigoReg_figoCnt_en 0x00000001
///////////////////////////////////////////////////////////
#define RA_FigoReg_figoCntClr 0x0030
#define BA_FigoReg_figoCntClr_run 0x0030
#define B16FigoReg_figoCntClr_run 0x0030
#define LSb32FigoReg_figoCntClr_run 0
#define LSb16FigoReg_figoCntClr_run 0
#define bFigoReg_figoCntClr_run 1
#define MSK32FigoReg_figoCntClr_run 0x00000001
#define BA_FigoReg_figoCntClr_stall 0x0030
#define B16FigoReg_figoCntClr_stall 0x0030
#define LSb32FigoReg_figoCntClr_stall 1
#define LSb16FigoReg_figoCntClr_stall 1
#define bFigoReg_figoCntClr_stall 1
#define MSK32FigoReg_figoCntClr_stall 0x00000002
///////////////////////////////////////////////////////////
#define RA_FigoReg_figoRun 0x0034
#define BA_FigoReg_figoRun_Cnt 0x0034
#define B16FigoReg_figoRun_Cnt 0x0034
#define LSb32FigoReg_figoRun_Cnt 0
#define LSb16FigoReg_figoRun_Cnt 0
#define bFigoReg_figoRun_Cnt 32
#define MSK32FigoReg_figoRun_Cnt 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_FigoReg_figoStall 0x0038
#define BA_FigoReg_figoStall_Cnt 0x0038
#define B16FigoReg_figoStall_Cnt 0x0038
#define LSb32FigoReg_figoStall_Cnt 0
#define LSb16FigoReg_figoStall_Cnt 0
#define bFigoReg_figoStall_Cnt 32
#define MSK32FigoReg_figoStall_Cnt 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_FigoReg_ALU64 0x0800
#define RA_FigoReg_alu64 0x0800
///////////////////////////////////////////////////////////
#define RA_FigoReg_FIGODBG 0x1800
#define RA_FigoReg_debug 0x1800
///////////////////////////////////////////////////////////
typedef struct SIE_FigoReg {
///////////////////////////////////////////////////////////
#define GET32FigoReg_figoCtrl_pcStartLoc(r32) _BFGET_(r32,15, 0)
#define SET32FigoReg_figoCtrl_pcStartLoc(r32,v) _BFSET_(r32,15, 0,v)
#define GET16FigoReg_figoCtrl_pcStartLoc(r16) _BFGET_(r16,15, 0)
#define SET16FigoReg_figoCtrl_pcStartLoc(r16,v) _BFSET_(r16,15, 0,v)
#define GET32FigoReg_figoCtrl_tBufMode(r32) _BFGET_(r32,16,16)
#define SET32FigoReg_figoCtrl_tBufMode(r32,v) _BFSET_(r32,16,16,v)
#define GET16FigoReg_figoCtrl_tBufMode(r16) _BFGET_(r16, 0, 0)
#define SET16FigoReg_figoCtrl_tBufMode(r16,v) _BFSET_(r16, 0, 0,v)
#define w32FigoReg_figoCtrl {\
UNSG32 ufigoCtrl_pcStartLoc : 16;\
UNSG32 ufigoCtrl_tBufMode : 1;\
UNSG32 RSVDx0_b17 : 15;\
}
union { UNSG32 u32FigoReg_figoCtrl;
struct w32FigoReg_figoCtrl;
};
///////////////////////////////////////////////////////////
#define GET32FigoReg_figoID_ID(r32) _BFGET_(r32,15, 0)
#define SET32FigoReg_figoID_ID(r32,v) _BFSET_(r32,15, 0,v)
#define GET16FigoReg_figoID_ID(r16) _BFGET_(r16,15, 0)
#define SET16FigoReg_figoID_ID(r16,v) _BFSET_(r16,15, 0,v)
#define GET32FigoReg_figoID_REV(r32) _BFGET_(r32,31,16)
#define SET32FigoReg_figoID_REV(r32,v) _BFSET_(r32,31,16,v)
#define GET16FigoReg_figoID_REV(r16) _BFGET_(r16,15, 0)
#define SET16FigoReg_figoID_REV(r16,v) _BFSET_(r16,15, 0,v)
#define w32FigoReg_figoID {\
UNSG32 ufigoID_ID : 16;\
UNSG32 ufigoID_REV : 16;\
}
union { UNSG32 u32FigoReg_figoID;
struct w32FigoReg_figoID;
};
///////////////////////////////////////////////////////////
#define GET32FigoReg_figoMaxAdr_itcm(r32) _BFGET_(r32,15, 0)
#define SET32FigoReg_figoMaxAdr_itcm(r32,v) _BFSET_(r32,15, 0,v)
#define GET16FigoReg_figoMaxAdr_itcm(r16) _BFGET_(r16,15, 0)
#define SET16FigoReg_figoMaxAdr_itcm(r16,v) _BFSET_(r16,15, 0,v)
#define GET32FigoReg_figoMaxAdr_dtcm(r32) _BFGET_(r32,31,16)
#define SET32FigoReg_figoMaxAdr_dtcm(r32,v) _BFSET_(r32,31,16,v)
#define GET16FigoReg_figoMaxAdr_dtcm(r16) _BFGET_(r16,15, 0)
#define SET16FigoReg_figoMaxAdr_dtcm(r16,v) _BFSET_(r16,15, 0,v)
#define w32FigoReg_figoMaxAdr {\
UNSG32 ufigoMaxAdr_itcm : 16;\
UNSG32 ufigoMaxAdr_dtcm : 16;\
}
union { UNSG32 u32FigoReg_figoMaxAdr;
struct w32FigoReg_figoMaxAdr;
};
///////////////////////////////////////////////////////////
#define GET32FigoReg_figoFlags_itcmAdrOOB(r32) _BFGET_(r32, 0, 0)
#define SET32FigoReg_figoFlags_itcmAdrOOB(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16FigoReg_figoFlags_itcmAdrOOB(r16) _BFGET_(r16, 0, 0)
#define SET16FigoReg_figoFlags_itcmAdrOOB(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32FigoReg_figoFlags_dtcmAdrOOB(r32) _BFGET_(r32, 1, 1)
#define SET32FigoReg_figoFlags_dtcmAdrOOB(r32,v) _BFSET_(r32, 1, 1,v)
#define GET16FigoReg_figoFlags_dtcmAdrOOB(r16) _BFGET_(r16, 1, 1)
#define SET16FigoReg_figoFlags_dtcmAdrOOB(r16,v) _BFSET_(r16, 1, 1,v)
#define GET32FigoReg_figoFlags_divideBy0(r32) _BFGET_(r32, 2, 2)
#define SET32FigoReg_figoFlags_divideBy0(r32,v) _BFSET_(r32, 2, 2,v)
#define GET16FigoReg_figoFlags_divideBy0(r16) _BFGET_(r16, 2, 2)
#define SET16FigoReg_figoFlags_divideBy0(r16,v) _BFSET_(r16, 2, 2,v)
#define GET32FigoReg_figoFlags_traceBufFull(r32) _BFGET_(r32, 3, 3)
#define SET32FigoReg_figoFlags_traceBufFull(r32,v) _BFSET_(r32, 3, 3,v)
#define GET16FigoReg_figoFlags_traceBufFull(r16) _BFGET_(r16, 3, 3)
#define SET16FigoReg_figoFlags_traceBufFull(r16,v) _BFSET_(r16, 3, 3,v)
#define GET32FigoReg_figoFlags_illegalIns(r32) _BFGET_(r32, 4, 4)
#define SET32FigoReg_figoFlags_illegalIns(r32,v) _BFSET_(r32, 4, 4,v)
#define GET16FigoReg_figoFlags_illegalIns(r16) _BFGET_(r16, 4, 4)
#define SET16FigoReg_figoFlags_illegalIns(r16,v) _BFSET_(r16, 4, 4,v)
#define GET32FigoReg_figoFlags_ALU64Overflow(r32) _BFGET_(r32, 5, 5)
#define SET32FigoReg_figoFlags_ALU64Overflow(r32,v) _BFSET_(r32, 5, 5,v)
#define GET16FigoReg_figoFlags_ALU64Overflow(r16) _BFGET_(r16, 5, 5)
#define SET16FigoReg_figoFlags_ALU64Overflow(r16,v) _BFSET_(r16, 5, 5,v)
#define GET32FigoReg_figoFlags_JTInvdPush(r32) _BFGET_(r32, 6, 6)
#define SET32FigoReg_figoFlags_JTInvdPush(r32,v) _BFSET_(r32, 6, 6,v)
#define GET16FigoReg_figoFlags_JTInvdPush(r16) _BFGET_(r16, 6, 6)
#define SET16FigoReg_figoFlags_JTInvdPush(r16,v) _BFSET_(r16, 6, 6,v)
#define w32FigoReg_figoFlags {\
UNSG32 ufigoFlags_itcmAdrOOB : 1;\
UNSG32 ufigoFlags_dtcmAdrOOB : 1;\
UNSG32 ufigoFlags_divideBy0 : 1;\
UNSG32 ufigoFlags_traceBufFull : 1;\
UNSG32 ufigoFlags_illegalIns : 1;\
UNSG32 ufigoFlags_ALU64Overflow : 1;\
UNSG32 ufigoFlags_JTInvdPush : 1;\
UNSG32 RSVDxC_b7 : 25;\
}
union { UNSG32 u32FigoReg_figoFlags;
struct w32FigoReg_figoFlags;
};
///////////////////////////////////////////////////////////
#define GET32FigoReg_figoFlagsMask_itcmAdrOOBMask(r32) _BFGET_(r32, 0, 0)
#define SET32FigoReg_figoFlagsMask_itcmAdrOOBMask(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16FigoReg_figoFlagsMask_itcmAdrOOBMask(r16) _BFGET_(r16, 0, 0)
#define SET16FigoReg_figoFlagsMask_itcmAdrOOBMask(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32FigoReg_figoFlagsMask_dtcmAdrOOBMask(r32) _BFGET_(r32, 1, 1)
#define SET32FigoReg_figoFlagsMask_dtcmAdrOOBMask(r32,v) _BFSET_(r32, 1, 1,v)
#define GET16FigoReg_figoFlagsMask_dtcmAdrOOBMask(r16) _BFGET_(r16, 1, 1)
#define SET16FigoReg_figoFlagsMask_dtcmAdrOOBMask(r16,v) _BFSET_(r16, 1, 1,v)
#define GET32FigoReg_figoFlagsMask_divideBy0Mask(r32) _BFGET_(r32, 2, 2)
#define SET32FigoReg_figoFlagsMask_divideBy0Mask(r32,v) _BFSET_(r32, 2, 2,v)
#define GET16FigoReg_figoFlagsMask_divideBy0Mask(r16) _BFGET_(r16, 2, 2)
#define SET16FigoReg_figoFlagsMask_divideBy0Mask(r16,v) _BFSET_(r16, 2, 2,v)
#define GET32FigoReg_figoFlagsMask_traceBufFullMask(r32) _BFGET_(r32, 3, 3)
#define SET32FigoReg_figoFlagsMask_traceBufFullMask(r32,v) _BFSET_(r32, 3, 3,v)
#define GET16FigoReg_figoFlagsMask_traceBufFullMask(r16) _BFGET_(r16, 3, 3)
#define SET16FigoReg_figoFlagsMask_traceBufFullMask(r16,v) _BFSET_(r16, 3, 3,v)
#define GET32FigoReg_figoFlagsMask_illegalInsMask(r32) _BFGET_(r32, 4, 4)
#define SET32FigoReg_figoFlagsMask_illegalInsMask(r32,v) _BFSET_(r32, 4, 4,v)
#define GET16FigoReg_figoFlagsMask_illegalInsMask(r16) _BFGET_(r16, 4, 4)
#define SET16FigoReg_figoFlagsMask_illegalInsMask(r16,v) _BFSET_(r16, 4, 4,v)
#define GET32FigoReg_figoFlagsMask_ALU64OverflowMask(r32) _BFGET_(r32, 5, 5)
#define SET32FigoReg_figoFlagsMask_ALU64OverflowMask(r32,v) _BFSET_(r32, 5, 5,v)
#define GET16FigoReg_figoFlagsMask_ALU64OverflowMask(r16) _BFGET_(r16, 5, 5)
#define SET16FigoReg_figoFlagsMask_ALU64OverflowMask(r16,v) _BFSET_(r16, 5, 5,v)
#define GET32FigoReg_figoFlagsMask_JTInvdPushMask(r32) _BFGET_(r32, 6, 6)
#define SET32FigoReg_figoFlagsMask_JTInvdPushMask(r32,v) _BFSET_(r32, 6, 6,v)
#define GET16FigoReg_figoFlagsMask_JTInvdPushMask(r16) _BFGET_(r16, 6, 6)
#define SET16FigoReg_figoFlagsMask_JTInvdPushMask(r16,v) _BFSET_(r16, 6, 6,v)
#define w32FigoReg_figoFlagsMask {\
UNSG32 ufigoFlagsMask_itcmAdrOOBMask : 1;\
UNSG32 ufigoFlagsMask_dtcmAdrOOBMask : 1;\
UNSG32 ufigoFlagsMask_divideBy0Mask : 1;\
UNSG32 ufigoFlagsMask_traceBufFullMask : 1;\
UNSG32 ufigoFlagsMask_illegalInsMask : 1;\
UNSG32 ufigoFlagsMask_ALU64OverflowMask : 1;\
UNSG32 ufigoFlagsMask_JTInvdPushMask : 1;\
UNSG32 RSVDx10_b7 : 25;\
}
union { UNSG32 u32FigoReg_figoFlagsMask;
struct w32FigoReg_figoFlagsMask;
};
///////////////////////////////////////////////////////////
#define GET32FigoReg_figoLastPC_val(r32) _BFGET_(r32,15, 0)
#define SET32FigoReg_figoLastPC_val(r32,v) _BFSET_(r32,15, 0,v)
#define GET16FigoReg_figoLastPC_val(r16) _BFGET_(r16,15, 0)
#define SET16FigoReg_figoLastPC_val(r16,v) _BFSET_(r16,15, 0,v)
#define w32FigoReg_figoLastPC {\
UNSG32 ufigoLastPC_val : 16;\
UNSG32 RSVDx14_b16 : 16;\
}
union { UNSG32 u32FigoReg_figoLastPC;
struct w32FigoReg_figoLastPC;
};
///////////////////////////////////////////////////////////
SIE_FigoReg16 ie_pc;
///////////////////////////////////////////////////////////
SIE_FigoTraceBuf ie_tbuf;
///////////////////////////////////////////////////////////
#define GET32FigoReg_figoIntr_up(r32) _BFGET_(r32, 0, 0)
#define SET32FigoReg_figoIntr_up(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16FigoReg_figoIntr_up(r16) _BFGET_(r16, 0, 0)
#define SET16FigoReg_figoIntr_up(r16,v) _BFSET_(r16, 0, 0,v)
#define w32FigoReg_figoIntr {\
UNSG32 ufigoIntr_up : 1;\
UNSG32 RSVDx20_b1 : 31;\
}
union { UNSG32 u32FigoReg_figoIntr;
struct w32FigoReg_figoIntr;
};
///////////////////////////////////////////////////////////
#define GET32FigoReg_figoIntrLvl_st(r32) _BFGET_(r32, 0, 0)
#define SET32FigoReg_figoIntrLvl_st(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16FigoReg_figoIntrLvl_st(r16) _BFGET_(r16, 0, 0)
#define SET16FigoReg_figoIntrLvl_st(r16,v) _BFSET_(r16, 0, 0,v)
#define w32FigoReg_figoIntrLvl {\
UNSG32 ufigoIntrLvl_st : 1;\
UNSG32 RSVDx24_b1 : 31;\
}
union { UNSG32 u32FigoReg_figoIntrLvl;
struct w32FigoReg_figoIntrLvl;
};
///////////////////////////////////////////////////////////
#define GET32FigoReg_figoRstn_up(r32) _BFGET_(r32, 0, 0)
#define SET32FigoReg_figoRstn_up(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16FigoReg_figoRstn_up(r16) _BFGET_(r16, 0, 0)
#define SET16FigoReg_figoRstn_up(r16,v) _BFSET_(r16, 0, 0,v)
#define w32FigoReg_figoRstn {\
UNSG32 ufigoRstn_up : 1;\
UNSG32 RSVDx28_b1 : 31;\
}
union { UNSG32 u32FigoReg_figoRstn;
struct w32FigoReg_figoRstn;
};
///////////////////////////////////////////////////////////
#define GET32FigoReg_figoCnt_en(r32) _BFGET_(r32, 0, 0)
#define SET32FigoReg_figoCnt_en(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16FigoReg_figoCnt_en(r16) _BFGET_(r16, 0, 0)
#define SET16FigoReg_figoCnt_en(r16,v) _BFSET_(r16, 0, 0,v)
#define w32FigoReg_figoCnt {\
UNSG32 ufigoCnt_en : 1;\
UNSG32 RSVDx2C_b1 : 31;\
}
union { UNSG32 u32FigoReg_figoCnt;
struct w32FigoReg_figoCnt;
};
///////////////////////////////////////////////////////////
#define GET32FigoReg_figoCntClr_run(r32) _BFGET_(r32, 0, 0)
#define SET32FigoReg_figoCntClr_run(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16FigoReg_figoCntClr_run(r16) _BFGET_(r16, 0, 0)
#define SET16FigoReg_figoCntClr_run(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32FigoReg_figoCntClr_stall(r32) _BFGET_(r32, 1, 1)
#define SET32FigoReg_figoCntClr_stall(r32,v) _BFSET_(r32, 1, 1,v)
#define GET16FigoReg_figoCntClr_stall(r16) _BFGET_(r16, 1, 1)
#define SET16FigoReg_figoCntClr_stall(r16,v) _BFSET_(r16, 1, 1,v)
#define w32FigoReg_figoCntClr {\
UNSG32 ufigoCntClr_run : 1;\
UNSG32 ufigoCntClr_stall : 1;\
UNSG32 RSVDx30_b2 : 30;\
}
union { UNSG32 u32FigoReg_figoCntClr;
struct w32FigoReg_figoCntClr;
};
///////////////////////////////////////////////////////////
#define GET32FigoReg_figoRun_Cnt(r32) _BFGET_(r32,31, 0)
#define SET32FigoReg_figoRun_Cnt(r32,v) _BFSET_(r32,31, 0,v)
#define w32FigoReg_figoRun {\
UNSG32 ufigoRun_Cnt : 32;\
}
union { UNSG32 u32FigoReg_figoRun;
struct w32FigoReg_figoRun;
};
///////////////////////////////////////////////////////////
#define GET32FigoReg_figoStall_Cnt(r32) _BFGET_(r32,31, 0)
#define SET32FigoReg_figoStall_Cnt(r32,v) _BFSET_(r32,31, 0,v)
#define w32FigoReg_figoStall {\
UNSG32 ufigoStall_Cnt : 32;\
}
union { UNSG32 u32FigoReg_figoStall;
struct w32FigoReg_figoStall;
};
///////////////////////////////////////////////////////////
UNSG8 RSVDx3C [1988];
///////////////////////////////////////////////////////////
SIE_ALU64 ie_alu64;
///////////////////////////////////////////////////////////
SIE_FigoDebug ie_debug;
///////////////////////////////////////////////////////////
UNSG8 RSVDx18C0 [1856];
///////////////////////////////////////////////////////////
} SIE_FigoReg;
typedef union T32FigoReg_figoCtrl
{ UNSG32 u32;
struct w32FigoReg_figoCtrl;
} T32FigoReg_figoCtrl;
typedef union T32FigoReg_figoID
{ UNSG32 u32;
struct w32FigoReg_figoID;
} T32FigoReg_figoID;
typedef union T32FigoReg_figoMaxAdr
{ UNSG32 u32;
struct w32FigoReg_figoMaxAdr;
} T32FigoReg_figoMaxAdr;
typedef union T32FigoReg_figoFlags
{ UNSG32 u32;
struct w32FigoReg_figoFlags;
} T32FigoReg_figoFlags;
typedef union T32FigoReg_figoFlagsMask
{ UNSG32 u32;
struct w32FigoReg_figoFlagsMask;
} T32FigoReg_figoFlagsMask;
typedef union T32FigoReg_figoLastPC
{ UNSG32 u32;
struct w32FigoReg_figoLastPC;
} T32FigoReg_figoLastPC;
typedef union T32FigoReg_figoIntr
{ UNSG32 u32;
struct w32FigoReg_figoIntr;
} T32FigoReg_figoIntr;
typedef union T32FigoReg_figoIntrLvl
{ UNSG32 u32;
struct w32FigoReg_figoIntrLvl;
} T32FigoReg_figoIntrLvl;
typedef union T32FigoReg_figoRstn
{ UNSG32 u32;
struct w32FigoReg_figoRstn;
} T32FigoReg_figoRstn;
typedef union T32FigoReg_figoCnt
{ UNSG32 u32;
struct w32FigoReg_figoCnt;
} T32FigoReg_figoCnt;
typedef union T32FigoReg_figoCntClr
{ UNSG32 u32;
struct w32FigoReg_figoCntClr;
} T32FigoReg_figoCntClr;
typedef union T32FigoReg_figoRun
{ UNSG32 u32;
struct w32FigoReg_figoRun;
} T32FigoReg_figoRun;
typedef union T32FigoReg_figoStall
{ UNSG32 u32;
struct w32FigoReg_figoStall;
} T32FigoReg_figoStall;
///////////////////////////////////////////////////////////
typedef union TFigoReg_figoCtrl
{ UNSG32 u32[1];
struct {
struct w32FigoReg_figoCtrl;
};
} TFigoReg_figoCtrl;
typedef union TFigoReg_figoID
{ UNSG32 u32[1];
struct {
struct w32FigoReg_figoID;
};
} TFigoReg_figoID;
typedef union TFigoReg_figoMaxAdr
{ UNSG32 u32[1];
struct {
struct w32FigoReg_figoMaxAdr;
};
} TFigoReg_figoMaxAdr;
typedef union TFigoReg_figoFlags
{ UNSG32 u32[1];
struct {
struct w32FigoReg_figoFlags;
};
} TFigoReg_figoFlags;
typedef union TFigoReg_figoFlagsMask
{ UNSG32 u32[1];
struct {
struct w32FigoReg_figoFlagsMask;
};
} TFigoReg_figoFlagsMask;
typedef union TFigoReg_figoLastPC
{ UNSG32 u32[1];
struct {
struct w32FigoReg_figoLastPC;
};
} TFigoReg_figoLastPC;
typedef union TFigoReg_figoIntr
{ UNSG32 u32[1];
struct {
struct w32FigoReg_figoIntr;
};
} TFigoReg_figoIntr;
typedef union TFigoReg_figoIntrLvl
{ UNSG32 u32[1];
struct {
struct w32FigoReg_figoIntrLvl;
};
} TFigoReg_figoIntrLvl;
typedef union TFigoReg_figoRstn
{ UNSG32 u32[1];
struct {
struct w32FigoReg_figoRstn;
};
} TFigoReg_figoRstn;
typedef union TFigoReg_figoCnt
{ UNSG32 u32[1];
struct {
struct w32FigoReg_figoCnt;
};
} TFigoReg_figoCnt;
typedef union TFigoReg_figoCntClr
{ UNSG32 u32[1];
struct {
struct w32FigoReg_figoCntClr;
};
} TFigoReg_figoCntClr;
typedef union TFigoReg_figoRun
{ UNSG32 u32[1];
struct {
struct w32FigoReg_figoRun;
};
} TFigoReg_figoRun;
typedef union TFigoReg_figoStall
{ UNSG32 u32[1];
struct {
struct w32FigoReg_figoStall;
};
} TFigoReg_figoStall;
///////////////////////////////////////////////////////////
SIGN32 FigoReg_drvrd(SIE_FigoReg *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 FigoReg_drvwr(SIE_FigoReg *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void FigoReg_reset(SIE_FigoReg *p);
SIGN32 FigoReg_cmp (SIE_FigoReg *p, SIE_FigoReg *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define FigoReg_check(p,pie,pfx,hLOG) FigoReg_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define FigoReg_print(p, pfx,hLOG) FigoReg_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: FigoReg
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE FigoInst (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 (RW)
/// ###
/// * Instruction opcode, 24-bit word
/// ###
/// %unsigned 24 opcode 0x0
/// %% 8 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 24b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_FigoInst
#define h_FigoInst (){}
#define BA_FigoInst_opcode 0x0000
#define B16FigoInst_opcode 0x0000
#define LSb32FigoInst_opcode 0
#define LSb16FigoInst_opcode 0
#define bFigoInst_opcode 24
#define MSK32FigoInst_opcode 0x00FFFFFF
///////////////////////////////////////////////////////////
typedef struct SIE_FigoInst {
///////////////////////////////////////////////////////////
#define GET32FigoInst_opcode(r32) _BFGET_(r32,23, 0)
#define SET32FigoInst_opcode(r32,v) _BFSET_(r32,23, 0,v)
UNSG32 u_opcode : 24;
UNSG32 RSVDx0_b24 : 8;
///////////////////////////////////////////////////////////
} SIE_FigoInst;
///////////////////////////////////////////////////////////
SIGN32 FigoInst_drvrd(SIE_FigoInst *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 FigoInst_drvwr(SIE_FigoInst *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void FigoInst_reset(SIE_FigoInst *p);
SIGN32 FigoInst_cmp (SIE_FigoInst *p, SIE_FigoInst *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define FigoInst_check(p,pie,pfx,hLOG) FigoInst_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define FigoInst_print(p, pfx,hLOG) FigoInst_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: FigoInst
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE ITCM (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 figoItcm (P)
/// # 0x00000 inst
/// $FigoInst inst REG [2048]
/// ###
/// * Instruction memory, 8K word each maximum
/// ###
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 8192B, bits: 49152b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_ITCM
#define h_ITCM (){}
#define RA_ITCM_figoItcm 0x0000
#define RA_ITCM_inst 0x0000
///////////////////////////////////////////////////////////
typedef struct SIE_ITCM {
///////////////////////////////////////////////////////////
SIE_FigoInst ie_inst[2048];
///////////////////////////////////////////////////////////
} SIE_ITCM;
///////////////////////////////////////////////////////////
SIGN32 ITCM_drvrd(SIE_ITCM *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 ITCM_drvwr(SIE_ITCM *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void ITCM_reset(SIE_ITCM *p);
SIGN32 ITCM_cmp (SIE_ITCM *p, SIE_ITCM *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define ITCM_check(p,pie,pfx,hLOG) ITCM_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define ITCM_print(p, pfx,hLOG) ITCM_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: ITCM
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE FigoData (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 (RW)
/// ###
/// * 32-bit data
/// ###
/// %unsigned 32 data_0i
/// %unsigned 32 data_1i
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 8B, bits: 64b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_FigoData
#define h_FigoData (){}
#define BA_FigoData_data_0i 0x0000
#define B16FigoData_data_0i 0x0000
#define LSb32FigoData_data_0i 0
#define LSb16FigoData_data_0i 0
#define bFigoData_data_0i 32
#define MSK32FigoData_data_0i 0xFFFFFFFF
#define BA_FigoData_data_1i 0x0004
#define B16FigoData_data_1i 0x0004
#define LSb32FigoData_data_1i 0
#define LSb16FigoData_data_1i 0
#define bFigoData_data_1i 32
#define MSK32FigoData_data_1i 0xFFFFFFFF
///////////////////////////////////////////////////////////
typedef struct SIE_FigoData {
///////////////////////////////////////////////////////////
#define GET32FigoData_data_0i(r32) _BFGET_(r32,31, 0)
#define SET32FigoData_data_0i(r32,v) _BFSET_(r32,31, 0,v)
UNSG32 u_data_0i : 32;
///////////////////////////////////////////////////////////
#define GET32FigoData_data_1i(r32) _BFGET_(r32,31, 0)
#define SET32FigoData_data_1i(r32,v) _BFSET_(r32,31, 0,v)
UNSG32 u_data_1i : 32;
///////////////////////////////////////////////////////////
} SIE_FigoData;
///////////////////////////////////////////////////////////
SIGN32 FigoData_drvrd(SIE_FigoData *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 FigoData_drvwr(SIE_FigoData *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void FigoData_reset(SIE_FigoData *p);
SIGN32 FigoData_cmp (SIE_FigoData *p, SIE_FigoData *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define FigoData_check(p,pie,pfx,hLOG) FigoData_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define FigoData_print(p, pfx,hLOG) FigoData_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: FigoData
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE FigoSys biu (4,4)
/// ###
/// * FigoSys registers
/// ###
/// # # ----------------------------------------------------------
/// @ 0x00000 HBO0 (P)
/// # 0x00000 hbo0
/// $HBO hbo0 REG
/// ###
/// * **DONT_EXPAND_BELOW** HBO IP
/// ###
/// @ 0x00700 HBO1 (P)
/// # 0x00700 hbo1
/// $HBO hbo1 REG
/// ###
/// * **DONT_EXPAND_BELOW** HBO IP
/// ###
/// @ 0x00E00 (W-)
/// # # Stuffing bytes...
/// %% 4096
/// @ 0x01000 FIGO0 (P)
/// # 0x01000 figo0
/// $FigoReg figo0 REG
/// @ 0x03000 FIGO1 (P)
/// # 0x03000 figo1
/// $FigoReg figo1 REG
/// @ 0x05000 DS (P)
/// # 0x05000 ds
/// $DataStreamer ds REG
/// @ 0x05024 (W-)
/// # # Stuffing bytes...
/// %% 16096
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 22528B, bits: 5018b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_FigoSys
#define h_FigoSys (){}
#define RA_FigoSys_HBO0 0x0000
#define RA_FigoSys_hbo0 0x0000
///////////////////////////////////////////////////////////
#define RA_FigoSys_HBO1 0x0700
#define RA_FigoSys_hbo1 0x0700
///////////////////////////////////////////////////////////
#define RA_FigoSys_FIGO0 0x1000
#define RA_FigoSys_figo0 0x1000
///////////////////////////////////////////////////////////
#define RA_FigoSys_FIGO1 0x3000
#define RA_FigoSys_figo1 0x3000
///////////////////////////////////////////////////////////
#define RA_FigoSys_DS 0x5000
#define RA_FigoSys_ds 0x5000
///////////////////////////////////////////////////////////
typedef struct SIE_FigoSys {
///////////////////////////////////////////////////////////
SIE_HBO ie_hbo0;
///////////////////////////////////////////////////////////
SIE_HBO ie_hbo1;
///////////////////////////////////////////////////////////
UNSG8 RSVDxE00 [512];
///////////////////////////////////////////////////////////
SIE_FigoReg ie_figo0;
///////////////////////////////////////////////////////////
SIE_FigoReg ie_figo1;
///////////////////////////////////////////////////////////
SIE_DataStreamer ie_ds;
///////////////////////////////////////////////////////////
UNSG8 RSVDx5024 [2012];
///////////////////////////////////////////////////////////
} SIE_FigoSys;
///////////////////////////////////////////////////////////
SIGN32 FigoSys_drvrd(SIE_FigoSys *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 FigoSys_drvwr(SIE_FigoSys *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void FigoSys_reset(SIE_FigoSys *p);
SIGN32 FigoSys_cmp (SIE_FigoSys *p, SIE_FigoSys *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define FigoSys_check(p,pie,pfx,hLOG) FigoSys_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define FigoSys_print(p, pfx,hLOG) FigoSys_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: FigoSys
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE FigoSysBasic biu (4,4)
/// ###
/// * FigoSys registers
/// ###
/// # # ----------------------------------------------------------
/// @ 0x00000 HBO0 (P)
/// # 0x00000 hbo0
/// $HBO hbo0 REG
/// @ 0x00700 (W-)
/// # # Stuffing bytes...
/// %% 2048
/// @ 0x00800 FIGO0 (P)
/// # 0x00800 figo0
/// $FigoReg figo0 REG
/// @ 0x02800 DS (P)
/// # 0x02800 ds
/// $DataStreamer ds REG
/// @ 0x02824 (W-)
/// # # Stuffing bytes...
/// %% 16096
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 12288B, bits: 2575b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_FigoSysBasic
#define h_FigoSysBasic (){}
#define RA_FigoSysBasic_HBO0 0x0000
#define RA_FigoSysBasic_hbo0 0x0000
///////////////////////////////////////////////////////////
#define RA_FigoSysBasic_FIGO0 0x0800
#define RA_FigoSysBasic_figo0 0x0800
///////////////////////////////////////////////////////////
#define RA_FigoSysBasic_DS 0x2800
#define RA_FigoSysBasic_ds 0x2800
///////////////////////////////////////////////////////////
typedef struct SIE_FigoSysBasic {
///////////////////////////////////////////////////////////
SIE_HBO ie_hbo0;
///////////////////////////////////////////////////////////
UNSG8 RSVDx700 [256];
///////////////////////////////////////////////////////////
SIE_FigoReg ie_figo0;
///////////////////////////////////////////////////////////
SIE_DataStreamer ie_ds;
///////////////////////////////////////////////////////////
UNSG8 RSVDx2824 [2012];
///////////////////////////////////////////////////////////
} SIE_FigoSysBasic;
///////////////////////////////////////////////////////////
SIGN32 FigoSysBasic_drvrd(SIE_FigoSysBasic *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 FigoSysBasic_drvwr(SIE_FigoSysBasic *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void FigoSysBasic_reset(SIE_FigoSysBasic *p);
SIGN32 FigoSysBasic_cmp (SIE_FigoSysBasic *p, SIE_FigoSysBasic *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define FigoSysBasic_check(p,pie,pfx,hLOG) FigoSysBasic_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define FigoSysBasic_print(p, pfx,hLOG) FigoSysBasic_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: FigoSysBasic
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE data (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 (RW)
/// ###
/// * data, 32-bit word
/// ###
/// %unsigned 32 word 0x0
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 32b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_data
#define h_data (){}
#define BA_data_word 0x0000
#define B16data_word 0x0000
#define LSb32data_word 0
#define LSb16data_word 0
#define bdata_word 32
#define MSK32data_word 0xFFFFFFFF
///////////////////////////////////////////////////////////
typedef struct SIE_data {
///////////////////////////////////////////////////////////
#define GET32data_word(r32) _BFGET_(r32,31, 0)
#define SET32data_word(r32,v) _BFSET_(r32,31, 0,v)
UNSG32 u_word : 32;
///////////////////////////////////////////////////////////
} SIE_data;
///////////////////////////////////////////////////////////
SIGN32 data_drvrd(SIE_data *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 data_drvwr(SIE_data *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void data_reset(SIE_data *p);
SIGN32 data_cmp (SIE_data *p, SIE_data *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define data_check(p,pie,pfx,hLOG) data_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define data_print(p, pfx,hLOG) data_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: data
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE DTCM (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 figoSysDtcm (P)
/// # 0x00000 data
/// $data data REG [8192]
/// ###
/// * Figo subsystems DTCM. Set to 32K word
/// ###
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 32768B, bits: 262144b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_DTCM
#define h_DTCM (){}
#define RA_DTCM_figoSysDtcm 0x0000
#define RA_DTCM_data 0x0000
///////////////////////////////////////////////////////////
typedef struct SIE_DTCM {
///////////////////////////////////////////////////////////
SIE_data ie_data[8192];
///////////////////////////////////////////////////////////
} SIE_DTCM;
///////////////////////////////////////////////////////////
SIGN32 DTCM_drvrd(SIE_DTCM *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 DTCM_drvwr(SIE_DTCM *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void DTCM_reset(SIE_DTCM *p);
SIGN32 DTCM_cmp (SIE_DTCM *p, SIE_DTCM *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define DTCM_check(p,pie,pfx,hLOG) DTCM_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define DTCM_print(p, pfx,hLOG) DTCM_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: DTCM
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE TestFigoSys biu (4,4)
/// ###
/// * FIGO 0 ALU64 extension ID; They are used to match the 8-bit constant in ALU64 commands
/// * The suffix “MultiLd” means that the extension is the multiple-load type. The suffix “SingleLd” means that the extensio is the single-load type. See session 4.2 for details.
/// ###
/// # # ----------------------------------------------------------
/// : F0A64_0_MultiLd 0x0
/// : F0A64_1_SingleLd 0x1
/// : F0A64_2_MultiLd 0x2
/// : F0A64_3_SingleLd 0x3
/// ###
/// * FigoSys test template DTCM, occupying 32KB address space
/// ###
/// @ 0x00000 DTCM (P)
/// # 0x00000 dtcm
/// $DTCM dtcm MEM
/// ###
/// * FigoSys registers
/// ###
/// @ 0x08000 FIGOSYS (P)
/// # 0x08000 figosys
/// $FigoSys figosys REG
/// ###
/// * ITCM is used by Figo and/or Figo1. ITCM1 is used ONLY by Figo1
/// * Need 2K entries x 3bytes per entry for ITCM
/// ###
/// @ 0x0D800 (W-)
/// # # Stuffing bytes...
/// %% 81920
/// @ 0x10000 ITCM (P)
/// # 0x10000 itcm
/// $ITCM itcm MEM
/// @ 0x12000 ITCM1 (P)
/// # 0x12000 itcm1
/// $ITCM itcm1 MEM
/// @ 0x14000 (W-)
/// # # Stuffing bytes...
/// %% 131072
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 98304B, bits: 5114b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_TestFigoSys
#define h_TestFigoSys (){}
#define TestFigoSys_F0A64_0_MultiLd 0x0
#define TestFigoSys_F0A64_1_SingleLd 0x1
#define TestFigoSys_F0A64_2_MultiLd 0x2
#define TestFigoSys_F0A64_3_SingleLd 0x3
///////////////////////////////////////////////////////////
#define RA_TestFigoSys_DTCM 0x0000
#define RA_TestFigoSys_dtcm 0x0000
///////////////////////////////////////////////////////////
#define RA_TestFigoSys_FIGOSYS 0x8000
#define RA_TestFigoSys_figosys 0x8000
///////////////////////////////////////////////////////////
#define RA_TestFigoSys_ITCM 0x10000
#define RA_TestFigoSys_itcm 0x10000
///////////////////////////////////////////////////////////
#define RA_TestFigoSys_ITCM1 0x12000
#define RA_TestFigoSys_itcm1 0x12000
///////////////////////////////////////////////////////////
typedef struct SIE_TestFigoSys {
///////////////////////////////////////////////////////////
SIE_DTCM ie_dtcm;
///////////////////////////////////////////////////////////
SIE_FigoSys ie_figosys;
///////////////////////////////////////////////////////////
UNSG8 RSVDxD800 [10240];
///////////////////////////////////////////////////////////
SIE_ITCM ie_itcm;
///////////////////////////////////////////////////////////
SIE_ITCM ie_itcm1;
///////////////////////////////////////////////////////////
UNSG8 RSVDx14000 [16384];
///////////////////////////////////////////////////////////
} SIE_TestFigoSys;
///////////////////////////////////////////////////////////
SIGN32 TestFigoSys_drvrd(SIE_TestFigoSys *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 TestFigoSys_drvwr(SIE_TestFigoSys *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void TestFigoSys_reset(SIE_TestFigoSys *p);
SIGN32 TestFigoSys_cmp (SIE_TestFigoSys *p, SIE_TestFigoSys *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define TestFigoSys_check(p,pie,pfx,hLOG) TestFigoSys_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define TestFigoSys_print(p, pfx,hLOG) TestFigoSys_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: TestFigoSys
////////////////////////////////////////////////////////////
#ifdef __cplusplus
}
#endif
#pragma pack()
#endif
//////
/// ENDOFFILE: test_FigoSys.h
////////////////////////////////////////////////////////////