diff options
| author | Glenn Ruben Bakke <glennbakke@gmail.com> | 2017-04-09 17:45:32 +0200 |
|---|---|---|
| committer | Glenn Ruben Bakke <glennbakke@gmail.com> | 2017-04-09 17:45:32 +0200 |
| commit | 360243af92bd096522153521bce323f60bdb1b80 (patch) | |
| tree | e3b0e94099da7ce5e9d895e22e02435c61f205e0 /lib | |
| parent | 5d06aa32609959115b496ac0e596438bfdbda038 (diff) | |
| parent | b87432b8fb8332548be11b63c9139065ce565f91 (diff) | |
Merge branch 'master' into nrf5_no_sdk
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/libm/nearbyintf.c | 21 | ||||
| -rw-r--r-- | lib/mp-readline/readline.c | 2 | ||||
| -rw-r--r-- | lib/netutils/netutils.c | 4 | ||||
| -rw-r--r-- | lib/timeutils/timeutils.c | 2 | ||||
| -rw-r--r-- | lib/utils/interrupt_char.c | 5 |
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 } |
