Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 67 additions & 6 deletions config/HAFE/splits.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1766,9 +1766,6 @@ revolution/BTE/stack/btm/btm_devctl.c:
.data start:0x801D1A80 end:0x801D1CDA
.sdata start:0x803308F8 end:0x8033090A

revolution/BTE/stack/gap/gap_conn.c:
.sdata start:0x80330910 end:0x80330918

revolution/BTE/stack/btm/btm_inq.c:
.text start:0x8014038C end:0x80141F58
.data start:0x801D1CE0 end:0x801D1EEA
Expand All @@ -1778,9 +1775,6 @@ revolution/BTE/stack/btm/btm_main.c:
.text start:0x80141F58 end:0x80141FB4
.bss start:0x80324978 end:0x8032713C

revolution/BTE/stack/gap/gap_utils.c:
.bss start:0x80327140 end:0x803274F0

revolution/BTE/stack/btm/btm_pm.c:
.text start:0x80141FB4 end:0x80142C48
.rodata start:0x80197838 end:0x80197848
Expand All @@ -1805,6 +1799,73 @@ revolution/BTE/stack/btu/btu_init.c:
.text start:0x80147CA0 end:0x80147D18
.sdata2 start:0x80333140 end:0x80333146

revolution/BTE/wbt_ext.c:
.text start:0x80147D18 end:0x80147DF8

revolution/BTE/stack/gap/gap_api.c:
.text start:0x80147DF8 end:0x80147E58

revolution/BTE/stack/gap/gap_conn.c:
.text start:0x80147E58 end:0x80148994
.data start:0x801D2CD0 end:0x801D2DA0
.sdata start:0x80330910 end:0x80330918

revolution/BTE/stack/gap/gap_utils.c:
.text start:0x80148994 end:0x80148FB0
.data start:0x801D2DA0 end:0x801D3090
.bss start:0x80327140 end:0x803274F0

revolution/BTE/stack/hcic/hcicmds.c:
.text start:0x80148FB0 end:0x8014B6CC
.rodata start:0x80197858 end:0x80197868

revolution/BTE/stack/hid/hidd_api.c:
.text start:0x8014B6CC end:0x8014B734

revolution/BTE/stack/hid/hidd_conn.c:
.text start:0x8014B734 end:0x8014B7F4
.data start:0x801D3090 end:0x801D30C0

revolution/BTE/stack/hid/hidd_mgmt.c:
.text start:0x8014B7F4 end:0x8014B8BC
.data start:0x801D30C0 end:0x801D30E0
.bss start:0x803274F0 end:0x80327638

revolution/BTE/stack/hid/hidd_pm.c:
.text start:0x8014B8BC end:0x8014BC38

revolution/BTE/stack/hid/hidh_api.c:
.text start:0x8014BC38 end:0x8014C9B8
.data start:0x801D30E0 end:0x801D31F8
.bss start:0x80327638 end:0x80327A3C

revolution/BTE/stack/hid/hidh_conn.c:
.text start:0x8014C9B8 end:0x8014E9F8
.rodata start:0x80197868 end:0x80197890
.data start:0x801D31F8 end:0x801D35E0

revolution/BTE/stack/l2cap/l2c_api.c:
.text start:0x8014E9F8 end:0x8014F5C4
.data start:0x801D35E0 end:0x801D3D70

revolution/BTE/stack/l2cap/l2c_csm.c:
.text start:0x8014F5C4 end:0x80150AA0
.data start:0x801D3D70 end:0x801D45A8

revolution/BTE/stack/l2cap/l2c_link.c:
.text start:0x80150AA0 end:0x80151C2C
.data start:0x801D45A8 end:0x801D4818

revolution/BTE/stack/l2cap/l2c_main.c:
.text start:0x80151C2C end:0x80152C5C
.data start:0x801D4818 end:0x801D4B18
.bss start:0x80327A40 end:0x80328228

revolution/BTE/stack/l2cap/l2c_utils.c:
.text start:0x80152C5C end:0x80154B20
.data start:0x801D4B18 end:0x801D4C00
.sdata start:0x80330918 end:0x80330928

revolution/BTE/stack/rfcomm/port_api.c:
.text start:0x80154B20 end:0x80154B70

Expand Down
267 changes: 171 additions & 96 deletions config/HAFE/symbols.txt

Large diffs are not rendered by default.

30 changes: 19 additions & 11 deletions configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -483,23 +483,31 @@ def MatchingFor(*versions):
Object(Matching, "revolution/BTE/stack/btu/btu_init.c"),
Object(Matching, "revolution/BTE/stack/btu/btu_task.c"),

# BTE/stack/gap (only their data is split so far)
Object(NonMatching, "revolution/BTE/stack/gap/gap_conn.c"),
Object(NonMatching, "revolution/BTE/stack/gap/gap_utils.c"),
# BTE/wbt
Object(Matching, "revolution/BTE/wbt_ext.c"),

