15static int _sif2_inited = 0;
16static u32 _sif2_xfer_addr = 0;
17static u32 _sif2_xfer_size = 0;
18static u32 _sif2_xfer_attr = 0;
19static u32 _sif2_xfer_chunk_size = 0;
21void SIF2_RestartDma(
void);
23void SIF2_sync_dma(
void)
31 if ((_sif2_xfer_addr != 0) && (_sif2_xfer_size > 0)) {
32 _sif2_xfer_addr += _sif2_xfer_chunk_size;
33 _sif2_xfer_size -= _sif2_xfer_chunk_size;
36 if ((_sif2_xfer_addr != 0) && (_sif2_xfer_size > 0)) {
49void SIF2_RestartDma(
void)
61 _sif2_xfer_chunk_size = (_sif2_xfer_size > SIF2_XFER_CHUNK_SIZE) ? SIF2_XFER_CHUNK_SIZE : _sif2_xfer_size;
71int SIF2_set_dma(u32 addr, u32 size, u32 attr)
73 size = ((size + 15) / 16) * 16;
75 _sif2_xfer_addr = addr;
76 _sif2_xfer_size = size;
77 _sif2_xfer_attr = attr;
99 *R_LOCAL_SBUS(PS2_SBUS_REG4) = 0x00000100;
100 *R_LOCAL_SBUS(PS2_SBUS_REG6) = 0x000000FF;
123 M_SuspendIntr(&oldi);