Skip to content

Commit 0f63eab

Browse files
author
ganghe
committed
[int][new][zbt] Add more Zephyr function support.
Project: Bluetooth redmine: #5146, REDMINE-id ext-redmine: bug|feat#id [Description in detail] Affected branch: [master] Change-Id: Ibb78d978779124fbb45282eac8a9953325b6ba75
1 parent 8978442 commit 0f63eab

File tree

6 files changed

+228
-31
lines changed

6 files changed

+228
-31
lines changed

zephyr_bt/host/conn.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -513,7 +513,7 @@ void bt_conn_recv(struct bt_conn *conn, struct net_buf *buf, uint8_t flags)
513513
* Always do so from the same context for sanity. In this case that will
514514
* be either a dedicated Bluetooth connection TX workqueue or system workqueue.
515515
*/
516-
#if 0
516+
#if 1
517517
bt_conn_tx_notify(conn, true);
518518
#else
519519
bt_conn_tx_notify(conn, false);

zephyr_bt/include/rtt4zephyr.h

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -411,12 +411,13 @@ int k_work_submit(struct k_work *work);
411411

412412
#define k_work_cancel_delayable_sync(dwork,sync) rt_workqueue_cancel_work_sync(rt_workqueue_sysq(),(struct rt_work *)dwork)
413413
#define k_work_delayable_is_pending(dwork) ((dwork)->work.flags&RT_WORK_STATE_PENDING)
414-
#define k_work_schedule(dwork,delay) rt_work_submit((struct rt_work*)dwork,delay.ticks)
415414
#define k_work_init(work,handler) rt_work_init(work, (void(*)(struct rt_work*, void*))handler, NULL)
416415
#define k_work_delayable_busy_get(dwork) ((dwork)->work.flags&RT_WORK_STATE_RUNNING)
417416
#define k_work_reschedule(dwork,delay) k_work_reschedule2(dwork,delay.ticks)
418417
rt_tick_t k_work_delayable_remaining_get(const struct rt_delayed_work *dwork);
419418
int k_work_reschedule2(struct k_work_delayable *dwork, rt_tick_t delay);
419+
int k_work_schedule(struct k_work_delayable *dwork, k_timeout_t delay);
420+
420421
bool k_work_flush(struct k_work *work, struct k_work_sync *sync);
421422
#define k_work_busy_get(work) (work)->flags
422423
static inline bool k_work_is_pending(const struct k_work *work)
@@ -519,6 +520,7 @@ void *k_lifo_get(struct k_lifo *lifo, k_timeout_t timeout);
519520
int k_poll_signal_raise(struct k_poll_signal *sig, int result);
520521
#define K_POLL_SIGNAL_INITIALIZER(obj) {}
521522

