|
48 | 48 |
|
49 | 49 | #define ERRNO_BLUETOOTH_NOT_ACTIVE MP_ENODEV
|
50 | 50 |
|
| 51 | +// Any BLE_HS_xxx code not in this table will default to MP_EIO. |
51 | 52 | STATIC int8_t ble_hs_err_to_errno_table[] = {
|
52 | 53 | [BLE_HS_EAGAIN] = MP_EAGAIN,
|
53 | 54 | [BLE_HS_EALREADY] = MP_EALREADY,
|
54 | 55 | [BLE_HS_EINVAL] = MP_EINVAL,
|
55 |
| - [BLE_HS_EMSGSIZE] = MP_EIO, |
56 | 56 | [BLE_HS_ENOENT] = MP_ENOENT,
|
57 | 57 | [BLE_HS_ENOMEM] = MP_ENOMEM,
|
58 | 58 | [BLE_HS_ENOTCONN] = MP_ENOTCONN,
|
59 | 59 | [BLE_HS_ENOTSUP] = MP_EOPNOTSUPP,
|
60 |
| - [BLE_HS_EAPP] = MP_EIO, |
61 |
| - [BLE_HS_EBADDATA] = MP_EIO, |
62 |
| - [BLE_HS_EOS] = MP_EIO, |
63 |
| - [BLE_HS_ECONTROLLER] = MP_EIO, |
64 | 60 | [BLE_HS_ETIMEOUT] = MP_ETIMEDOUT,
|
65 | 61 | [BLE_HS_EDONE] = MP_EIO, // TODO: Maybe should be MP_EISCONN (connect uses this for "already connected").
|
66 | 62 | [BLE_HS_EBUSY] = MP_EBUSY,
|
67 |
| - [BLE_HS_EREJECT] = MP_EIO, |
68 |
| - [BLE_HS_EUNKNOWN] = MP_EIO, |
69 |
| - [BLE_HS_EROLE] = MP_EIO, |
70 |
| - [BLE_HS_ETIMEOUT_HCI] = MP_EIO, |
71 |
| - [BLE_HS_ENOMEM_EVT] = MP_EIO, |
72 |
| - [BLE_HS_ENOADDR] = MP_EIO, |
73 |
| - [BLE_HS_ENOTSYNCED] = MP_EIO, |
74 |
| - [BLE_HS_EAUTHEN] = MP_EIO, |
75 |
| - [BLE_HS_EAUTHOR] = MP_EIO, |
76 |
| - [BLE_HS_EENCRYPT] = MP_EIO, |
77 |
| - [BLE_HS_EENCRYPT_KEY_SZ] = MP_EIO, |
78 |
| - [BLE_HS_ESTORE_CAP] = MP_EIO, |
79 |
| - [BLE_HS_ESTORE_FAIL] = MP_EIO, |
80 |
| - [BLE_HS_EPREEMPTED] = MP_EIO, |
81 |
| - [BLE_HS_EDISABLED] = MP_EIO, |
82 | 63 | };
|
83 | 64 |
|
84 | 65 | STATIC int ble_hs_err_to_errno(int err) {
|
85 |
| - if (0 <= err && err < MP_ARRAY_SIZE(ble_hs_err_to_errno_table)) { |
| 66 | + if (!err) { |
| 67 | + return 0; |
| 68 | + } |
| 69 | + if (0 <= err && err < MP_ARRAY_SIZE(ble_hs_err_to_errno_table) && ble_hs_err_to_errno_table[err]) { |
86 | 70 | return ble_hs_err_to_errno_table[err];
|
87 | 71 | } else {
|
88 | 72 | return MP_EIO;
|
|
0 commit comments