#ifndef _ibuf_cntrl_defs_h_
#define _ibuf_cntrl_defs_h_
#include <stream2mmio_defs.h>
#include <dma_v2_defs.h>
#define _IBUF_CNTRL_REG_ALIGN 4
#define _IBUF_CNTRL_PROC_REG_ALIGN 32
#define _IBUF_CNTRL_CONFIG_REGS_PER_PROC 18
#define _IBUF_CNTRL_CONFIG_REGS_NO_PROC 0
#define _IBUF_CNTRL_STATUS_REGS_PER_PROC (_IBUF_CNTRL_CONFIG_REGS_PER_PROC + 10)
#define _IBUF_CNTRL_STATUS_REGS_NO_PROC (_IBUF_CNTRL_CONFIG_REGS_NO_PROC + 2)
#define _IBUF_CNTRL_TIME_OUT_BITS 5
#define _IBUF_CNTRL_CMD_TOKEN_LSB 0
#define _IBUF_CNTRL_CMD_TOKEN_MSB 1
#define _IBUF_CNTRL_STREAM2MMIO_CMD_TOKEN_MSB _STREAM2MMIO_CMD_TOKEN_CMD_MSB
#define _IBUF_CNTRL_STREAM2MMIO_CMD_TOKEN_LSB _STREAM2MMIO_CMD_TOKEN_CMD_LSB
#define _IBUF_CNTRL_STREAM2MMIO_NUM_ITEMS_BITS _STREAM2MMIO_PACK_NUM_ITEMS_BITS
#define _IBUF_CNTRL_STREAM2MMIO_ACK_EOF_BIT _STREAM2MMIO_PACK_ACK_EOF_BIT
#define _IBUF_CNTRL_STREAM2MMIO_ACK_TOKEN_VALID_BIT _STREAM2MMIO_ACK_TOKEN_VALID_BIT
#define _IBUF_CNTRL_ACK_TOKEN_STORES_IDX 0
#define _IBUF_CNTRL_ACK_TOKEN_STORES_BITS 15
#define _IBUF_CNTRL_ACK_TOKEN_ITEMS_IDX (_IBUF_CNTRL_ACK_TOKEN_STORES_BITS + _IBUF_CNTRL_ACK_TOKEN_STORES_IDX)
#define _IBUF_CNTRL_ACK_TOKEN_ITEMS_BITS _STREAM2MMIO_PACK_NUM_ITEMS_BITS
#define _IBUF_CNTRL_ACK_TOKEN_LSB _IBUF_CNTRL_ACK_TOKEN_STORES_IDX
#define _IBUF_CNTRL_ACK_TOKEN_MSB (_IBUF_CNTRL_ACK_TOKEN_ITEMS_BITS + _IBUF_CNTRL_ACK_TOKEN_ITEMS_IDX - 1)
#define _IBUF_CNTRL_ACK_TOKEN_VALID_BIT (_IBUF_CNTRL_ACK_TOKEN_ITEMS_BITS + _IBUF_CNTRL_ACK_TOKEN_ITEMS_IDX)
#define _IBUF_CNTRL_RECALC_WORDS_STATUS 0
#define _IBUF_CNTRL_ARBITERS_STATUS 1
#define _IBUF_CNTRL_SET_CRUN 2 /* NO PHYSICAL REGISTER!! Only used in HSS model */
#define _IBUF_CNTRL_CMD 0
#define _IBUF_CNTRL_ACK 1
#define _IBUF_CNTRL_NUM_ITEMS_PER_STORE 2
#define _IBUF_CNTRL_NUM_STORES_PER_FRAME 3
#define _IBUF_CNTRL_DMA_CHANNEL 4
#define _IBUF_CNTRL_DMA_CMD 5
#define _IBUF_CNTRL_BUFFER_START_ADDRESS 6
#define _IBUF_CNTRL_BUFFER_STRIDE 7
#define _IBUF_CNTRL_BUFFER_END_ADDRESS 8
#define _IBUF_CNTRL_DEST_START_ADDRESS 9
#define _IBUF_CNTRL_DEST_STRIDE 10
#define _IBUF_CNTRL_DEST_END_ADDRESS 11
#define _IBUF_CNTRL_SYNC_FRAME 12
#define _IBUF_CNTRL_STR2MMIO_SYNC_CMD 13
#define _IBUF_CNTRL_STR2MMIO_STORE_CMD 14
#define _IBUF_CNTRL_SHIFT_ITEMS 15
#define _IBUF_CNTRL_ELEMS_P_WORD_IBUF 16
#define _IBUF_CNTRL_ELEMS_P_WORD_DEST 17
#define _IBUF_CNTRL_CUR_STORES 18
#define _IBUF_CNTRL_CUR_ACKS 19
#define _IBUF_CNTRL_CUR_S2M_IBUF_ADDR 20
#define _IBUF_CNTRL_CUR_DMA_IBUF_ADDR 21
#define _IBUF_CNTRL_CUR_DMA_DEST_ADDR 22
#define _IBUF_CNTRL_CUR_ISP_DEST_ADDR 23
#define _IBUF_CNTRL_CUR_NR_DMA_CMDS_SEND 24
#define _IBUF_CNTRL_MAIN_CNTRL_STATE 25
#define _IBUF_CNTRL_DMA_SYNC_STATE 26
#define _IBUF_CNTRL_ISP_SYNC_STATE 27
#define _IBUF_CNTRL_CMD_STORE_FRAME_IDX 0
#define _IBUF_CNTRL_CMD_ONLINE_IDX 1
#define _IBUF_CNTRL_CMD_INITIALIZE 0
#define _IBUF_CNTRL_CMD_STORE_ONLINE_FRAME ((1 << _IBUF_CNTRL_CMD_STORE_FRAME_IDX) | (1 << _IBUF_CNTRL_CMD_ONLINE_IDX))
#define _IBUF_CNTRL_CMD_STORE_OFFLINE_FRAME BIT(_IBUF_CNTRL_CMD_STORE_FRAME_IDX)
#define _IBUF_CNTRL_FALSE_ACK 2
#endif