# BTE/stack/gap
Object(Matching, "revolution/BTE/stack/gap/gap_api.c"),
Object(Matching, "revolution/BTE/stack/gap/gap_conn.c"),
Object(Matching, "revolution/BTE/stack/gap/gap_utils.c"),

# BTE/stack/hcic
Object(NonMatching, "revolution/BTE/stack/hcic/hcicmds.c"),
Object(Matching, "revolution/BTE/stack/hcic/hcicmds.c", mw_version="GC/3.0a5.2"),

# BTE/stack/hid
Object(NonMatching, "revolution/BTE/stack/hid/hidh_api.c"),
Object(NonMatching, "revolution/BTE/stack/hid/hidh_conn.c"),
Object(Matching, "revolution/BTE/stack/hid/hidd_api.c"),
Object(Matching, "revolution/BTE/stack/hid/hidd_conn.c"),
Object(Matching, "revolution/BTE/stack/hid/hidd_mgmt.c"),
Object(Matching, "revolution/BTE/stack/hid/hidd_pm.c"),
Object(Matching, "revolution/BTE/stack/hid/hidh_api.c"),
Object(Matching, "revolution/BTE/stack/hid/hidh_conn.c"),

# BTE/stack/l2cap
Object(NonMatching, "revolution/BTE/stack/l2cap/l2c_api.c"),
Object(NonMatching, "revolution/BTE/stack/l2cap/l2c_csm.c"),
Object(NonMatching, "revolution/BTE/stack/l2cap/l2c_link.c"),
Object(NonMatching, "revolution/BTE/stack/l2cap/l2c_main.c"),
Object(NonMatching, "revolution/BTE/stack/l2cap/l2c_utils.c"),
Object(Matching, "revolution/BTE/stack/l2cap/l2c_api.c"),
Object(Matching, "revolution/BTE/stack/l2cap/l2c_csm.c"),
Object(Matching, "revolution/BTE/stack/l2cap/l2c_link.c"),
Object(Matching, "revolution/BTE/stack/l2cap/l2c_main.c"),
Object(Matching, "revolution/BTE/stack/l2cap/l2c_utils.c"),

# BTE/stack/rfcomm
Object(Matching, "revolution/BTE/stack/rfcomm/port_api.c"),
Expand Down
4 changes: 2 additions & 2 deletions include/revolution/BTE/include/bt_target.h
Original file line number Diff line number Diff line change
Expand Up @@ -1356,12 +1356,12 @@ and USER_HW_DISABLE_API macros */

/* The maximum number of simultaneous applications that can register with L2CAP. */
#ifndef MAX_L2CAP_CLIENTS
#define MAX_L2CAP_CLIENTS 15
#define MAX_L2CAP_CLIENTS 8
#endif

/* The number of seconds of link inactivity before a link is disconnected. */
#ifndef L2CAP_LINK_INACTIVITY_TOUT
#define L2CAP_LINK_INACTIVITY_TOUT 4
#define L2CAP_LINK_INACTIVITY_TOUT 2
#endif

/* The number of seconds of link inactivity after bonding before a link is disconnected. */
Expand Down
152 changes: 146 additions & 6 deletions include/revolution/BTE/stack/gap/gap_int.h
Original file line number Diff line number Diff line change
@@ -1,17 +1,157 @@
#ifndef GAP_INT_H
#define GAP_INT_H
#ifndef BTE_GAP_INT_H
#define BTE_GAP_INT_H

/* Original source:
* bluedroid <android.googlesource.com/platform/external/bluetooth/bluedroid>
* stack/gap/gap_int.h
*
* NOTE: This file only appears in bluedroid since commit ead3cde.
*/

/******************************************************************************
*
* Copyright (C) 2009-2013 Broadcom Corporation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
******************************************************************************/

/* Includes changes by muff1n1634 and for this repository (KoopTheKoopa) */

#include "bt_target.h"
#include "bt_types.h"
#include "data_types.h"

#include "btm_api.h"
#include "btm_int.h"
#include "gap_api.h"
#include "gki.h"
#include "l2c_api.h"

#define GAP_MAX_BLOCKS 2

#define GAP_MIN_INQUIRY_LENGTH BTM_MIN_INQUIRY_LENGTH
#define GAP_MAX_INQUIRY_LENGTH BTM_MAX_INQUIRY_LENGTH

#define GAP_PER_INQ_MIN_MIN_PERIOD BTM_PER_INQ_MIN_MIN_PERIOD
#define GAP_PER_INQ_MAX_MIN_PERIOD BTM_PER_INQ_MAX_MIN_PERIOD

#define GAP_PER_INQ_MIN_MAX_PERIOD BTM_PER_INQ_MIN_MAX_PERIOD
#define GAP_PER_INQ_MAX_MAX_PERIOD BTM_PER_INQ_MAX_MAX_PERIOD

