1 /****************************************************************************** 2 * 3 * Copyright (C) 2010-2014 Broadcom Corporation 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at: 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 * 17 ******************************************************************************/ 18 19 20 /****************************************************************************** 21 * 22 * Registration/deregistration functions for inter-module callbacks 23 * 24 ******************************************************************************/ 25 #include "nfa_sys.h" 26 #include "nfa_sys_int.h" 27 28 29 30 31 /******************************************************************************* 32 ** 33 ** Function nfa_sys_cback_reg_enable_complete 34 ** 35 ** Description Called to register an initialization complete callback function 36 ** 37 ** Returns void 38 ** 39 *******************************************************************************/ 40 void nfa_sys_cback_reg_enable_complete (tNFA_SYS_ENABLE_CBACK *p_cback) 41 { 42 nfa_sys_cb.p_enable_cback = p_cback; 43 nfa_sys_cb.enable_cplt_flags = 0; 44 } 45 46 /******************************************************************************* 47 ** 48 ** Function nfa_sys_cback_notify_enable_complete 49 ** 50 ** Description Called by other NFA subsystems to notify initialization is 51 ** complete 52 ** 53 ** Returns void 54 ** 55 *******************************************************************************/ 56 void nfa_sys_cback_notify_enable_complete (UINT8 id) 57 { 58 nfa_sys_cb.enable_cplt_flags |= (0x0001 << id); 59 60 NFA_TRACE_DEBUG2 ("nfa_sys_cback_notify_enable_complete () enable_cplt_flags=0x%x, enable_cplt_mask=0x%x", 61 nfa_sys_cb.enable_cplt_flags, nfa_sys_cb.enable_cplt_mask); 62 63 if ( (nfa_sys_cb.enable_cplt_flags == nfa_sys_cb.enable_cplt_mask) 64 &&(nfa_sys_cb.p_enable_cback) ) 65 { 66 nfa_sys_cb.p_enable_cback (); 67 nfa_sys_cb.p_enable_cback = NULL; 68 } 69 } 70 71 /******************************************************************************* 72 ** 73 ** Function nfa_sys_cback_reg_nfcc_power_mode_proc_complete 74 ** 75 ** Description Called to register a callback function for complete of processing 76 ** NFCC power mode change from NFA sub-systems 77 ** 78 ** Returns void 79 ** 80 *******************************************************************************/ 81 void nfa_sys_cback_reg_nfcc_power_mode_proc_complete (tNFA_SYS_PROC_NFCC_PWR_MODE_CMPL *p_cback) 82 { 83 nfa_sys_cb.p_proc_nfcc_pwr_mode_cmpl_cback = p_cback; 84 nfa_sys_cb.proc_nfcc_pwr_mode_cplt_flags = 0; 85 } 86 87 /******************************************************************************* 88 ** 89 ** Function nfa_sys_cback_notify_nfcc_power_mode_proc_complete 90 ** 91 ** Description Called by other NFA subsystems to notify processing NFCC power 92 ** mode is complete 93 ** 94 ** Returns void 95 ** 96 *******************************************************************************/ 97 void nfa_sys_cback_notify_nfcc_power_mode_proc_complete (UINT8 id) 98 { 99 nfa_sys_cb.proc_nfcc_pwr_mode_cplt_flags |= (0x0001 << id); 100 101 NFA_TRACE_DEBUG2 ("nfa_sys_cback_notify_nfcc_power_mode_proc_complete () flags=0x%x, mask=0x%x", 102 nfa_sys_cb.proc_nfcc_pwr_mode_cplt_flags, 103 nfa_sys_cb.proc_nfcc_pwr_mode_cplt_mask); 104 105 if ( (nfa_sys_cb.proc_nfcc_pwr_mode_cplt_flags == nfa_sys_cb.proc_nfcc_pwr_mode_cplt_mask) /* except SYS */ 106 &&(nfa_sys_cb.p_proc_nfcc_pwr_mode_cmpl_cback) ) 107 { 108 nfa_sys_cb.p_proc_nfcc_pwr_mode_cmpl_cback (); 109 nfa_sys_cb.p_proc_nfcc_pwr_mode_cmpl_cback = NULL; 110 } 111 } 112