summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorGlenn Ruben Bakke <glennbakke@gmail.com>2017-04-09 17:45:32 +0200
committerGlenn Ruben Bakke <glennbakke@gmail.com>2017-04-09 17:45:32 +0200
commit360243af92bd096522153521bce323f60bdb1b80 (patch)
treee3b0e94099da7ce5e9d895e22e02435c61f205e0 /lib
parent5d06aa32609959115b496ac0e596438bfdbda038 (diff)
parentb87432b8fb8332548be11b63c9139065ce565f91 (diff)
Merge branch 'master' into nrf5_no_sdk
Diffstat (limited to 'lib')
-rw-r--r--lib/libm/nearbyintf.c21
-rw-r--r--lib/mp-readline/readline.c2
-rw-r--r--lib/netutils/netutils.c4
-rw-r--r--lib/timeutils/timeutils.c2
-rw-r--r--lib/utils/interrupt_char.c5
5 files changed, 30 insertions, 4 deletions
diff --git a/lib/libm/nearbyintf.c b/lib/libm/nearbyintf.c
new file mode 100644
index 000000000..1c3545945
--- /dev/null
+++ b/lib/libm/nearbyintf.c
@@ -0,0 +1,21 @@
+// adapted from the rintf() function from musl-1.1.16
+
+#include "libm.h"
+
+float nearbyintf(float x)
+{
+ union {float f; uint32_t i;} u = {x};
+ int e = u.i>>23 & 0xff;
+ int s = u.i>>31;
+ float_t y;
+
+ if (e >= 0x7f+23)
+ return x;
+ if (s)
+ y = x - 0x1p23f + 0x1p23f;
+ else
+ y = x + 0x1p23f - 0x1p23f;
+ if (y == 0)
+ return s ? -0.0f : 0.0f;
+ return y;
+}
diff --git a/lib/mp-readline/readline.c b/lib/mp-readline/readline.c
index cbb99cc94..4b9875136 100644
--- a/lib/mp-readline/readline.c
+++ b/lib/mp-readline/readline.c
@@ -31,7 +31,7 @@
#include "py/mpstate.h"
#include "py/repl.h"
#include "py/mphal.h"
-#include "readline.h"
+#include "lib/mp-readline/readline.h"
#if 0 // print debugging info
#define DEBUG_PRINT (1)
diff --git a/lib/netutils/netutils.c b/lib/netutils/netutils.c
index b896cf0c8..f6718bf3e 100644
--- a/lib/netutils/netutils.c
+++ b/lib/netutils/netutils.c
@@ -33,7 +33,7 @@
#include "py/obj.h"
#include "py/nlr.h"
-#include "netutils.h"
+#include "lib/netutils/netutils.h"
// Takes an array with a raw IPv4 address and returns something like '192.168.0.1'.
mp_obj_t netutils_format_ipv4_addr(uint8_t *ip, netutils_endian_t endian) {
@@ -58,7 +58,7 @@ mp_obj_t netutils_format_inet_addr(uint8_t *ip, mp_uint_t port, netutils_endian_
}
void netutils_parse_ipv4_addr(mp_obj_t addr_in, uint8_t *out_ip, netutils_endian_t endian) {
- mp_uint_t addr_len;
+ size_t addr_len;
const char *addr_str = mp_obj_str_get_data(addr_in, &addr_len);
if (addr_len == 0) {
// special case of no address given
diff --git a/lib/timeutils/timeutils.c b/lib/timeutils/timeutils.c
index 19d3ddbdd..0af39a295 100644
--- a/lib/timeutils/timeutils.c
+++ b/lib/timeutils/timeutils.c
@@ -27,7 +27,7 @@
#include "py/obj.h"
-#include "timeutils.h"
+#include "lib/timeutils/timeutils.h"
// LEAPOCH corresponds to 2000-03-01, which is a mod-400 year, immediately
// after Feb 29. We calculate seconds as a signed integer relative to that.
diff --git a/lib/utils/interrupt_char.c b/lib/utils/interrupt_char.c
index ab4efd911..344db88c7 100644
--- a/lib/utils/interrupt_char.c
+++ b/lib/utils/interrupt_char.c
@@ -46,4 +46,9 @@ void mp_keyboard_interrupt(void) {
#else
MP_STATE_VM(mp_pending_exception) = MP_STATE_PORT(mp_kbd_exception);
#endif
+ #if MICROPY_ENABLE_SCHEDULER
+ if (MP_STATE_VM(sched_state) == MP_SCHED_IDLE) {
+ MP_STATE_VM(sched_state) = MP_SCHED_PENDING;
+ }
+ #endif
}