1 /*
2  * Copyright (c) 2018-2019 Nordic Semiconductor ASA
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 struct ll_scan_set {
8 	struct ull_hdr  ull;
9 	struct lll_scan lll;
10 
11 	uint32_t ticks_window;
12 
13 #if defined(CONFIG_BT_CTLR_ADV_EXT)
14 	struct node_rx_hdr *node_rx_scan_term;
15 	uint16_t duration_lazy;
16 
17 	uint8_t is_stop:1;
18 #endif /* CONFIG_BT_CTLR_ADV_EXT */
19 
20 	uint8_t is_enabled:1;
21 	uint8_t own_addr_type:2;
22 
23 #if defined(CONFIG_BT_CTLR_SYNC_PERIODIC)
24 	struct {
25 		uint8_t sid;
26 
27 		uint8_t adv_addr_type:2;
28 		uint8_t filter_policy:1;
29 		uint8_t cancelled:1;
30 		uint8_t state:2;
31 
32 		uint8_t adv_addr[BDADDR_SIZE];
33 
34 		/* Non-Null when creating sync, reset in ISR context on
35 		 * synchronisation state and checked in Thread context when
36 		 * cancelling sync create, hence the volatile keyword.
37 		 */
38 		struct ll_sync_set *volatile sync;
39 	} periodic;
40 #endif
41 };
42 
43 struct ll_scan_aux_set {
44 	struct ull_hdr      ull;
45 	struct lll_scan_aux lll;
46 
47 	/* lll_scan or lll_sync */
48 	void *volatile parent;
49 
50 	struct node_rx_hdr *rx_head;
51 	struct node_rx_hdr *rx_last;
52 
53 	uint16_t data_len;
54 
55 #if defined(CONFIG_BT_CTLR_SYNC_PERIODIC)
56 	struct node_rx_hdr *rx_incomplete;
57 #endif
58 };
59