15738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/****************************************************************************** 25738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 35738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Copyright (C) 2002-2012 Broadcom Corporation 45738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 55738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 65738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * you may not use this file except in compliance with the License. 75738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * You may obtain a copy of the License at: 85738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 95738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * See the License for the specific language governing permissions and 155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * limitations under the License. 165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/ 185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/****************************************************************************** 205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * This file contains HID HOST internal definitions 225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/ 245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef HIDH_INT_H 265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HIDH_INT_H 275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "hidh_api.h" 295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "hid_conn.h" 305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "l2c_api.h" 315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectenum { 335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project HID_DEV_NO_CONN, 345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project HID_DEV_CONNECTED 355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}; 365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct per_device_ctb 385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN in_use; 405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BD_ADDR addr; /* BD-Addr of the host device */ 415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 attr_mask; /* 0x01- virtual_cable; 0x02- normally_connectable; 0x03- reconn_initiate; 425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 0x04- sdp_disable; */ 435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 state; /* Device state if in HOST-KNOWN mode */ 445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 conn_substate; 455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 conn_tries; /* Remembers to the number of connection attempts while CONNECTING */ 465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tHID_CONN conn; /* L2CAP channel info */ 485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tHID_HOST_DEV_CTB; 495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct host_ctb 515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tHID_HOST_DEV_CTB devices[HID_HOST_MAX_DEVICES]; 535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tHID_HOST_DEV_CALLBACK *callback; /* Application callbacks */ 545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tL2CAP_CFG_INFO l2cap_cfg; 555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MAX_SERVICE_DB_SIZE 4000 575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN sdp_busy; 595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tHID_HOST_SDP_CALLBACK *sdp_cback; 605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tSDP_DISCOVERY_DB *p_sdp_db; 615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tHID_DEV_SDP_INFO sdp_rec; 625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN reg_flag; 635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 trace_level; 645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tHID_HOST_CTB; 655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern tHID_STATUS hidh_conn_snd_data(UINT8 dhandle, UINT8 trans_type, UINT8 param, \ 675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 data,UINT8 rpt_id, BT_HDR *buf); 685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern tHID_STATUS hidh_conn_reg (void); 695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void hidh_conn_dereg( void ); 705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern tHID_STATUS hidh_conn_disconnect (UINT8 dhandle); 715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern tHID_STATUS hidh_conn_initiate (UINT8 dhandle); 725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void hidh_proc_repage_timeout (TIMER_LIST_ENT *p_tle); 735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifdef __cplusplus 755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern "C" 765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/****************************************************************************** 805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Main Control Block 815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if HID_DYNAMIC_MEMORY == FALSE 835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHID_API extern tHID_HOST_CTB hh_cb; 845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#else 855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHID_API extern tHID_HOST_CTB *hidh_cb_ptr; 865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define hh_cb (*hidh_cb_ptr) 875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifdef __cplusplus 905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 95