#ifdef __cplusplus
extern "C" {
extern "C" {
#endif

void gap_proc_btu_event(BT_HDR *p_msg);
typedef UINT8 tGAP_CCB_STATE;
enum
{
GAP_CCB_STATE_IDLE = 0,
GAP_CCB_STATE_LISTENING = 1,
GAP_CCB_STATE_CONN_SETUP = 2,
GAP_CCB_STATE_CFG_SETUP = 3,
GAP_CCB_STATE_CONNECTED = 4, // was 5
};

typedef UINT8 tGAP_CCB_FLAGS;
enum
{
GAP_CCB_FLAGS_THEIR_CFG_DONE = 1 << 1,
GAP_CCB_FLAGS_OUR_CFG_DONE = 1 << 2,
};

typedef struct
{
void *p_data; // 0x00
tGAP_CALLBACK *gap_cback; // 0x04
tGAP_CALLBACK *gap_inq_rslt_cback; // 0x08
UINT16 event; // 0x0c
UINT8 index; // 0x0e
BOOLEAN in_use; // 0x0f
} tGAP_INFO; // size 0x10

typedef struct
{
tGAP_CALLBACK *p_cback; // 0x00
tBTM_INQ_INFO *p_cur_inq; // 0x04
tGAP_FINDADDR_RESULTS results; // 0x08
BOOLEAN in_use; // 0x52
/* 1 byte padding */
} tGAP_FINDADDR_CB; // size 0x54

typedef struct
{
tGAP_CCB_STATE con_state; // 0x00
tGAP_CCB_FLAGS con_flags; // 0x01
UINT8 security_flags; // 0x02
/* 1 byte padding */
UINT16 gap_handle; // 0x04
UINT16 connection_id; // 0x06
BOOLEAN rem_addr_specified; // 0x08
BD_ADDR rem_dev_address; // 0x09
/* 1 byte padding */
UINT16 psm; // 0x10
UINT16 rem_mtu_size; // 0x12
BUFFER_Q rx_queue; // 0x14
tGAP_CONN_CALLBACK *p_callback; // 0x20
tL2CAP_CFG_INFO cfg; // 0x24
} tGAP_CCB; // size 0x60

typedef struct
{
tL2CAP_APPL_INFO reg_info; // 0x000
tGAP_CCB ccb_pool[GAP_MAX_CONNECTIONS]; // 0x028
} tGAP_CONN; // size 0x328

typedef struct
{
tGAP_INFO blk[GAP_MAX_BLOCKS]; // 0x000
tBTM_CMPL_CB *btm_cback[GAP_MAX_BLOCKS]; // 0x020
UINT8 trace_level; // 0x028
/* 3 bytes padding */
tGAP_FINDADDR_CB findaddr_cb; // 0x02c
tBTM_INQ_INFO *cur_inqptr; // 0x080
tGAP_CONN conn; // 0x084
} tGAP_CB; // size 0x3ac

extern tGAP_CB gap_cb;

/* 2006 trace helper: GAP_TRACE(LEVEL, fmt, ...) -> GAP_TRACE_LEVELn(fmt, ...) */
#define GAP_TRACE_CAT(a, b) GAP_TRACE_CAT_(a, b)
#define GAP_TRACE_CAT_(a, b) a##b
#define GAP_TRACE_NARG(...) GAP_TRACE_NARG_(__VA_ARGS__, 6, 5, 4, 3, 2, 1, 0)
#define GAP_TRACE_NARG_(_1, _2, _3, _4, _5, _6, N, ...) N
#define GAP_TRACE_DEC_1 0
#define GAP_TRACE_DEC_2 1
#define GAP_TRACE_DEC_3 2
#define GAP_TRACE_DEC_4 3
#define GAP_TRACE_DEC_5 4
#define GAP_TRACE_DEC_6 5
#define GAP_TRACE(type_, ...) \
GAP_TRACE_CAT(GAP_TRACE_CAT(GAP_TRACE_, type_), \
GAP_TRACE_CAT(GAP_TRACE_DEC_, GAP_TRACE_NARG(__VA_ARGS__)))(__VA_ARGS__)

UINT16 gap_convert_btm_status(tBTM_STATUS btm_status);
void gap_btm_cback0(void *p1);
void gap_btm_cback1(void *p1);
void gap_conn_init(void);
tGAP_INFO *gap_allocate_cb(void);
void gap_inq_results_cb(tBTM_INQ_RESULTS *p_results);
UINT16 gap_find_local_addr_by_name(tBTM_BD_NAME const devname, BD_ADDR bd_addr);
void gap_find_addr_inq_cb(tBTM_INQUIRY_CMPL *p);

#ifdef __cplusplus
}
}
#endif

#endif /* GAP_INT_H */
#endif // BTE_GAP_INT_H
Loading
Loading