523+
522524
/*********** mem_slab -> rt_mempool ********************/
523525
#define k_mem_slab rt_mempool
524526
#define K_MEM_SLAB_DEFINE(name, slab_block_size, slab_num_blocks, slab_align) \
@@ -812,5 +814,15 @@ __syscall int k_poll(struct k_poll_event *events, int num_events,
812814
*/
813815
__syscall void k_poll_signal_reset(struct k_poll_signal *sig);
814816

817+
/**
818+
* @brief Initialize a poll signal object.
819+
*
820+
* Ready a poll signal object to be signaled via k_poll_signal_raise().
821+
*
822+
* @param sig A poll signal.
823+
*/
824+
825+
__syscall void k_poll_signal_init(struct k_poll_signal *sig);
826+
815827
#endif
816828

zephyr_bt/include/zbt_rtt.h

Lines changed: 41 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -365,14 +365,9 @@
365365
#define CONFIG_BT_BUF_CMD_TX_COUNT BT_BUF_CMD_TX_COUNT
366366
#endif
367367

368-
//BT_BUF_CMD_TX_SIZE
369-
#ifdef BT_BUF_CMD_TX_SIZE2
370-
#define CONFIG_BT_BUF_CMD_TX_SIZE BT_BUF_CMD_TX_SIZE2
371-
#endif
372-
373368
//BT_BUF_CMD_TX_SIZE2
374369
#ifdef BT_BUF_CMD_TX_SIZE2
375-
#define CONFIG_BT_BUF_CMD_TX_SIZE2 BT_BUF_CMD_TX_SIZE2
370+
#define CONFIG_BT_BUF_CMD_TX_SIZE BT_BUF_CMD_TX_SIZE2
376371
#endif
377372

378373
//BT_BUF_EVT_DISCARDABLE_COUNT
@@ -390,14 +385,9 @@
390385
#define CONFIG_BT_BUF_EVT_RX_COUNT BT_BUF_EVT_RX_COUNT
391386
#endif
392387

393-
//BT_BUF_EVT_RX_SIZE
394-
#ifdef BT_BUF_EVT_RX_SIZE2
395-
#define CONFIG_BT_BUF_EVT_RX_SIZE BT_BUF_EVT_RX_SIZE2
396-
#endif
397-
398388
//BT_BUF_EVT_RX_SIZE2
399389
#ifdef BT_BUF_EVT_RX_SIZE2
400-
#define CONFIG_BT_BUF_EVT_RX_SIZE2 BT_BUF_EVT_RX_SIZE2
390+
#define CONFIG_BT_BUF_EVT_RX_SIZE BT_BUF_EVT_RX_SIZE2
401391
#endif
402392

403393
//BT_CAP
@@ -1460,11 +1450,31 @@
14601450
#define CONFIG_BT_MESH_CDB BT_MESH_CDB
14611451
#endif
14621452

1453+
//BT_MESH_CDB_APP_KEY_COUNT
1454+
#ifdef BT_MESH_CDB_APP_KEY_COUNT
1455+
#define CONFIG_BT_MESH_CDB_APP_KEY_COUNT BT_MESH_CDB_APP_KEY_COUNT
1456+
#endif
1457+
1458+
//BT_MESH_CDB_NODE_COUNT
1459+
#ifdef BT_MESH_CDB_NODE_COUNT
1460+
#define CONFIG_BT_MESH_CDB_NODE_COUNT BT_MESH_CDB_NODE_COUNT
1461+
#endif
1462+
1463+
//BT_MESH_CDB_SUBNET_COUNT
1464+
#ifdef BT_MESH_CDB_SUBNET_COUNT
1465+
#define CONFIG_BT_MESH_CDB_SUBNET_COUNT BT_MESH_CDB_SUBNET_COUNT
1466+
#endif
1467+
14631468
//BT_MESH_CFG_CLI
14641469
#ifdef BT_MESH_CFG_CLI
14651470
#define CONFIG_BT_MESH_CFG_CLI BT_MESH_CFG_CLI
14661471
#endif
14671472

1473+
//BT_MESH_CFG_CLI_TIMEOUT
1474+
#ifdef BT_MESH_CFG_CLI_TIMEOUT
1475+
#define CONFIG_BT_MESH_CFG_CLI_TIMEOUT BT_MESH_CFG_CLI_TIMEOUT
1476+
#endif
1477+
14681478
//BT_MESH_COMP_PAGE_1
14691479
#ifdef BT_MESH_COMP_PAGE_1
14701480
#define CONFIG_BT_MESH_COMP_PAGE_1 BT_MESH_COMP_PAGE_1
@@ -1595,6 +1605,11 @@
15951605
#define CONFIG_BT_MESH_HEALTH_CLI BT_MESH_HEALTH_CLI
15961606
#endif
15971607

1608+
//BT_MESH_HEALTH_CLI_TIMEOUT
1609+
#ifdef BT_MESH_HEALTH_CLI_TIMEOUT
1610+
#define CONFIG_BT_MESH_HEALTH_CLI_TIMEOUT BT_MESH_HEALTH_CLI_TIMEOUT
1611+
#endif
1612+
15981613
//BT_MESH_IVU_DIVIDER
15991614
#ifdef BT_MESH_IVU_DIVIDER
16001615
#define CONFIG_BT_MESH_IVU_DIVIDER BT_MESH_IVU_DIVIDER
@@ -1770,6 +1785,11 @@
17701785
#define CONFIG_BT_MESH_PROVISIONEE BT_MESH_PROVISIONEE
17711786
#endif
17721787

1788+
//BT_MESH_PROVISIONER
1789+
#ifdef BT_MESH_PROVISIONER
1790+
#define CONFIG_BT_MESH_PROVISIONER BT_MESH_PROVISIONER
1791+
#endif
1792+
17731793
//BT_MESH_PROV_DEVICE
17741794
#ifdef BT_MESH_PROV_DEVICE
17751795
#define CONFIG_BT_MESH_PROV_DEVICE BT_MESH_PROV_DEVICE
@@ -1845,6 +1865,11 @@
18451865
#define CONFIG_BT_MESH_RPR_AD_TYPES_MAX BT_MESH_RPR_AD_TYPES_MAX
18461866
#endif
18471867

1868+
//BT_MESH_RPR_CLI
1869+
#ifdef BT_MESH_RPR_CLI
1870+
#define CONFIG_BT_MESH_RPR_CLI BT_MESH_RPR_CLI
1871+
#endif
1872+
18481873
//BT_MESH_RPR_SRV
18491874
#ifdef BT_MESH_RPR_SRV
18501875
#define CONFIG_BT_MESH_RPR_SRV BT_MESH_RPR_SRV
@@ -1887,7 +1912,7 @@
18871912

18881913
//BT_MESH_SAR_RX_ACK_RETRANS_COUNT2
18891914
#ifdef BT_MESH_SAR_RX_ACK_RETRANS_COUNT2
1890-
#define CONFIG_BT_MESH_SAR_RX_ACK_RETRANS_COUNT2 BT_MESH_SAR_RX_ACK_RETRANS_COUNT2
1915+
#define CONFIG_BT_MESH_SAR_RX_ACK_RETRANS_COUNT BT_MESH_SAR_RX_ACK_RETRANS_COUNT2
18911916
#endif
18921917

18931918
//BT_MESH_SAR_RX_DISCARD_TIMEOUT
@@ -1902,7 +1927,7 @@
19021927

19031928
//BT_MESH_SAR_RX_SEG_THRESHOLD2
19041929
#ifdef BT_MESH_SAR_RX_SEG_THRESHOLD2
1905-
#define CONFIG_BT_MESH_SAR_RX_SEG_THRESHOLD2 BT_MESH_SAR_RX_SEG_THRESHOLD2
1930+
#define CONFIG_BT_MESH_SAR_RX_SEG_THRESHOLD BT_MESH_SAR_RX_SEG_THRESHOLD2
19061931
#endif
19071932

19081933
//BT_MESH_SAR_TX_MULTICAST_RETRANS_COUNT
@@ -2185,14 +2210,9 @@
21852210
#define CONFIG_BT_PACS_SUPPORTED_CONTEXT_NOTIFIABLE BT_PACS_SUPPORTED_CONTEXT_NOTIFIABLE
21862211
#endif
21872212

2188-
//BT_PAC_SNK
2189-
#ifdef BT_PAC_SNK2
2190-
#define CONFIG_BT_PAC_SNK BT_PAC_SNK2
2191-
#endif
2192-
21932213
//BT_PAC_SNK2
21942214
#ifdef BT_PAC_SNK2
2195-
#define CONFIG_BT_PAC_SNK2 BT_PAC_SNK2
2215+
#define CONFIG_BT_PAC_SNK BT_PAC_SNK2
21962216
#endif
21972217

21982218
//BT_PAC_SNK_LOC
@@ -2215,14 +2235,9 @@
22152235
#define CONFIG_BT_PAC_SNK_NOTIFIABLE BT_PAC_SNK_NOTIFIABLE
22162236
#endif
22172237

2218-
//BT_PAC_SRC
2219-
#ifdef BT_PAC_SRC2
2220-
#define CONFIG_BT_PAC_SRC BT_PAC_SRC2
2221-
#endif
2222-
22232238
//BT_PAC_SRC2
22242239
#ifdef BT_PAC_SRC2
2225-
#define CONFIG_BT_PAC_SRC2 BT_PAC_SRC2
2240+
#define CONFIG_BT_PAC_SRC BT_PAC_SRC2
22262241
#endif
22272242

22282243
//BT_PAC_SRC_LOC
Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
/*
2+
* Copyright (c) 2013-2014 Wind River Systems, Inc.
3+
* Copyright (c) 2023 Intel Corporation
4+
*
5+
* SPDX-License-Identifier: Apache-2.0
6+
*/
7+
8+
/**
9+
* @file
10+
* @brief Random number generator header file
11+
*
12+
* This header file declares prototypes for the kernel's random number
13+
* generator APIs.
14+
*
15+
* Typically, a platform enables the appropriate source for the random
16+
* number generation based on the hardware platform's capabilities or
17+
* (for testing purposes only) enables the TEST_RANDOM_GENERATOR
18+
* configuration option.
19+
*/
20+
21+
#ifndef ZEPHYR_INCLUDE_RANDOM_RANDOM_H_
22+
#define ZEPHYR_INCLUDE_RANDOM_RANDOM_H_
23+
24+
#include <zephyr/types.h>
25+
#include <stddef.h>
26+
#include <zephyr/kernel.h>
27+
28+
/**
29+
* @brief Random Function APIs
30+
* @defgroup random_api Random Function APIs
31+
* @since 1.0
32+
* @version 1.0.0
33+
* @ingroup crypto
34+
* @{
35+
*/
36+
37+
#ifdef __cplusplus
38+
extern "C" {
39+
#endif
40+
41+
42+
/**
43+
* @brief Fill the destination buffer with random data values that should
44+
* pass general randomness tests.
45+
*
46+
* @note The random values returned are not considered cryptographically
47+
* secure random number values.
48+
*
49+
* @param [out] dst destination buffer to fill with random data.
50+
* @param len size of the destination buffer.
51+
*
52+
*/
53+
__syscall void sys_rand_get(void *dst, size_t len);
54+
55+
/**
56+
* @brief Fill the destination buffer with cryptographically secure
57+
* random data values.
58+
*
59+
* @note If the random values requested do not need to be cryptographically
60+
* secure then use sys_rand_get() instead.
61+
*
62+
* @param [out] dst destination buffer to fill.
63+
* @param len size of the destination buffer.
64+
*
65+
* @return 0 if success, -EIO if entropy reseed error
66+
*
67+
*/
68+
__syscall int sys_csrand_get(void *dst, size_t len);
69+
70+
/**
71+
* @brief Return a 8-bit random value that should pass general
72+
* randomness tests.
73+
*
74+
* @note The random value returned is not a cryptographically secure
75+
* random number value.
76+
*
77+
* @return 8-bit random value.
78+
*/
79+
static inline uint8_t sys_rand8_get(void)
80+
{
81+
uint8_t ret;
82+
83+
sys_rand_get(&ret, sizeof(ret));
84+
85+
return ret;
86+
}
87+
88+
/**
89+
* @brief Return a 16-bit random value that should pass general
90+
* randomness tests.
91+
*
92+
* @note The random value returned is not a cryptographically secure
93+
* random number value.
94+
*
95+
* @return 16-bit random value.
96+
*/
97+
static inline uint16_t sys_rand16_get(void)
98+
{
99+
uint16_t ret;
100+
101+
sys_rand_get(&ret, sizeof(ret));
102+
103+
return ret;
104+
}
105+
106+
/**
107+
* @brief Return a 32-bit random value that should pass general
108+
* randomness tests.
109+
*
110+
* @note The random value returned is not a cryptographically secure
111+
* random number value.
112+
*
113+
* @return 32-bit random value.
114+
*/
115+
static inline uint32_t sys_rand32_get(void)
116+
{
117+
uint32_t ret;
118+
119+
sys_rand_get(&ret, sizeof(ret));
120+
121+
return ret;
122+
}
123+
124+
/**
125+
* @brief Return a 64-bit random value that should pass general
126+
* randomness tests.
127+
*
128+
* @note The random value returned is not a cryptographically secure
129+
* random number value.
130+
*
131+
* @return 64-bit random value.
132+
*/
133+
static inline uint64_t sys_rand64_get(void)
134+
{
135+
uint64_t ret;
136+
137+
sys_rand_get(&ret, sizeof(ret));
138+
139+
return ret;
140+
}
141+
142+
#ifdef __cplusplus
143+
}
144+
#endif
145+
146+
/**
147+
* @}
148+
*/
149+
150+
#endif /* ZEPHYR_INCLUDE_RANDOM_RANDOM_H_ */

zephyr_bt/mesh/sar_cfg_internal.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,11 @@
3131
/** SAR Receiver Configuration state initializer */
3232
#define BT_MESH_SAR_RX_INIT \
3333
{ \
34-
CONFIG_BT_MESH_SAR_RX_SEG_THRESHOLD2, \
34+
CONFIG_BT_MESH_SAR_RX_SEG_THRESHOLD, \
3535
CONFIG_BT_MESH_SAR_RX_ACK_DELAY_INC, \
3636
CONFIG_BT_MESH_SAR_RX_DISCARD_TIMEOUT, \
3737
CONFIG_BT_MESH_SAR_RX_SEG_INT_STEP, \
38-
CONFIG_BT_MESH_SAR_RX_ACK_RETRANS_COUNT2, \
38+
CONFIG_BT_MESH_SAR_RX_ACK_RETRANS_COUNT, \
3939
}
4040

4141
#define BT_MESH_SAR_TX_SEG_INT_MS ((bt_mesh.sar_tx.seg_int_step + 1) * 10)

zephyr_bt/rtt4zephyr.c

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,13 @@ int k_work_submit(struct k_work *work)
290290
return rt_work_submit(work, 0);
291291
}
292292

293-
/***********************Not implemented*********************************/
293+
int k_work_schedule(struct k_work_delayable *dwork,
294+
k_timeout_t delay)
295+
{
296+
if (dwork->work.list.next == NULL && dwork->work.list.prev == NULL)
297+
rt_delayed_work_init(dwork, dwork->work.work_func, dwork->work.work_data);
298+
rt_work_submit((struct rt_work *)dwork, delay.ticks);
299+
}
294300

295301
void k_work_queue_start(struct k_work_q *queue,
296302
void *stack,
@@ -368,6 +374,20 @@ void k_fifo_cancel_wait(struct k_fifo *queue)
368374
// TODO
369375
}
370376

377+
/**
378+
* @brief Initialize a poll signal object.
379+
*
380+
* Ready a poll signal object to be signaled via k_poll_signal_raise().
381+
*
382+
* @param sig A poll signal.
383+
*/
384+
385+
__syscall void k_poll_signal_init(struct k_poll_signal *sig)
386+
{
387+
rt_wqueue_init(sig);
388+
}
389+
390+
371391
int k_work_cancel_delayable(struct k_work_delayable *dwork)
372392
{
373393
struct rt_work *work = (struct rt_work *)dwork;

0 commit comments

Comments
 (0)