123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575 |
- #ifndef LL_DEF_H_
- #define LL_DEF_H_
- #include "types.h"
- #include "comdef.h"
- #include "bcomdef.h"
- #include "ll_buf.h"
- #if (MAX_NUM_LL_CONN_ROM_LIMT > 1)
- #define MULTI_ROLE
- #endif
- #define MAX_NUM_LL_PRD_ADV_SYNC 2
- #define LL_INVALID_CONNECTION_ID 0xFF
- #define LL_PKT_PREAMBLE_LEN 1
- #define LL_PKT_SYNCH_LEN 4
- #define LL_PKT_LLID_LEN 1
- #define LL_PKT_HDR_LEN 2
- #define LL_PKT_MIC_LEN 4
- #define LL_PKT_CRC_LEN 3
- #define LL_DATA_PDU_HDR_LLID_RESERVED 0
- #define LL_DATA_PDU_HDR_LLID_DATA_PKT_NEXT 1
- #define LL_DATA_PDU_HDR_LLID_DATA_PKT_FIRST 2
- #define LL_DATA_PDU_HDR_LLID_CONTROL_PKT 3
- #define PDU_TYPE_SHIFT 0
- #define PDU_TYPE_MASK 0xf
- #define CHSEL_SHIFT 5
- #define CHSEL_MASK 0x20
- #define TX_ADD_SHIFT 6
- #define TX_ADD_MASK 0x40
- #define RX_ADD_SHIFT 7
- #define RX_ADD_MASK 0x80
- #define LENGTH_SHIFT 8
- #define LENGTH_MASK 0xFf00
- #define SET_BITS(p,f,l,m) p=(f<<l) | (p & (~m))
- #define GET_BITS(p,l,m) (p&m)>>l
- #define LL_RX_FLOW_CONTROL_DISABLED 0
- #define LL_RX_FLOW_CONTROL_ENABLED 1
- #define ADV_IND 0
- #define ADV_DIRECT_IND 1
- #define ADV_NONCONN_IND 2
- #define ADV_SCAN_REQ 3
- #define ADV_AUX_SCAN_REQ 3
- #define ADV_SCAN_RSP 4
- #define ADV_CONN_REQ 5
- #define ADV_AUX_CONN_REQ 5
- #define ADV_SCAN_IND 6
- #define ADV_EXT_TYPE 7
- #define ADV_AUX_CONN_RSP 8
- #define LL_STATE_IDLE 0x00
- #define LL_STATE_ADV_UNDIRECTED 0x01
- #define LL_STATE_ADV_DIRECTED 0x02
- #define LL_STATE_ADV_SCAN 0x03
- #define LL_STATE_ADV_NONCONN 0x04
- #define LL_STATE_SCAN 0x05
- #define LL_STATE_INIT 0x06
- #define LL_STATE_CONN_SLAVE 0x07
- #define LL_STATE_CONN_MASTER 0x08
- #define LL_STATE_DIRECT_TEST_MODE_TX 0x09
- #define LL_STATE_DIRECT_TEST_MODE_RX 0x0A
- #define LL_STATE_MODEM_TEST_TX 0x0B
- #define LL_STATE_MODEM_TEST_RX 0x0C
- #define LL_STATE_MODEM_TEST_TX_FREQ_HOPPING 0x0D
- #define LL_STATE_ADV_EXT 0x0E
- #define LL_STATE_ADV_PERIODIC 0x0F
- #define LL_MAX_NUM_DATA_BUFFERS 12
- #define LL_MAX_NUM_CMD_BUFFERS 1
- #define LL_ADV_CONN_INTERVAL_MIN 32
- #define LL_ADV_CONN_INTERVAL_MAX 16384
- #define LL_ADV_NONCONN_INTERVAL_MIN 160
- #define LL_ADV_NONCONN_INTERVAL_MAX 16384
- #define LL_ADV_V51_NONCONN_INTERVAL_MIN 32
- #define LL_ADV_DELAY_MIN 0
- #define LL_ADV_DELAY_MAX 10
- #define LL_SCAN_INTERVAL_MIN 4
- #define LL_SCAN_INTERVAL_MAX 16384
- #define LL_SCAN_WINDOW_MIN 4
- #define LL_SCAN_WINDOW_MAX 16384
- #define LL_CONN_INTERVAL_MIN 6
- #define LL_CONN_INTERVAL_MAX 3200
- #define LL_CONN_TIMEOUT_MIN 10
- #define LL_CONN_TIMEOUT_MAX 3200
- #define LL_SLAVE_LATENCY_MIN 0
- #define LL_SLAVE_LATENCY_MAX 499
- #define LL_HOP_LENGTH_MIN 5
- #define LL_HOP_LENGTH_MAX 16
- #define LL_INSTANT_NUMBER_MIN 6
- #define LL_ADV_INTERVAL_DEFAULT 160
- #define LL_SCAN_INTERVAL_DEFAULT 640
- #define LL_ADV_CHAN_37 1
- #define LL_ADV_CHAN_38 2
- #define LL_ADV_CHAN_39 4
- #define LL_ADV_CHAN_ALL (LL_ADV_CHAN_37 | LL_ADV_CHAN_38 | LL_ADV_CHAN_39)
- #define LL_MAX_NUM_DATA_CHAN 37
- #define ADV_SYNCH_WORD 0x8E89BED6
- #define ADV_CRC_INIT_VALUE 0x00555555
- #define LL_DEVICE_ADDR_LEN 6
- #define LL_MAX_ADV_DATA_LEN 31
- #define LL_MAX_ADV_PAYLOAD_LEN (LL_DEVICE_ADDR_LEN + LL_MAX_ADV_DATA_LEN)
- #define LL_MAX_SCAN_DATA_LEN 31
- #define LL_MAX_SCAN_PAYLOAD_LEN (LL_DEVICE_ADDR_LEN + LL_MAX_SCAN_DATA_LEN)
- #define LL_MAX_LINK_DATA_LEN 27
-
- #define LL_SEC_STATE_IDLE 0x00
- #define LL_SEC_STATE_SCAN 0x01
- #define LL_SEC_STATE_ADV 0x02
- #define LL_SEC_STATE_SCAN_PENDING 0x03
- #define LL_SEC_STATE_ADV_PENDING 0x04
- #define LL_SEC_STATE_IDLE_PENDING 0x05
- #define LL_SEC_STATE_INIT 0x06
- #define LL_SEC_STATE_INIT_PENDING 0x07
- #define LL_ROLE_SLAVE 0x01
- #define LL_ROLE_MASTER 0x02
- #define LL_ROLE_INVALID 0xFF
- #define LL_INVALID_TIME 0xFFFFFFFF
- #define LL_TASK_MASTER_DURATION 3000
- #define LL_TASK_SLAVE_DURATION 2700
- enum
- {
- LL_SCH_PRIO_LOW = 0,
- LL_SCH_PRIO_MED,
- LL_SCH_PRIO_HIGH,
- LL_SCH_PRIO_IMMED,
- LL_SCH_PRIO_LAST
- };
- #define LL_CTE_MAX_ANTENNA_LEN 8
- #define LL_CTE_MAX_ANT_ID (LL_CTE_MAX_ANTENNA_LEN - 1)
- #define LL_CTE_MAX_PATTERN_LEN 16
- #define LL_CTE_MIN_SUPP_LEN 0x2
- #define LL_CTE_MAX_SUPP_LEN 0x14
- #define LL_CTE_SUPP_LEN_UNIT 0x08
- #define LL_CTE_MAX_PA_INTV_CNT 0x10
- #define LL_CTE_MAX_IQ_SAMP_CNT 0x10
- #define LL_CTE_ENABLE 0x1
- #define LL_CTE_DISABLE 0x0
- #define LL_IQ_SAMP_ENABLE 0x1
- #define LL_IQ_SAMP_DISABLE 0x0
- #define LL_CONN_IQSAMP_ENABLE 0x1
- #define LL_CONN_IQSAMP_DISENABLE 0x0
- #define LL_CONN_IQTX_ENABLE 0x1
- #define LL_CONN_IQTX_DISENABLE 0x0
- #define LL_CONN_CTE_REQ_ENABLE 0x1
- #define LL_CONN_CTE_REQ_DISENABLE 0x0
- #define LL_CONN_CTE_RSP_ENABLE 0x1
- #define LL_CONN_CTE_RSP_DISENABLE 0x0
- #define LL_IQ_SW_SAMP_1US 0x1
- #define LL_IQ_SW_SAMP_2US 0x2
- #define LL_CONTROLLER_SUPP_1US_AOD_TX 0x1
- #define LL_CONTROLLER_SUPP_1US_AOD_SAMP 0x2
- #define LL_CONTROLLER_SUPP_1US_AOA_TX_SAMP 0x4
- #define LL_SECOND_ADV_PHY_1M 0x1
- #define LL_SECOND_ADV_PHY_2M 0x2
- #define LL_SECOND_ADV_PHY_CODE 0x3
- #define LL_PHY_1M 0x1
- #define LL_PHY_2M 0x2
- #define LL_PHY_CODE 0x3
- #define LL_CONNECTION_UPDATE_REQ 0
- #define LL_CHANNEL_MAP_REQ 1
- #define LL_TERMINATE_IND 2
- #define LL_ENC_REQ 3
- #define LL_ENC_RSP 4
- #define LL_START_ENC_REQ 5
- #define LL_START_ENC_RSP 6
- #define LL_UNKNOWN_RSP 7
- #define LL_FEATURE_REQ 8
- #define LL_FEATURE_RSP 9
- #define LL_PAUSE_ENC_REQ 10
- #define LL_PAUSE_ENC_RSP 11
- #define LL_VERSION_IND 12
- #define LL_REJECT_IND 13
- #define LL_SLAVE_FEATURE_REQ 14
- #define LL_CONNECTION_PARAM_REQ 15
- #define LL_CONNECTION_PARAM_RSP 16
- #define LL_REJECT_IND_EXT 17
- #define LL_PING_REQ 18
- #define LL_PING_RSP 19
- #define LL_LENGTH_REQ 20
- #define LL_LENGTH_RSP 21
- #define LL_PHY_REQ 22
- #define LL_PHY_RSP 23
- #define LL_PHY_UPDATE_IND 24
- #define LL_CONNECT_REQ_PAYLOAD_LEN 18
- #define LL_CONN_UPDATE_REQ_PAYLOAD_LEN 12
- #define LL_CHAN_MAP_REQ_PAYLOAD_LEN 8
- #define LL_TERM_IND_PAYLOAD_LEN 2
- #define LL_ENC_REQ_PAYLOAD_LEN 23
- #define LL_ENC_RSP_PAYLOAD_LEN 13
- #define LL_START_ENC_REQ_PAYLOAD_LEN 1
- #define LL_START_ENC_RSP_PAYLOAD_LEN 1
- #define LL_PAUSE_ENC_REQ_PAYLOAD_LEN 1
- #define LL_PAUSE_ENC_RSP_PAYLOAD_LEN 1
- #define LL_REJECT_IND_PAYLOAD_LEN 2
- #define LL_REJECT_EXT_IND_PAYLOAD_LEN 3
- #define LL_FEATURE_REQ_PAYLOAD_LEN 9
- #define LL_FEATURE_RSP_PAYLOAD_LEN 9
- #define LL_VERSION_IND_PAYLOAD_LEN 6
- #define LL_UNKNOWN_RSP_PAYLOAD_LEN 2
- #define LL_LENGTH_REQ_PAYLOAD_LEN 9
- #define LL_LENGTH_RSP_PAYLOAD_LEN 9
- #define LL_PHY_REQ_PAYLOAD_LEN 3
- #define LL_PHY_RSP_PAYLOAD_LEN 3
- #define LL_PHY_UPDATE_IND_PAYLOAD_LEN 5
- #define LL_CTE_REQ_LEN 2
- #define LL_CTE_RSP_LEN 1
- #define LL_MAX_NUM_CTRL_PROC_PKTS 4
- #define LL_CTRL_UNDEFINED_PKT 0xFF
- #define LL_EVT_POST_PROCESS_NR 0x0001
- #define LL_EVT_DIRECTED_ADV_FAILED 0x0002
- #define LL_EVT_SLAVE_CONN_CREATED 0x0004
- #define LL_EVT_NEXT_INTERVAL 0x0008
- #define LL_EVT_MASTER_CONN_CANCELLED 0x0010
- #define LL_EVT_TASK_TIMER_FENCE_EXPIRED 0x0020
- #define LL_EVT_SLAVE_CONN_CREATED_BAD_PARAM 0x0040
- #define LL_EVT_START_32KHZ_XOSC_DELAY 0x0080
- #define LL_EVT_32KHZ_XOSC_DELAY 0x0100
- #define LL_EVT_RESET_SYSTEM_HARD 0x0200
- #define LL_EVT_RESET_SYSTEM_SOFT 0x0400
- #define LL_EVT_MASTER_CONN_CREATED 0x0800
- #define LL_EVT_SECONDARY_SCAN 0x1000
- #define LL_EVT_SECONDARY_ADV 0x2000
- #define LL_EVT_SECONDARY_INIT 0x4000
- #define LL_EVT_RPA_TIMEOUT 0x8000
- #define LL_ADV_NONCONN_STATE 0x00
- #define LL_ADV_DISCOV_STATE 0x01
- #define LL_ADV_UNDIRECT_STATE 0x02
- #define LL_ADV_HDC_DIRECT_STATE 0x03
- #define LL_SCAN_PASSIVE_STATE 0x04
- #define LL_SCAN_ACTIVE_STATE 0x05
- #define LL_INIT_STATE 0x06
- #define LL_SLAVE_STATE 0x07
- #define LL_ADV_NONCONN_SCAN_PASSIVE_STATE 0x10
- #define LL_ADV_DISCOV_SCAN_PASSIVE_STATE 0x11
- #define LL_ADV_UNDIRECT_SCAN_PASSIVE_STATE 0x12
- #define LL_ADV_HDC_DIRECT_SCAN_PASSIVE_STATE 0x13
- #define LL_ADV_NONCONN_SCAN_ACTIVE_STATE 0x14
- #define LL_ADV_DISCOV_SCAN_ACTIVE_STATE 0x15
- #define LL_ADV_UNDIRECT_SCAN_ACTIVE_STATE 0x16
- #define LL_ADV_HDC_DIRECT_SCAN_ACTIVE_STATE 0x17
- #define LL_ADV_NONCONN_INIT_STATE 0x20
- #define LL_ADV_DISCOV_INIT_STATE 0x21
- #define LL_ADV_NONCONN_MASTER_STATE 0x22
- #define LL_ADV_DISCOV_MASTER_STATE 0x23
- #define LL_ADV_NONCONN_SLAVE_STATE 0x24
- #define LL_ADV_DISCOV_SLAVE_STATE 0x25
- #define LL_SCAN_PASSIVE_INIT_STATE 0x26
- #define LL_SCAN_ACTIVE_INIT_STATE 0x27
- #define LL_SCAN_PASSIVE_MASTER_STATE 0x30
- #define LL_SCAN_ACTIVE_MASTER_STATE 0x31
- #define LL_SCAN_PASSIVE_SLAVE_STATE 0x32
- #define LL_SCAN_ACTIVE_SLAVE_STATE 0x33
- #define LL_INIT_MASTER_STATE 0x34
- #define LL_ADV_LDC_DIRECT_STATE 0x35
- #define LL_ADV_LDC_DIRECT_SCAN_PASSIVE_STATE 0x36
- #define LL_ADV_LDC_DIRECT_SCAN_ACTIVE_STATE 0x37
- #define HCI_RX_PKT_HDR_SIZE 5
- #define LL_NUM_BYTES_FOR_CHAN_MAP 5
- #define LL_CTRL_PROC_STATUS_SUCCESS 0
- #define LL_CTRL_PROC_STATUS_TERMINATE 1
- #define LL_PROC_LINK_KEEP 0
- #define LL_PROC_LINK_TERMINATE 1
- #define LL_TX_DATA_CONTEXT_POST_PROCESSING 2
- #define LL_TX_DATA_CONTEXT_SEND_DATA 0
- #define LL_LINK_SETUP_TIMEOUT 5
- #define LL_SETUP_NEXT_LINK_STATUS_SUCCESS 0
- #define LL_SETUP_NEXT_LINK_STATUS_TERMINATE 1
- #define LL_CTRL_CONNECTION_UPDATE_REQ 0
- #define LL_CTRL_CHANNEL_MAP_REQ 1
- #define LL_CTRL_TERMINATE_IND 2
- #define LL_CTRL_ENC_REQ 3
- #define LL_CTRL_ENC_RSP 4
- #define LL_CTRL_START_ENC_REQ 5
- #define LL_CTRL_START_ENC_RSP 6
- #define LL_CTRL_UNKNOWN_RSP 7
- #define LL_CTRL_FEATURE_REQ 8
- #define LL_CTRL_FEATURE_RSP 9
- #define LL_CTRL_PAUSE_ENC_REQ 10
- #define LL_CTRL_PAUSE_ENC_RSP 11
- #define LL_CTRL_VERSION_IND 12
- #define LL_CTRL_REJECT_IND 13
- #define LL_CTRL_SLAVE_FEATURE_REQ 14
- #define LL_CTRL_CONNECTION_PARAM_REQ 15
- #define LL_CTRL_CONNECTION_PARAM_RSP 16
- #define LL_CTRL_REJECT_EXT_IND 17
- #define LL_CTRL_PING_REQ 18
- #define LL_CTRL_PING_RSP 19
- #define LL_CTRL_LENGTH_REQ 20
- #define LL_CTRL_LENGTH_RSP 21
- #define LL_CTRL_PHY_REQ 22
- #define LL_CTRL_PHY_RSP 23
- #define LL_CTRL_PHY_UPDATE_IND 24
- #define LL_CTRL_MIN_USED_CHANNELS_IND 25
- #define LL_CTRL_TERMINATE_RX_WAIT_FOR_TX_ACK 0xFE
- #define LL_CTRL_CTE_REQ 0x1A
- #define LL_CTRL_CTE_RSP 0x1B
- #define LL_MAX_CTRL_PROC_TIMEOUT 64000
-
- #define LL_ENC_RAND_LEN 8
- #define LL_ENC_EDIV_LEN 2
- #define LL_ENC_LTK_LEN 16
- #define LL_ENC_IRK_LEN 16
- #define LL_ENC_IV_M_LEN 4
- #define LL_ENC_IV_S_LEN 4
- #define LL_ENC_IV_LINK_LEN 4
- #define LL_ENC_IV_LEN (LL_ENC_IV_M_LEN + LL_ENC_IV_S_LEN)
- #define LL_ENC_SKD_M_LEN 8
- #define LL_ENC_SKD_S_LEN 8
- #define LL_ENC_SKD_LINK_LEN 8
- #define LL_ENC_SKD_LEN (LL_ENC_SKD_M_LEN + LL_ENC_SKD_S_LEN)
- #define LL_ENC_SK_LEN 16
- #define LL_ENC_NONCE_LEN 13
- #define LL_END_NONCE_IV_OFFSET 5
- #define LL_ENC_MIC_LEN LL_PKT_MIC_LEN
- #define LL_ENC_IV_M_OFFSET LL_ENC_IV_S_LEN
- #define LL_ENC_IV_S_OFFSET 0
- #define LL_ENC_SKD_M_OFFSET LL_ENC_SKD_S_LEN
- #define LL_ENC_SKD_S_OFFSET 0
- #define LL_ENC_BLOCK_LEN 16
- #define LL_ENC_CCM_BLOCK_LEN LL_ENC_BLOCK_LEN
- #define LL_ENC_BLOCK_B0_FLAGS 0x49
- #define LL_ENC_BLOCK_A0_FLAGS 0x01
- #define LEN_24BIT 3
- #define PRAND_SIZE LEN_24BIT
- #define RANDOM_ADDR_HDR 0xC0
- #define STATIC_ADDR_HDR 0xC0
- #define PRIVATE_RESOLVE_ADDR_HDR 0x40
- #define LL_MAX_ADVERTISER_SET_LENGTH 0x672
- #define LL_INVALID_ADV_SET_HANDLE 0xFF
- #define LL_SCAN_ADV_CHAN_37 37
- #define LL_SCAN_ADV_CHAN_38 38
- #define LL_SCAN_ADV_CHAN_39 39
- #define LL_WHITELIST_ENTRY_NUM 8
- #define LL_RESOLVINGLIST_ENTRY_NUM 8
- struct bd_addr{
- uint8_t addr[6];
- };
- typedef struct
- {
- uint8_t peerAddrType;
- uint8_t peerAddr[ 6 ];
- } peerInfo_t;
- typedef struct
- {
- uint8_t localIrk[16];
- uint8_t peerIrk[16];
- uint8_t peerAddrType;
- uint8_t peerAddr[ 6 ];
- } resolvingListInfo_t;
- typedef struct
- {
- uint8_t active;
-
- uint16_t advInterval;
-
- uint16_t advMode;
-
- uint8_t ownAddrType;
- uint8_t ownAddr[LL_DEVICE_ADDR_LEN];
-
- uint8_t advChanMap;
-
- uint8_t advEvtType;
-
- uint8_t wlPolicy;
- uint16_t scaValue;
- uint8_t advDataLen;
-
-
- uint8_t scanRspLen;
-
-
- uint8 advNextChan;
-
- uint8 connId;
-
- }advInfo_t;
- typedef struct
- {
- uint8_t advertisingSID;
-
- uint16_t advEventProperties;
- uint32_t priAdvIntMin;
- uint32_t priAdvgIntMax;
-
- uint8_t priAdvChnMap;
- uint8_t ownAddrType;
- uint8_t isOwnRandomAddressSet;
- uint8_t ownRandomAddress[LL_DEVICE_ADDR_LEN];
- uint8_t peerAddrType;
- uint8_t peerAddress[LL_DEVICE_ADDR_LEN];
- uint8_t wlPolicy;
-
- uint8_t advTxPower;
-
- uint8_t primaryAdvPHY;
- uint8_t secondaryAdvPHY;
-
- uint8_t secondaryAdvMaxSkip;
-
- uint8_t scanReqNotificationEnable;
- }extAdvParameter_t;
- typedef struct
- {
- uint8_t dataComplete;
- uint8 fragmentPreference;
-
- uint16 advertisingDataLength;
- uint8 *advertisingData;
-
- uint16 DIDInfo;
- }advSetData_t;
- typedef struct
- {
- uint8_t advHandle;
- extAdvParameter_t parameter;
- advSetData_t data;
- uint16 scanRspMaxLength;
- uint8 *scanRspData;
-
- uint32_t duration;
- uint8_t maxExtAdvEvents;
-
- uint8_t isPeriodic;
- uint8_t active;
- uint32_t primary_advertising_interval;
-
- uint16_t adv_event_counter;
- uint32_t adv_event_duration;
- uint8_t tx_power;
- uint8_t sendingAuxAdvInd;
-
- uint8_t currentChn;
- uint8_t auxChn;
- uint16_t currentAdvOffset;
- } extAdvInfo_t;
- typedef struct
- {
- uint16 syncPacketOffset : 13;
- uint16 offsetUnit : 1;
- uint16 offsetAdj : 1;
- uint16 rfu : 1;
- } syncInfoOffset_t;
- typedef struct
- {
- uint8 chn_map : 5;
- uint8 sca : 3;
- } chanMap4_t;
-
- typedef struct
- {
- syncInfoOffset_t offset;
- uint16 interval;
- uint8 chn_map[4];
- chanMap4_t chn_map4;
- uint8 AA[4];
- uint8 crcInit[3];
- uint16 event_counter;
- } syncInfo_t;
- typedef struct
- {
- uint8 dataComplete;
-
- uint16 advertisingDataLength;
- uint8 *advertisingData;
- }periodicAdvSetData_t;
- typedef struct
- {
-
- uint8 enable;
- uint8 CTE_Length;
- uint8 CTE_Type;
- uint8 CTE_Count;
-
- uint8 CTE_Count_Idx;
- uint8 pattern_LEN;
- uint8 AntID[LL_CTE_MAX_PATTERN_LEN];
- uint8 slot_Duration;
-
-
-
-
- uint16 CTE_Request_Intv;
-
- }CTEInfo_t;
- typedef struct
- {
- uint8_t advHandle;
- periodicAdvSetData_t data;
- uint16 adv_interval_min;
- uint16 adv_interval_max;
- uint16_t adv_event_properties;
-
- uint8_t active;
- uint32_t adv_interval;
- uint8_t secondaryAdvPHY;
- uint8 chn_map[5];
- uint8_t chanMapTable[LL_MAX_NUM_DATA_CHAN];
- uint8_t numUsedChans;
- uint8 sca;
- uint32 AA;
- uint32 crcInit;
- uint8_t tx_power;
-
- uint16_t periodic_adv_event_counter;
- uint8 pa_current_chn;
- uint8_t currentChn;
- uint16_t currentAdvOffset;
-
- CTEInfo_t PrdCTEInfo;
- } periodicAdvInfo_t;
- typedef struct
- {
- uint8 ownAddrType;
- uint8 ownAddr[ LL_DEVICE_ADDR_LEN ];
- uint8 initPending;
- uint8 scanMode;
- uint8 scanType;
- uint16 scanInterval;
- uint16 scanWindow;
- uint8 wlPolicy;
- uint8 filterReports;
- uint16 scanBackoffUL;
- uint8 nextScanChan;
- uint8 numSuccess;
- uint8 numFailure;
- uint16 currentBackoff;
- } scanInfo_t;
- #define LL_MAX_EXTENDED_SCAN_PHYS 2
- #define LL_MAX_EXTENDED_INIT_PHYS 3
- #define LL_SCAN_PHY_1M_BITMASK 0x01
- #define LL_CONN_PHY_2M_BITMASK 0x02
- #define LL_SCAN_PHY_CODED_BITMASK 0x04
- typedef struct
- {
- uint8 enable;
- uint8 ownAddrType;
- uint8 ownAddr[ LL_DEVICE_ADDR_LEN ];
- uint8 wlPolicy;
- uint8 numOfScanPHY;
- uint8 scanPHYs[LL_MAX_EXTENDED_SCAN_PHYS];
- uint8 scanType[LL_MAX_EXTENDED_SCAN_PHYS];
- uint16 scanInterval[LL_MAX_EXTENDED_SCAN_PHYS];
- uint16 scanWindow[LL_MAX_EXTENDED_SCAN_PHYS];
- uint8 filterDuplicate;
- uint16 duration;
- uint16 period;
-
- uint8 current_index;
- uint8 current_scan_PHY;
- uint8 current_chn;
- uint16 adv_data_offset;
- uint16 adv_data_buf_len;
- uint8 *adv_data;
- } extScanInfo_t;
- typedef struct
- {
- uint8 valid;
- uint8 options;
- uint8 advertising_SID;
- uint8 advertiser_Address_Type;
- uint8 advertiser_Address[LL_DEVICE_ADDR_LEN];
- uint16 skip;
- uint16 sync_Timeout;
- uint8 sync_CTE_Type;
- } scannerSyncInfo_t;
- typedef struct
- {
- uint8 header;
- uint8 advA[LL_DEVICE_ADDR_LEN];
- uint8 targetA[LL_DEVICE_ADDR_LEN];
- uint8 cteInfo;
- uint16 adi;
- struct
- {
- uint8 chn_idx;
- uint8 ca;
- uint8 offset_unit;
- uint16 aux_offset;
- uint8 aux_phy;
- } auxPtr;
- uint8 syncInfo[18];
- uint8 txPower;
- } extAdvHdr_t;
- typedef struct
- {
- uint8 ownAddrType;
- uint8 ownAddr[ LL_DEVICE_ADDR_LEN ];
-
- uint8 initPending;
- uint8 scanMode;
- uint16 scanInterval;
- uint16 scanWindow;
- uint8 nextScanChan;
- uint8 wlPolicy;
- uint8 connId;
- uint8 scaValue;
- } initInfo_t;
- typedef struct
- {
- uint8 ownAddrType;
- uint8 ownAddr[ LL_DEVICE_ADDR_LEN ];
- uint8 wlPolicy;
- uint8 scanMode;
-
- uint8 numOfScanPHY;
- uint8 initPHYs[LL_MAX_EXTENDED_SCAN_PHYS];
- uint16 scanInterval[LL_MAX_EXTENDED_SCAN_PHYS];
- uint16 scanWindow[LL_MAX_EXTENDED_SCAN_PHYS];
- uint16 conn_interval_min[LL_MAX_EXTENDED_SCAN_PHYS];
- uint16 conn_interval_max[LL_MAX_EXTENDED_SCAN_PHYS];
- uint16 conn_latency[LL_MAX_EXTENDED_SCAN_PHYS];
- uint16 supervision_timeout[LL_MAX_EXTENDED_SCAN_PHYS];
- uint16 minimum_CE_length[LL_MAX_EXTENDED_SCAN_PHYS];
- uint16 maximum_CE_length[LL_MAX_EXTENDED_SCAN_PHYS];
-
- uint8 is_2M_parameter_present;
- uint16 conn_interval_min_2Mbps;
- uint16 conn_interval_max_2Mbps;
- uint16 conn_latency_2Mbps;
- uint16 supervision_timeout_2Mbps;
- uint16 minimum_CE_length_2Mbps;
- uint16 maximum_CE_length_2Mbps;
-
- uint8 current_index;
- uint8 current_scan_PHY;
- uint8 current_chn;
-
- uint8 connId;
- uint8 scaValue;
- } extInitInfo_t;
- typedef struct
- {
- uint8_t winSize;
- uint16_t winOffset;
- uint16_t connInterval;
- uint16_t slaveLatency;
- uint16_t connTimeout;
- } connParam_t;
- typedef struct
- {
- uint8_t verNum;
- uint16_t comId;
- uint16_t subverNum;
- } verInfo_t;
- typedef struct
- {
- uint8_t connId;
- uint8_t termIndRcvd;
- uint8_t reason;
- } termInfo_t;
- typedef struct txData_t
- {
- struct txData_t *pNext;
- } txData_t;
- typedef struct
- {
- txData_t *head;
- txData_t *tail;
- } llDataQ_t;
- typedef struct
- {
- uint8_t peerInfoValid;
- uint8_t hostRequest;
- uint8_t verInfoSent;
- } verExchange_t;
- typedef struct
- {
- uint8_t featureRspRcved;
- uint8_t featureSet[ 8 ];
- } featureSet_t;
- typedef struct
- {
- uint8_t chanMap[ 5 ];
- } chanMap_t;
- typedef struct
- {
- uint8_t ctrlPktActive;
- uint8_t ctrlPkts[ LL_MAX_NUM_CTRL_PROC_PKTS ];
- uint8_t ctrlPktCount;
- uint16_t ctrlTimeoutVal;
- uint16_t ctrlTimeout;
- } ctrlPktInfo_t;
- typedef struct
- {
- uint16_t MaxTxOctets;
- uint16_t MaxTxTime;
- uint16_t MaxRxOctets;
- uint16_t MaxRxTime;
- }ll_pdu_length_ctrl_t;
- typedef struct
- {
- ll_pdu_length_ctrl_t local;
- ll_pdu_length_ctrl_t remote;
- ll_pdu_length_ctrl_t suggested;
- uint8_t isProcessingReq;
- uint8_t isWatingRsp;
- uint8_t isChanged;
- uint8_t dummy[1];
- }llPduLenManagment_t;
- typedef struct
- {
- uint8_t allPhy;
- uint8_t txPhy;
- uint8_t rxPhy;
- uint8_t dummy[1];
- }ll_phy_ctrl_t;
- typedef struct
- {
- uint8_t m2sPhy;
- uint8_t s2mPhy;
- uint16_t instant;
- }ll_phy_update_ind_t;
- typedef struct
- {
- ll_phy_ctrl_t def;
- ll_phy_ctrl_t local;
- ll_phy_ctrl_t req;
- ll_phy_ctrl_t rsp;
- uint16_t phyOptions;
- uint8_t isChanged;
- uint8_t isProcessingReq;
- uint8_t isWatingRsp;
- uint8_t status;
- uint8_t dummy[2];
- }llPhyModeManagment_t;
- typedef struct
- {
- uint8_t isChanged;
- uint8_t isProcessingReq;
- uint8_t isWatingRsp;
- uint8_t errorCode;
- }llCTEModeManagement_t;
- typedef struct
- {
- uint32 coarse;
- uint16 fine;
- } sysTime_t;
- typedef struct
- {
-
-
-
- uint8 IV[ LL_ENC_IV_LEN ];
- uint8 SKD [ LL_ENC_SKD_LEN ];
- uint8 RAND[ LL_ENC_RAND_LEN ];
- uint8 EDIV[ LL_ENC_EDIV_LEN ];
- uint8 nonce[ LL_ENC_NONCE_LEN ];
- uint8 SK[ LL_ENC_SK_LEN ];
- uint8 LTK[ LL_ENC_LTK_LEN ];
- uint8 SKValid;
- uint8 LTKValid;
- uint32 txPktCount;
- uint32 rxPktCount;
- uint8 encRestart;
- uint8 encRejectErrCode;
-
-
- uint8 startEncRspRcved;
- uint8 pauseEncRspRcved;
- uint8 encReqRcved;
- uint8 startEncReqRcved;
- uint8 rejectIndRcved;
- } encInfo_t;
- typedef struct
- {
- uint16 numPkts;
- uint16 numCrcErr;
- uint16 numEvents;
- uint16 numMissedEvts;
- } perInfo_t;
- typedef struct
- {
-
- int ll_send_undirect_adv_cnt;
- int ll_send_nonconn_adv_cnt;
- int ll_send_scan_adv_cnt;
- int ll_send_hdc_dir_adv_cnt;
- int ll_send_ldc_dir_adv_cnt;
-
- int ll_send_conn_adv_cnt;
- int ll_conn_adv_pending_cnt;
-
- int ll_conn_scan_pending_cnt;
-
- int ll_recv_scan_req_cnt;
- int ll_send_scan_rsp_cnt;
- int ll_recv_conn_req_cnt;
- int ll_send_conn_rsp_cnt;
-
-
- int ll_filter_scan_req_cnt;
- int ll_filter_conn_req_cnt;
-
- int ll_recv_adv_pkt_cnt;
- int ll_send_scan_req_cnt;
- int ll_recv_scan_rsp_cnt;
-
-
- int ll_conn_succ_cnt;
-
- int ll_link_lost_cnt;
- int ll_link_estab_fail_cnt;
-
- int ll_rx_peer_cnt;
-
-
- int ll_evt_shc_err;
-
-
- int ll_trigger_err;
- int ll_rfifo_rst_err;
- int ll_rfifo_rst_cnt;
- int ll_rfifo_read_err;
-
-
- int ll_tbd_cnt1;
- int ll_tbd_cnt2;
- int ll_tbd_cnt3;
- int ll_tbd_cnt4;
- int ll_tbd_cnt5;
- int ll_tbd_cnt6;
- int ll_tbd_cnt7;
- int ll_tbd_cnt8;
-
- } llGlobalStatistics_t;
- typedef struct
- {
-
- uint32_t ll_recv_ctrl_pkt_cnt;
- uint32_t ll_recv_data_pkt_cnt;
- uint32_t ll_recv_invalid_pkt_cnt;
-
- uint32_t ll_recv_abnormal_cnt;
-
- uint32_t ll_send_data_pkt_cnt;
-
- uint32_t ll_conn_event_cnt;
- uint32_t ll_recv_crcerr_event_cnt;
- uint32_t ll_conn_event_timeout_cnt;
-
- uint32_t ll_to_hci_pkt_cnt;
- uint32_t ll_hci_to_ll_pkt_cnt;
-
- uint32_t ll_hci_buffer_alloc_err_cnt;
- uint32_t ll_miss_master_evt_cnt;
- uint32_t ll_miss_slave_evt_cnt;
-
- uint32_t ll_tbd_cnt1;
- uint32_t ll_tbd_cnt2;
- uint32_t ll_tbd_cnt3;
- uint32_t ll_tbd_cnt4;
-
- } llLinkStatistics_t;
- typedef struct
- {
- uint8_t chanMap[5];
- uint16_t chanMapUpdateEvent;
- uint8_t chanMapUpdated;
- } preChanMapUpdate_t;
- typedef struct
- {
- uint8_t rx_timeout;
- uint8_t rx_crcok;
- uint8_t allocConn;
- uint8_t active;
- uint8_t connId;
- uint8_t firstPacket;
-
- uint16_t currentEvent;
- uint16_t nextEvent;
- uint16_t lastCurrentEvent;
- uint16_t expirationEvent;
- uint16_t expirationValue;
-
-
- uint16_t scaFactor;
- uint32_t timerDrift;
- uint32_t accuTimerDrift;
-
- uint32_t lastTimeToNextEvt;
- uint8_t slaveLatencyAllowed;
- uint16_t slaveLatency;
- uint8_t lastSlaveLatency;
- uint16_t slaveLatencyValue;
-
- uint32_t accessAddr;
- uint32_t initCRC;
-
- uint8_t sleepClkAccuracy;
- connParam_t curParam;
-
-
- uint8_t nextChan;
- uint8_t currentChan;
- uint8_t lastCurrentChan;
-
- uint8_t numUsedChans;
-
- uint8_t chanMapTable[LL_MAX_NUM_DATA_CHAN];
- uint8_t chanMap[5];
- chanMap_t chanMapUpdate;
- preChanMapUpdate_t preChanMapUpdate;
- uint8_t hop;
-
-
- uint8_t txDataEnabled;
- llDataQ_t txDataQ;
-
- uint8_t rxDataEnabled;
- uint8_t lastRssi;
-
- uint16_t foff;
- uint8_t carrSens;
-
- ctrlPktInfo_t ctrlPktInfo;
-
- uint8_t pendingParamUpdate;
- uint16_t paramUpdateEvent;
- connParam_t paramUpdate;
-
- uint8_t pendingChanUpdate;
- uint16 chanMapUpdateEvent;
-
- uint8 encEnabled;
- encInfo_t encInfo;
-
- featureSet_t featureSetInfo;
-
- verExchange_t verExchange;
- verInfo_t verInfo;
-
- termInfo_t termInfo;
-
- uint8 unknownCtrlType;
-
- perInfo_t perInfo;
- uint8_t isCollision;
- uint8_t rejectOpCode;
-
- ll_phy_update_ind_t phyUpdateInfo;
-
- uint8_t pendingPhyModeUpdate;
- uint16_t phyModeUpdateEvent;
-
- uint8_t sn_nesn;
-
-
- uint8_t llMode;
-
- uint8_t ctrlDataIsProcess ;
- uint8_t ctrlDataIsPending ;
-
- int anchor_point_base_time;
- int anchor_point_fine_time;
-
- int next_event_base_time;
- int next_event_fine_time;
- ctrl_packet_buf ctrlData;
- llLinkBuf_t ll_buf;
-
- llPduLenManagment_t llPduLen;
- llPhyModeManagment_t llPhyModeCtrl;
-
- uint8_t llRfPhyPktFmt;
- llLinkStatistics_t pmCounter;
-
-
- uint8 llCTE_ReqFlag;
- uint8 llCTE_RspFlag;
-
- llCTEModeManagement_t llCTEModeCtrl;
- CTEInfo_t llConnCTE;
-
- uint8 connRole;
- } llConnState_t;
- typedef struct
- {
- uint8 rsc_idx;
- uint8 priority;
- uint8 linkRole;
- uint32 task_period;
- uint32 task_duration;
- uint32 remainder;
- } llScheduleInfo_t;
- typedef struct
- {
- uint8 numLLConns;
- uint8 numLLMasterConns;
- uint8 currentConn;
- llScheduleInfo_t scheduleInfo[MAX_NUM_LL_CONN_ROM_LIMT];
-
- uint16 connInterval;
- uint16 slaveLatency;
- uint16 connTimeout;
- uint32 per_slot_time;
- uint32 timerExpiryTick;
- uint32 current_timer;
-
- } llConns_t;
- typedef struct
- {
- uint8 adv_handler;
- extAdvInfo_t *pAdvInfo;
-
- uint32 nextEventRemainder;
- uint32 auxPduRemainder;
- } llAdvScheduleInfo_t;
- typedef struct
- {
- uint8 adv_handler;
- periodicAdvInfo_t *pAdvInfo_prd;
- extAdvInfo_t *pAdvInfo;
-
- uint32 nextEventRemainder;
- uint32 auxPduRemainder;
- } llPeriodicAdvScheduleInfo_t;
- typedef struct
- {
- uint16 syncHandler;
- uint8 valid;
- uint8 syncEstOk;
- uint8 event1stFlag;
- uint16 skip;
- uint32 syncTimeout;
- uint8 syncCteType;
- uint32 advInterval;
- uint8 chnMap[5];
- uint8_t chanMapTable[LL_MAX_NUM_DATA_CHAN];
- uint8_t numUsedChans;
- uint8 sca;
- uint8 accessAddress[4];
- uint16 channelIdentifier;
- uint8 crcInit[3];
- uint8 advPhy;
- uint8 current_channel;
- uint8 currentEventChannel;
- uint16 eventCounter;
- uint16 syncLostTime;
-
- uint32 nextEventRemainder;
-
- CTEInfo_t IQSampleInfo;
- } llPeriodicScannerInfo_t;
- typedef struct
- {
- uint8 isTimer1RecoverRequired;
- uint32 timer1Remainder;
- uint8 isTimer4RecoverRequired;
- uint32 timer4Remainder;
- } llSleepContext;
- typedef uint8 llStatus_t;
- typedef struct
- {
- uint16 numPkts[ LL_MAX_NUM_DATA_CHAN ];
- uint16 numCrcErr[ LL_MAX_NUM_DATA_CHAN ];
- } perByChan_t;
- typedef struct
- {
- uint16 rxNumPkts[ LL_MAX_NUM_DATA_CHAN ];
- uint16 rxNumCrcErr[ LL_MAX_NUM_DATA_CHAN ];
- uint16 txNumRetry[ LL_MAX_NUM_DATA_CHAN ];
- uint16 TxNumAck[ LL_MAX_NUM_DATA_CHAN ];
- uint16 rxToCnt[ LL_MAX_NUM_DATA_CHAN ];
- uint16 connEvtCnt[ LL_MAX_NUM_DATA_CHAN ];
-
-
- } perStatsByChan_t;
- typedef struct
- {
- uint16 rxNumPkts;
- uint16 rxNumCrcErr;
- uint16 txNumRetry;
- uint16 TxNumAck;
- uint16 rxToCnt;
- uint16 connEvtCnt;
-
-
- } perStats_t;
- typedef enum{
- LE_1M_PHY= 0x01,
- LE_2M_PHY= 0x02,
- LE_CODED_PHY=0x04,
- }PhyModeCtrl_e;
- typedef uint8_t ( *LL_PLUS_AdvDataFilterCB_t )(void);
- typedef uint8_t ( *LL_PLUS_ScanRequestFilterCB_t )(void);
-
- typedef struct
- {
- uint8 numTxDone;
- uint8 numTxAck;
- uint8 numTxCtrlAck;
- uint8 numTxCtrl;
- uint8 numTxRetrans;
- uint8 numTx;
- uint8 numRxOk;
- uint8 numRxCtrl;
- uint8 numRxNotOk;
- uint8 numRxIgnored;
- uint8 numRxEmpty;
- uint8 numRxFifoFull;
- } rfCounters_t;
- extern uint8_t LL_TaskID;
- extern uint8_t llState;
- extern peerInfo_t peerInfo;
- extern advInfo_t adv_param;
- extern scanInfo_t scanInfo;
- extern initInfo_t initInfo;
- extern extScanInfo_t extScanInfo;
- extern extInitInfo_t extInitInfo;
- extern chanMap_t chanMapUpdate;
- extern featureSet_t deviceFeatureSet;
- extern uint8 g_maxConnNum;
- extern uint8 g_maxPktPerEventTx;
- extern uint8 g_maxPktPerEventRx;
- extern llConnState_t *conn_param;
- extern uint8 numComplPkts;
- extern uint8 numComplPktsLimit;
- extern verInfo_t verInfo;
- extern rfCounters_t rfCounters;
- extern llConns_t g_ll_conn_ctx;
- extern llGlobalStatistics_t g_pmCounters;
- extern llPduLenManagment_t g_llPduLen;
- extern peerInfo_t g_llWhitelist[];
- extern resolvingListInfo_t g_llResolvinglist[];
- extern uint8 g_llRlEnable;
- extern uint8 g_llRlDeviceNum;
- extern uint16 g_llRlTimeout;
- extern extAdvInfo_t *g_pExtendedAdvInfo;
- extern periodicAdvInfo_t *g_pPeriodicAdvInfo;
- extern uint8 g_extAdvNumber;
- extern uint8 g_perioAdvNumber;
- extern uint16 g_advSetMaximumLen;
- extern llAdvScheduleInfo_t *g_pAdvSchInfo;
- extern uint8 g_schExtAdvNum;
- extern uint8 g_currentExtAdv;
- extern llPeriodicAdvScheduleInfo_t *g_pAdvSchInfo_periodic;
- extern uint8 g_schExtAdvNum_periodic;
- extern uint8 g_currentExtAdv_periodic;
- extern uint32 g_advPerSlotTick;
- extern uint32 g_advSlotPeriodic;
- extern uint32 g_currentAdvTimer;
- extern uint32 g_timerExpiryTick;
- extern uint8 g_currentTimerTask;
- extern llSleepContext g_llSleepContext;
- extern llPeriodicScannerInfo_t g_llPeriodAdvSyncInfo[];
- #define LL_TASK_EXTENDED_ADV 0x01
- #define LL_TASK_PERIODIC_ADV 0x02
- #define LL_TASK_EXTENDED_SCAN 0x03
- #define LL_TASK_EXTENDED_INIT 0x04
- #define LL_TASK_PERIODIC_SCAN 0x05
- #define LL_TASK_OTHERS 0x10
- #define LL_TASK_INVALID 0xFF
- extern uint8 llTaskState;
- extern extAdvHdr_t ext_adv_hdr;
-
- extern uint16 *g_pLLcteISample;
- extern uint16 *g_pLLcteQSample;
- #endif
|