bool sh_css_hrt_system_is_idle(void) { hrt_data status; bool not_idle = false; not_idle |= !isp_ctrl_getbit(ISP0_ID, ISP_SC_REG, ISP_IDLE_BIT); status = fifo_monitor_reg_load(FIFO_MONITOR0_ID, HIVE_GP_REGS_SP_STREAM_STAT_IDX); not_idle |= ((status & FIFO_CHANNEL_SP_VALID_MASK) != 0); #if defined(HAS_FIFO_MONITORS_VERSION_2) status = fifo_monitor_reg_load(FIFO_MONITOR0_ID, HIVE_GP_REGS_SP_STREAM_STAT_B_IDX); not_idle |= ((status & FIFO_CHANNEL_SP_VALID_B_MASK) != 0); #endif status = fifo_monitor_reg_load(FIFO_MONITOR0_ID, HIVE_GP_REGS_ISP_STREAM_STAT_IDX); not_idle |= ((status & FIFO_CHANNEL_ISP_VALID_MASK) != 0); status = fifo_monitor_reg_load(FIFO_MONITOR0_ID, HIVE_GP_REGS_MOD_STREAM_STAT_IDX); not_idle |= ((status & FIFO_CHANNEL_MOD_VALID_MASK) != 0); return !not_idle; }
STORAGE_CLASS_INLINE bool fifo_monitor_status_accept( const fifo_monitor_ID_t ID, const unsigned int reg, const unsigned int port_id) { hrt_data data = fifo_monitor_reg_load(ID, reg); return (data >> (((port_id * 2) + _hive_str_mon_accept_offset))) & 0x1; }