void nrf_drv_clock_lfclk_request(nrf_drv_clock_handler_item_t * p_handler_item) { ASSERT(m_clock_cb.module_initialized); #ifndef SOFTDEVICE_PRESENT ASSERT(m_clock_cb.lfclk_requests != INT_MAX); CRITICAL_REGION_ENTER(); if (m_clock_cb.lfclk_on) { if (p_handler_item) { p_handler_item->event_handler(NRF_DRV_CLOCK_EVT_LFCLK_STARTED); } } else { if (p_handler_item) { item_enqueue((nrf_drv_clock_handler_item_t **)&m_clock_cb.p_lf_head, p_handler_item); } if (m_clock_cb.lfclk_requests == 0) { lfclk_start(); } } m_clock_cb.lfclk_requests++; CRITICAL_REGION_EXIT(); #else if (p_handler_item) { p_handler_item->event_handler(NRF_DRV_CLOCK_EVT_LFCLK_STARTED); } #endif // SOFTDEVICE_PRESENT }
void nrf_drv_clock_lfclk_request(nrf_drv_clock_handler_item_t * p_handler_item) { ASSERT(m_clock_cb.module_initialized); if (m_clock_cb.lfclk_on) { if (p_handler_item) { p_handler_item->event_handler(NRF_DRV_CLOCK_EVT_LFCLK_STARTED); } CRITICAL_REGION_ENTER(); ++(m_clock_cb.lfclk_requests); CRITICAL_REGION_EXIT(); } else { CRITICAL_REGION_ENTER(); if (p_handler_item) { item_enqueue((nrf_drv_clock_handler_item_t **)&m_clock_cb.p_lf_head, p_handler_item); } if (m_clock_cb.lfclk_requests == 0) { lfclk_start(); } ++(m_clock_cb.lfclk_requests); CRITICAL_REGION_EXIT(); } ASSERT(m_clock_cb.lfclk_requests > 0); }