diff options
| author | JF002 <JF002@users.noreply.github.com> | 2021-02-04 17:34:28 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-02-04 17:34:28 +0100 |
| commit | 6259b816287f8f74dadf50334a445cd9fe16d415 (patch) | |
| tree | 712cf7ca15f0d17b54909bbf45a4cc759c579392 /src/libs/mynewt-nimble/nimble/drivers/native | |
| parent | 16ce5bbb7563f0af9394d4da0dae303aa9eda2fd (diff) | |
| parent | d90b7274fa8bbfa09f79660b45b550d91f7b0125 (diff) | |
Merge pull request #198 from JF002/update-nimble-1_3-master
Update to nimble 1.3 master branch
Diffstat (limited to 'src/libs/mynewt-nimble/nimble/drivers/native')
| -rw-r--r-- | src/libs/mynewt-nimble/nimble/drivers/native/src/ble_hw.c | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/src/libs/mynewt-nimble/nimble/drivers/native/src/ble_hw.c b/src/libs/mynewt-nimble/nimble/drivers/native/src/ble_hw.c index 5eb1eb95..8aa29d32 100644 --- a/src/libs/mynewt-nimble/nimble/drivers/native/src/ble_hw.c +++ b/src/libs/mynewt-nimble/nimble/drivers/native/src/ble_hw.c @@ -20,6 +20,8 @@ #include <stdint.h> #include <assert.h> #include <string.h> +#include <stdlib.h> +#include <stdbool.h> #include "syscfg/syscfg.h" #include "os/os.h" #include "nimble/ble.h" @@ -32,6 +34,9 @@ /* We use this to keep track of which entries are set to valid addresses */ static uint8_t g_ble_hw_whitelist_mask; +static ble_rng_isr_cb_t rng_cb; +static bool rng_started; + /* Returns public device address or -1 if not present */ int ble_hw_get_public_addr(ble_addr_t *addr) @@ -143,7 +148,8 @@ ble_hw_encrypt_block(struct ble_encryption_block *ecb) int ble_hw_rng_init(ble_rng_isr_cb_t cb, int bias) { - return -1; + rng_cb = cb; + return 0; } /** @@ -154,7 +160,15 @@ ble_hw_rng_init(ble_rng_isr_cb_t cb, int bias) int ble_hw_rng_start(void) { - return -1; + rng_started = true; + + if (rng_cb) { + while (rng_started) { + rng_cb(rand()); + } + } + + return 0; } /** @@ -165,7 +179,8 @@ ble_hw_rng_start(void) int ble_hw_rng_stop(void) { - return -1; + rng_started = false; + return 0; } /** @@ -176,7 +191,7 @@ ble_hw_rng_stop(void) uint8_t ble_hw_rng_read(void) { - return 0; + return rand(); } #if MYNEWT_VAL(BLE_LL_CFG_FEAT_LL_PRIVACY) |
