1b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu/******************************************************************************
2b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu *
3b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu *  Copyright (C) 2010-2012 Broadcom Corporation
4b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu *
5b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu *  Licensed under the Apache License, Version 2.0 (the "License");
6b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu *  you may not use this file except in compliance with the License.
7b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu *  You may obtain a copy of the License at:
8b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu *
9b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu *  http://www.apache.org/licenses/LICENSE-2.0
10b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu *
11b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu *  Unless required by applicable law or agreed to in writing, software
12b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu *  distributed under the License is distributed on an "AS IS" BASIS,
13b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu *  See the License for the specific language governing permissions and
15b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu *  limitations under the License.
16b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu *
17b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu ******************************************************************************/
18b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu
19b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu/******************************************************************************
20b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu *
21b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu *  This is the private interface file for the NFA system manager.
22b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu *
23b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu ******************************************************************************/
2445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#ifndef NFA_SYS_INT_H
2545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define NFA_SYS_INT_H
2645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu
2745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#include "nfa_sys_ptim.h"
2845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu
2945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/*****************************************************************************
3045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu**  Constants and data types
3145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu*****************************************************************************/
3245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu
3345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu
3445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/* nfa_sys flags */
3545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define NFA_SYS_FL_INITIALIZED  0x00000001          /* nfa_sys initialized */
3645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu
3745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/*****************************************************************************
3845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu**  state table
3945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu*****************************************************************************/
4045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu
4145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/* system manager control block */
4245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chutypedef struct
4345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu{
4445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu    UINT32                  flags;                  /* nfa_sys flags (must be first element of structure) */
4545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu    tNFA_SYS_REG            *reg[NFA_ID_MAX];       /* registration structures */
4645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu    BOOLEAN                 is_reg[NFA_ID_MAX];     /* registration structures */
4745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu    tPTIM_CB                ptim_cb;                /* protocol timer list */
4845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu    tNFA_SYS_ENABLE_CBACK   *p_enable_cback;
4945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu    UINT16                  enable_cplt_flags;
5045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu    UINT16                  enable_cplt_mask;
5145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu
5245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu    tNFA_SYS_PROC_NFCC_PWR_MODE_CMPL  *p_proc_nfcc_pwr_mode_cmpl_cback;
5345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu    UINT16                  proc_nfcc_pwr_mode_cplt_flags;
5445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu    UINT16                  proc_nfcc_pwr_mode_cplt_mask;
5545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu
5645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu    BOOLEAN                 graceful_disable;       /* TRUE if NFA_Disable () is called with TRUE */
5745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu    BOOLEAN                 timers_disabled;        /* TRUE if sys timers disabled */
5845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu    UINT8                   trace_level;            /* Trace level */
5945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu} tNFA_SYS_CB;
6045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu
6145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu
6245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu
6345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/*****************************************************************************
6445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu**  Global variables
6545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu*****************************************************************************/
6645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu
6745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/* system manager control block */
6845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#if NFA_DYNAMIC_MEMORY == FALSE
6945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chuextern tNFA_SYS_CB nfa_sys_cb;
7045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#else
7145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chuextern tNFA_SYS_CB *nfa_sys_cb_ptr;
7245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define nfa_sys_cb (*nfa_sys_cb_ptr)
7345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#endif
7445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu
7545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu
7645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/* system manager configuration structure */
7745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chuextern tNFA_SYS_CFG *p_nfa_sys_cfg;
7845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu
7945faad0ff5deeb0c676356345d99398cc4ab695aEvan ChuBOOLEAN nfa_sys_sm_execute (BT_HDR *p_msg);
8045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu
8145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#endif /* NFA_SYS_INT_H */
82