blob: 7e6732a00cd524cc7bc238bd03cac10da37aa9c3 [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: spu.h
////////////////////////////////////////////////////////////
#ifndef spu_h
#define spu_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 spuSrcInfo biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 ddr (P)
/// %unsigned 3 adr
/// ###
/// * The stream start address inside DDR, only the lsb [2:0] are used. It sprcifies how many bytes need to be dropped from the first dHub word.
/// ###
/// %% 29 # Stuffing bits...
/// @ 0x00004 strm (P)
/// %unsigned 24 size
/// ###
/// * The stream size in byte.
/// ###
/// %% 8 # Stuffing bits...
/// @ 0x00008 total (P)
/// %unsigned 16 x
/// %unsigned 16 y
/// ###
/// * The stream defined frame size.
/// ###
/// @ 0x0000C start (P)
/// %unsigned 16 x 0x0
/// %unsigned 16 y 0x0
/// ###
/// * The start location of the cropping plane.
/// ###
/// @ 0x00010 size (P)
/// %unsigned 16 x 0x64
/// %unsigned 16 y 0x64
/// ###
/// * The cropping plane size.
/// ###
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 20B, bits: 123b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_spuSrcInfo
#define h_spuSrcInfo (){}
#define RA_spuSrcInfo_ddr 0x0000
#define BA_spuSrcInfo_ddr_adr 0x0000
#define B16spuSrcInfo_ddr_adr 0x0000
#define LSb32spuSrcInfo_ddr_adr 0
#define LSb16spuSrcInfo_ddr_adr 0
#define bspuSrcInfo_ddr_adr 3
#define MSK32spuSrcInfo_ddr_adr 0x00000007
///////////////////////////////////////////////////////////
#define RA_spuSrcInfo_strm 0x0004
#define BA_spuSrcInfo_strm_size 0x0004
#define B16spuSrcInfo_strm_size 0x0004
#define LSb32spuSrcInfo_strm_size 0
#define LSb16spuSrcInfo_strm_size 0
#define bspuSrcInfo_strm_size 24
#define MSK32spuSrcInfo_strm_size 0x00FFFFFF
///////////////////////////////////////////////////////////
#define RA_spuSrcInfo_total 0x0008
#define BA_spuSrcInfo_total_x 0x0008
#define B16spuSrcInfo_total_x 0x0008
#define LSb32spuSrcInfo_total_x 0
#define LSb16spuSrcInfo_total_x 0
#define bspuSrcInfo_total_x 16
#define MSK32spuSrcInfo_total_x 0x0000FFFF
#define BA_spuSrcInfo_total_y 0x000A
#define B16spuSrcInfo_total_y 0x000A
#define LSb32spuSrcInfo_total_y 16
#define LSb16spuSrcInfo_total_y 0
#define bspuSrcInfo_total_y 16
#define MSK32spuSrcInfo_total_y 0xFFFF0000
///////////////////////////////////////////////////////////
#define RA_spuSrcInfo_start 0x000C
#define BA_spuSrcInfo_start_x 0x000C
#define B16spuSrcInfo_start_x 0x000C
#define LSb32spuSrcInfo_start_x 0
#define LSb16spuSrcInfo_start_x 0
#define bspuSrcInfo_start_x 16
#define MSK32spuSrcInfo_start_x 0x0000FFFF
#define BA_spuSrcInfo_start_y 0x000E
#define B16spuSrcInfo_start_y 0x000E
#define LSb32spuSrcInfo_start_y 16
#define LSb16spuSrcInfo_start_y 0
#define bspuSrcInfo_start_y 16
#define MSK32spuSrcInfo_start_y 0xFFFF0000
///////////////////////////////////////////////////////////
#define RA_spuSrcInfo_size 0x0010
#define BA_spuSrcInfo_size_x 0x0010
#define B16spuSrcInfo_size_x 0x0010
#define LSb32spuSrcInfo_size_x 0
#define LSb16spuSrcInfo_size_x 0
#define bspuSrcInfo_size_x 16
#define MSK32spuSrcInfo_size_x 0x0000FFFF
#define BA_spuSrcInfo_size_y 0x0012
#define B16spuSrcInfo_size_y 0x0012
#define LSb32spuSrcInfo_size_y 16
#define LSb16spuSrcInfo_size_y 0
#define bspuSrcInfo_size_y 16
#define MSK32spuSrcInfo_size_y 0xFFFF0000
///////////////////////////////////////////////////////////
typedef struct SIE_spuSrcInfo {
///////////////////////////////////////////////////////////
#define GET32spuSrcInfo_ddr_adr(r32) _BFGET_(r32, 2, 0)
#define SET32spuSrcInfo_ddr_adr(r32,v) _BFSET_(r32, 2, 0,v)
#define GET16spuSrcInfo_ddr_adr(r16) _BFGET_(r16, 2, 0)
#define SET16spuSrcInfo_ddr_adr(r16,v) _BFSET_(r16, 2, 0,v)
#define w32spuSrcInfo_ddr {\
UNSG32 uddr_adr : 3;\
UNSG32 RSVDx0_b3 : 29;\
}
union { UNSG32 u32spuSrcInfo_ddr;
struct w32spuSrcInfo_ddr;
};
///////////////////////////////////////////////////////////
#define GET32spuSrcInfo_strm_size(r32) _BFGET_(r32,23, 0)
#define SET32spuSrcInfo_strm_size(r32,v) _BFSET_(r32,23, 0,v)
#define w32spuSrcInfo_strm {\
UNSG32 ustrm_size : 24;\
UNSG32 RSVDx4_b24 : 8;\
}
union { UNSG32 u32spuSrcInfo_strm;
struct w32spuSrcInfo_strm;
};
///////////////////////////////////////////////////////////
#define GET32spuSrcInfo_total_x(r32) _BFGET_(r32,15, 0)
#define SET32spuSrcInfo_total_x(r32,v) _BFSET_(r32,15, 0,v)
#define GET16spuSrcInfo_total_x(r16) _BFGET_(r16,15, 0)
#define SET16spuSrcInfo_total_x(r16,v) _BFSET_(r16,15, 0,v)
#define GET32spuSrcInfo_total_y(r32) _BFGET_(r32,31,16)
#define SET32spuSrcInfo_total_y(r32,v) _BFSET_(r32,31,16,v)
#define GET16spuSrcInfo_total_y(r16) _BFGET_(r16,15, 0)
#define SET16spuSrcInfo_total_y(r16,v) _BFSET_(r16,15, 0,v)
#define w32spuSrcInfo_total {\
UNSG32 utotal_x : 16;\
UNSG32 utotal_y : 16;\
}
union { UNSG32 u32spuSrcInfo_total;
struct w32spuSrcInfo_total;
};
///////////////////////////////////////////////////////////
#define GET32spuSrcInfo_start_x(r32) _BFGET_(r32,15, 0)
#define SET32spuSrcInfo_start_x(r32,v) _BFSET_(r32,15, 0,v)
#define GET16spuSrcInfo_start_x(r16) _BFGET_(r16,15, 0)
#define SET16spuSrcInfo_start_x(r16,v) _BFSET_(r16,15, 0,v)
#define GET32spuSrcInfo_start_y(r32) _BFGET_(r32,31,16)
#define SET32spuSrcInfo_start_y(r32,v) _BFSET_(r32,31,16,v)
#define GET16spuSrcInfo_start_y(r16) _BFGET_(r16,15, 0)
#define SET16spuSrcInfo_start_y(r16,v) _BFSET_(r16,15, 0,v)
#define w32spuSrcInfo_start {\
UNSG32 ustart_x : 16;\
UNSG32 ustart_y : 16;\
}
union { UNSG32 u32spuSrcInfo_start;
struct w32spuSrcInfo_start;
};
///////////////////////////////////////////////////////////
#define GET32spuSrcInfo_size_x(r32) _BFGET_(r32,15, 0)
#define SET32spuSrcInfo_size_x(r32,v) _BFSET_(r32,15, 0,v)
#define GET16spuSrcInfo_size_x(r16) _BFGET_(r16,15, 0)
#define SET16spuSrcInfo_size_x(r16,v) _BFSET_(r16,15, 0,v)
#define GET32spuSrcInfo_size_y(r32) _BFGET_(r32,31,16)
#define SET32spuSrcInfo_size_y(r32,v) _BFSET_(r32,31,16,v)
#define GET16spuSrcInfo_size_y(r16) _BFGET_(r16,15, 0)
#define SET16spuSrcInfo_size_y(r16,v) _BFSET_(r16,15, 0,v)
#define w32spuSrcInfo_size {\
UNSG32 usize_x : 16;\
UNSG32 usize_y : 16;\
}
union { UNSG32 u32spuSrcInfo_size;
struct w32spuSrcInfo_size;
};
///////////////////////////////////////////////////////////
} SIE_spuSrcInfo;
typedef union T32spuSrcInfo_ddr
{ UNSG32 u32;
struct w32spuSrcInfo_ddr;
} T32spuSrcInfo_ddr;
typedef union T32spuSrcInfo_strm
{ UNSG32 u32;
struct w32spuSrcInfo_strm;
} T32spuSrcInfo_strm;
typedef union T32spuSrcInfo_total
{ UNSG32 u32;
struct w32spuSrcInfo_total;
} T32spuSrcInfo_total;
typedef union T32spuSrcInfo_start
{ UNSG32 u32;
struct w32spuSrcInfo_start;
} T32spuSrcInfo_start;
typedef union T32spuSrcInfo_size
{ UNSG32 u32;
struct w32spuSrcInfo_size;
} T32spuSrcInfo_size;
///////////////////////////////////////////////////////////
typedef union TspuSrcInfo_ddr
{ UNSG32 u32[1];
struct {
struct w32spuSrcInfo_ddr;
};
} TspuSrcInfo_ddr;
typedef union TspuSrcInfo_strm
{ UNSG32 u32[1];
struct {
struct w32spuSrcInfo_strm;
};
} TspuSrcInfo_strm;
typedef union TspuSrcInfo_total
{ UNSG32 u32[1];
struct {
struct w32spuSrcInfo_total;
};
} TspuSrcInfo_total;
typedef union TspuSrcInfo_start
{ UNSG32 u32[1];
struct {
struct w32spuSrcInfo_start;
};
} TspuSrcInfo_start;
typedef union TspuSrcInfo_size
{ UNSG32 u32[1];
struct {
struct w32spuSrcInfo_size;
};
} TspuSrcInfo_size;
///////////////////////////////////////////////////////////
SIGN32 spuSrcInfo_drvrd(SIE_spuSrcInfo *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 spuSrcInfo_drvwr(SIE_spuSrcInfo *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void spuSrcInfo_reset(SIE_spuSrcInfo *p);
SIGN32 spuSrcInfo_cmp (SIE_spuSrcInfo *p, SIE_spuSrcInfo *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define spuSrcInfo_check(p,pie,pfx,hLOG) spuSrcInfo_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define spuSrcInfo_print(p, pfx,hLOG) spuSrcInfo_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: spuSrcInfo
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE spuDstInfo biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 ddr (P)
/// %unsigned 3 adr
/// ###
/// * 2D frame buffer address, H/W will write the cropped frame to this address. Could be any byte address, the lsb [2:0] are used for dHub word padding for each start of a line.
/// ###
/// %% 29 # Stuffing bits...
/// @ 0x00004 line (P)
/// %unsigned 16 stride
/// ###
/// * Line stride size in byte.
/// * It should be 64-bit aligned.
/// ###
/// %% 16 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 8B, bits: 19b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_spuDstInfo
#define h_spuDstInfo (){}
#define RA_spuDstInfo_ddr 0x0000
#define BA_spuDstInfo_ddr_adr 0x0000
#define B16spuDstInfo_ddr_adr 0x0000
#define LSb32spuDstInfo_ddr_adr 0
#define LSb16spuDstInfo_ddr_adr 0
#define bspuDstInfo_ddr_adr 3
#define MSK32spuDstInfo_ddr_adr 0x00000007
///////////////////////////////////////////////////////////
#define RA_spuDstInfo_line 0x0004
#define BA_spuDstInfo_line_stride 0x0004
#define B16spuDstInfo_line_stride 0x0004
#define LSb32spuDstInfo_line_stride 0
#define LSb16spuDstInfo_line_stride 0
#define bspuDstInfo_line_stride 16
#define MSK32spuDstInfo_line_stride 0x0000FFFF
///////////////////////////////////////////////////////////
typedef struct SIE_spuDstInfo {
///////////////////////////////////////////////////////////
#define GET32spuDstInfo_ddr_adr(r32) _BFGET_(r32, 2, 0)
#define SET32spuDstInfo_ddr_adr(r32,v) _BFSET_(r32, 2, 0,v)
#define GET16spuDstInfo_ddr_adr(r16) _BFGET_(r16, 2, 0)
#define SET16spuDstInfo_ddr_adr(r16,v) _BFSET_(r16, 2, 0,v)
#define w32spuDstInfo_ddr {\
UNSG32 uddr_adr : 3;\
UNSG32 RSVDx0_b3 : 29;\
}
union { UNSG32 u32spuDstInfo_ddr;
struct w32spuDstInfo_ddr;
};
///////////////////////////////////////////////////////////
#define GET32spuDstInfo_line_stride(r32) _BFGET_(r32,15, 0)
#define SET32spuDstInfo_line_stride(r32,v) _BFSET_(r32,15, 0,v)
#define GET16spuDstInfo_line_stride(r16) _BFGET_(r16,15, 0)
#define SET16spuDstInfo_line_stride(r16,v) _BFSET_(r16,15, 0,v)
#define w32spuDstInfo_line {\
UNSG32 uline_stride : 16;\
UNSG32 RSVDx4_b16 : 16;\
}
union { UNSG32 u32spuDstInfo_line;
struct w32spuDstInfo_line;
};
///////////////////////////////////////////////////////////
} SIE_spuDstInfo;
typedef union T32spuDstInfo_ddr
{ UNSG32 u32;
struct w32spuDstInfo_ddr;
} T32spuDstInfo_ddr;
typedef union T32spuDstInfo_line
{ UNSG32 u32;
struct w32spuDstInfo_line;
} T32spuDstInfo_line;
///////////////////////////////////////////////////////////
typedef union TspuDstInfo_ddr
{ UNSG32 u32[1];
struct {
struct w32spuDstInfo_ddr;
};
} TspuDstInfo_ddr;
typedef union TspuDstInfo_line
{ UNSG32 u32[1];
struct {
struct w32spuDstInfo_line;
};
} TspuDstInfo_line;
///////////////////////////////////////////////////////////
SIGN32 spuDstInfo_drvrd(SIE_spuDstInfo *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 spuDstInfo_drvwr(SIE_spuDstInfo *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void spuDstInfo_reset(SIE_spuDstInfo *p);
SIGN32 spuDstInfo_cmp (SIE_spuDstInfo *p, SIE_spuDstInfo *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define spuDstInfo_check(p,pie,pfx,hLOG) spuDstInfo_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define spuDstInfo_print(p, pfx,hLOG) spuDstInfo_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: spuDstInfo
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE spuReg biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// # 0x00000 rleStrm
/// $spuSrcInfo rleStrm REG
/// @ 0x00014 (P)
/// # 0x00014 frame
/// $spuDstInfo frame REG
/// @ 0x0001C start (P)
/// %unsigned 1 en
/// ###
/// * Write '1' to this register will kick off the the spu engine start loading stream data from dHub, and the rest of the spu system will rely on the stream to start working.
/// ###
/// %% 31 # Stuffing bits...
/// @ 0x00020 clr (P)
/// %unsigned 1 en
/// ###
/// * Write '1' to this register will reset all the internal state machine or FIFOs.
/// * This is used for S/W to reset the spu engine when something error happens inside spu. For example, spu detects illegal stream pattern.
/// ###
/// %% 31 # Stuffing bits...
/// @ 0x00024 st (WOC-)
/// ###
/// * The register will be cleared to '0' if writing '1' to the corresponding bit field.
/// ###
/// %unsigned 1 spu_busy 0x0
/// ###
/// * SPU is busy (loading stream, decoding or driving data out to dHub)
/// ###
/// %unsigned 1 rleErr0 0x0
/// ###
/// * The rest of the bits are not enough to compose any valid SE.
/// ###
/// %unsigned 1 rleErr1 0x0
/// ###
/// * Illegal stream is detected. For example, the run-length_64_14k bit fields come out a value less than 64.
/// ###
/// %unsigned 1 rleErr2 0x0
/// ###
/// * The decoded frame size is smaller than expected frame size.
/// ###
/// %unsigned 1 rleErr3 0x0
/// ###
/// * The decoded frame size is bigger than expected frame size.
/// ###
/// %% 27 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 40B, bits: 149b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_spuReg
#define h_spuReg (){}
#define RA_spuReg_rleStrm 0x0000
///////////////////////////////////////////////////////////
#define RA_spuReg_frame 0x0014
///////////////////////////////////////////////////////////
#define RA_spuReg_start 0x001C
#define BA_spuReg_start_en 0x001C
#define B16spuReg_start_en 0x001C
#define LSb32spuReg_start_en 0
#define LSb16spuReg_start_en 0
#define bspuReg_start_en 1
#define MSK32spuReg_start_en 0x00000001
///////////////////////////////////////////////////////////
#define RA_spuReg_clr 0x0020
#define BA_spuReg_clr_en 0x0020
#define B16spuReg_clr_en 0x0020
#define LSb32spuReg_clr_en 0
#define LSb16spuReg_clr_en 0
#define bspuReg_clr_en 1
#define MSK32spuReg_clr_en 0x00000001
///////////////////////////////////////////////////////////
#define RA_spuReg_st 0x0024
#define BA_spuReg_st_spu_busy 0x0024
#define B16spuReg_st_spu_busy 0x0024
#define LSb32spuReg_st_spu_busy 0
#define LSb16spuReg_st_spu_busy 0
#define bspuReg_st_spu_busy 1
#define MSK32spuReg_st_spu_busy 0x00000001
#define BA_spuReg_st_rleErr0 0x0024
#define B16spuReg_st_rleErr0 0x0024
#define LSb32spuReg_st_rleErr0 1
#define LSb16spuReg_st_rleErr0 1
#define bspuReg_st_rleErr0 1
#define MSK32spuReg_st_rleErr0 0x00000002
#define BA_spuReg_st_rleErr1 0x0024
#define B16spuReg_st_rleErr1 0x0024
#define LSb32spuReg_st_rleErr1 2
#define LSb16spuReg_st_rleErr1 2
#define bspuReg_st_rleErr1 1
#define MSK32spuReg_st_rleErr1 0x00000004
#define BA_spuReg_st_rleErr2 0x0024
#define B16spuReg_st_rleErr2 0x0024
#define LSb32spuReg_st_rleErr2 3
#define LSb16spuReg_st_rleErr2 3
#define bspuReg_st_rleErr2 1
#define MSK32spuReg_st_rleErr2 0x00000008
#define BA_spuReg_st_rleErr3 0x0024
#define B16spuReg_st_rleErr3 0x0024
#define LSb32spuReg_st_rleErr3 4
#define LSb16spuReg_st_rleErr3 4
#define bspuReg_st_rleErr3 1
#define MSK32spuReg_st_rleErr3 0x00000010
///////////////////////////////////////////////////////////
typedef struct SIE_spuReg {
///////////////////////////////////////////////////////////
SIE_spuSrcInfo ie_rleStrm;
///////////////////////////////////////////////////////////
SIE_spuDstInfo ie_frame;
///////////////////////////////////////////////////////////
#define GET32spuReg_start_en(r32) _BFGET_(r32, 0, 0)
#define SET32spuReg_start_en(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16spuReg_start_en(r16) _BFGET_(r16, 0, 0)
#define SET16spuReg_start_en(r16,v) _BFSET_(r16, 0, 0,v)
#define w32spuReg_start {\
UNSG32 ustart_en : 1;\
UNSG32 RSVDx1C_b1 : 31;\
}
union { UNSG32 u32spuReg_start;
struct w32spuReg_start;
};
///////////////////////////////////////////////////////////
#define GET32spuReg_clr_en(r32) _BFGET_(r32, 0, 0)
#define SET32spuReg_clr_en(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16spuReg_clr_en(r16) _BFGET_(r16, 0, 0)
#define SET16spuReg_clr_en(r16,v) _BFSET_(r16, 0, 0,v)
#define w32spuReg_clr {\
UNSG32 uclr_en : 1;\
UNSG32 RSVDx20_b1 : 31;\
}
union { UNSG32 u32spuReg_clr;
struct w32spuReg_clr;
};
///////////////////////////////////////////////////////////
#define GET32spuReg_st_spu_busy(r32) _BFGET_(r32, 0, 0)
#define SET32spuReg_st_spu_busy(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16spuReg_st_spu_busy(r16) _BFGET_(r16, 0, 0)
#define SET16spuReg_st_spu_busy(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32spuReg_st_rleErr0(r32) _BFGET_(r32, 1, 1)
#define SET32spuReg_st_rleErr0(r32,v) _BFSET_(r32, 1, 1,v)
#define GET16spuReg_st_rleErr0(r16) _BFGET_(r16, 1, 1)
#define SET16spuReg_st_rleErr0(r16,v) _BFSET_(r16, 1, 1,v)
#define GET32spuReg_st_rleErr1(r32) _BFGET_(r32, 2, 2)
#define SET32spuReg_st_rleErr1(r32,v) _BFSET_(r32, 2, 2,v)
#define GET16spuReg_st_rleErr1(r16) _BFGET_(r16, 2, 2)
#define SET16spuReg_st_rleErr1(r16,v) _BFSET_(r16, 2, 2,v)
#define GET32spuReg_st_rleErr2(r32) _BFGET_(r32, 3, 3)
#define SET32spuReg_st_rleErr2(r32,v) _BFSET_(r32, 3, 3,v)
#define GET16spuReg_st_rleErr2(r16) _BFGET_(r16, 3, 3)
#define SET16spuReg_st_rleErr2(r16,v) _BFSET_(r16, 3, 3,v)
#define GET32spuReg_st_rleErr3(r32) _BFGET_(r32, 4, 4)
#define SET32spuReg_st_rleErr3(r32,v) _BFSET_(r32, 4, 4,v)
#define GET16spuReg_st_rleErr3(r16) _BFGET_(r16, 4, 4)
#define SET16spuReg_st_rleErr3(r16,v) _BFSET_(r16, 4, 4,v)
#define w32spuReg_st {\
UNSG32 ust_spu_busy : 1;\
UNSG32 ust_rleErr0 : 1;\
UNSG32 ust_rleErr1 : 1;\
UNSG32 ust_rleErr2 : 1;\
UNSG32 ust_rleErr3 : 1;\
UNSG32 RSVDx24_b5 : 27;\
}
union { UNSG32 u32spuReg_st;
struct w32spuReg_st;
};
///////////////////////////////////////////////////////////
} SIE_spuReg;
typedef union T32spuReg_start
{ UNSG32 u32;
struct w32spuReg_start;
} T32spuReg_start;
typedef union T32spuReg_clr
{ UNSG32 u32;
struct w32spuReg_clr;
} T32spuReg_clr;
typedef union T32spuReg_st
{ UNSG32 u32;
struct w32spuReg_st;
} T32spuReg_st;
///////////////////////////////////////////////////////////
typedef union TspuReg_start
{ UNSG32 u32[1];
struct {
struct w32spuReg_start;
};
} TspuReg_start;
typedef union TspuReg_clr
{ UNSG32 u32[1];
struct {
struct w32spuReg_clr;
};
} TspuReg_clr;
typedef union TspuReg_st
{ UNSG32 u32[1];
struct {
struct w32spuReg_st;
};
} TspuReg_st;
///////////////////////////////////////////////////////////
SIGN32 spuReg_drvrd(SIE_spuReg *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 spuReg_drvwr(SIE_spuReg *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void spuReg_reset(SIE_spuReg *p);
SIGN32 spuReg_cmp (SIE_spuReg *p, SIE_spuReg *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define spuReg_check(p,pie,pfx,hLOG) spuReg_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define spuReg_print(p, pfx,hLOG) spuReg_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: spuReg
////////////////////////////////////////////////////////////
#ifdef __cplusplus
}
#endif
#pragma pack()
#endif
//////
/// ENDOFFILE: spu.h
////////////////////////////////////////////////////////////