nfa_sys_cback.c revision 45faad0ff5deeb0c676356345d99398cc4ab695a
1/***************************************************************************** 2** 3** Name: nfa_sys_cback.c 4** 5** Description: Registration/deregistration functions for inter-module callbacks 6** 7** Copyright (c) 2010-2011, Broadcom Corp., All Rights Reserved. 8** Widcomm Bluetooth Core. Proprietary and confidential. 9** 10*****************************************************************************/ 11#include "nfa_sys.h" 12#include "nfa_sys_int.h" 13 14 15 16 17/******************************************************************************* 18** 19** Function nfa_sys_cback_reg_enable_complete 20** 21** Description Called to register an initialization complete callback function 22** 23** Returns void 24** 25*******************************************************************************/ 26void nfa_sys_cback_reg_enable_complete (tNFA_SYS_ENABLE_CBACK *p_cback) 27{ 28 nfa_sys_cb.p_enable_cback = p_cback; 29 nfa_sys_cb.enable_cplt_flags = 0; 30} 31 32/******************************************************************************* 33** 34** Function nfa_sys_cback_notify_enable_complete 35** 36** Description Called by other NFA subsystems to notify initialization is 37** complete 38** 39** Returns void 40** 41*******************************************************************************/ 42void nfa_sys_cback_notify_enable_complete (UINT8 id) 43{ 44 nfa_sys_cb.enable_cplt_flags |= (0x0001 << id); 45 46 NFA_TRACE_DEBUG2 ("nfa_sys_cback_notify_enable_complete () enable_cplt_flags=0x%x, enable_cplt_mask=0x%x", 47 nfa_sys_cb.enable_cplt_flags, nfa_sys_cb.enable_cplt_mask); 48 49 if ( (nfa_sys_cb.enable_cplt_flags == nfa_sys_cb.enable_cplt_mask) /* except SYS, DM and DTA */ 50 &&(nfa_sys_cb.p_enable_cback) ) 51 { 52 nfa_sys_cb.p_enable_cback (); 53 nfa_sys_cb.p_enable_cback = NULL; 54 } 55} 56 57/******************************************************************************* 58** 59** Function nfa_sys_cback_reg_nfcc_power_mode_proc_complete 60** 61** Description Called to register a callback function for complete of processing 62** NFCC power mode change from NFA sub-systems 63** 64** Returns void 65** 66*******************************************************************************/ 67void nfa_sys_cback_reg_nfcc_power_mode_proc_complete (tNFA_SYS_PROC_NFCC_PWR_MODE_CMPL *p_cback) 68{ 69 nfa_sys_cb.p_proc_nfcc_pwr_mode_cmpl_cback = p_cback; 70 nfa_sys_cb.proc_nfcc_pwr_mode_cplt_flags = 0; 71} 72 73/******************************************************************************* 74** 75** Function nfa_sys_cback_notify_nfcc_power_mode_proc_complete 76** 77** Description Called by other NFA subsystems to notify processing NFCC power 78** mode is complete 79** 80** Returns void 81** 82*******************************************************************************/ 83void nfa_sys_cback_notify_nfcc_power_mode_proc_complete (UINT8 id) 84{ 85 nfa_sys_cb.proc_nfcc_pwr_mode_cplt_flags |= (0x0001 << id); 86 87 NFA_TRACE_DEBUG2 ("nfa_sys_cback_notify_nfcc_power_mode_proc_complete () flags=0x%x, mask=0x%x", 88 nfa_sys_cb.proc_nfcc_pwr_mode_cplt_flags, 89 nfa_sys_cb.proc_nfcc_pwr_mode_cplt_mask); 90 91 if ( (nfa_sys_cb.proc_nfcc_pwr_mode_cplt_flags == nfa_sys_cb.proc_nfcc_pwr_mode_cplt_mask) /* except SYS */ 92 &&(nfa_sys_cb.p_proc_nfcc_pwr_mode_cmpl_cback) ) 93 { 94 nfa_sys_cb.p_proc_nfcc_pwr_mode_cmpl_cback (); 95 nfa_sys_cb.p_proc_nfcc_pwr_mode_cmpl_cback = NULL; 96 } 97} 98