From fec2b757f17a3e6b2244d4cd2278cf7f3a8d14ca Mon Sep 17 00:00:00 2001
From: schneider <schneider@blinkenlichts.net>
Date: Sun, 19 Sep 2021 17:34:07 +0200
Subject: [PATCH] fix(pycardium): Fixes for v1.17

---
 bootstrap.sh                            |  1 +
 lib/micropython/meson.build             | 10 +++++-----
 pycardium/main.c                        |  4 ++--
 pycardium/modules/modbluetooth_card10.c |  5 ++++-
 pycardium/modules/utime.c               |  2 +-
 pycardium/mphalport.c                   |  9 +--------
 6 files changed, 14 insertions(+), 17 deletions(-)

diff --git a/bootstrap.sh b/bootstrap.sh
index f8fb29bfb..836edfb84 100755
--- a/bootstrap.sh
+++ b/bootstrap.sh
@@ -5,6 +5,7 @@ cd "$(dirname "$0")"
 test -d build/ && rm -r build/
 
 # Get external libs (MicroPython, tiny-AES-c, SHA256)
+git submodule deinit --all
 git submodule update --init ./lib
 meson --cross-file card10-cross.ini build/ "$@"
 
diff --git a/lib/micropython/meson.build b/lib/micropython/meson.build
index f85af62c9..7c3e3478c 100644
--- a/lib/micropython/meson.build
+++ b/lib/micropython/meson.build
@@ -50,7 +50,7 @@ micropython_gen_frozen = [
 # Sources
 micropython_includes = include_directories(
   './micropython/',
-  './micropython/lib/utils',
+  './micropython/shared/runtime/',
   './micropython/extmod/',
 )
 
@@ -175,10 +175,10 @@ micropython_sources = files(
 )
 
 micropython_additional_sources = files(
-  'micropython/lib/utils/stdout_helpers.c',
-  'micropython/lib/utils/pyexec.c',
-  'micropython/lib/mp-readline/readline.c',
-  'micropython/lib/timeutils/timeutils.c'
+  'micropython/shared/runtime/stdout_helpers.c',
+  'micropython/shared/runtime/pyexec.c',
+  'micropython/shared/readline/readline.c',
+  'micropython/shared/timeutils/timeutils.c'
 )
 
 micropython_extmod_sources = files(
diff --git a/pycardium/main.c b/pycardium/main.c
index 947f072c1..516b23454 100644
--- a/pycardium/main.c
+++ b/pycardium/main.c
@@ -6,8 +6,8 @@
 
 #include "max32665.h"
 
-#include "lib/utils/pyexec.h"
-#include "lib/mp-readline/readline.h"
+#include "shared/runtime/pyexec.h"
+#include "shared/readline/readline.h"
 #include "py/gc.h"
 #include "py/runtime.h"
 #include "py/stackctrl.h"
diff --git a/pycardium/modules/modbluetooth_card10.c b/pycardium/modules/modbluetooth_card10.c
index 932930d8b..79893bf14 100644
--- a/pycardium/modules/modbluetooth_card10.c
+++ b/pycardium/modules/modbluetooth_card10.c
@@ -679,7 +679,10 @@ int mp_bluetooth_gatts_read(
 }
 // Write a value to the local gatts db (ready to be queried by a central).
 int mp_bluetooth_gatts_write(
-	uint16_t value_handle, const uint8_t *value, size_t value_len
+	uint16_t value_handle,
+	const uint8_t *value,
+	size_t value_len,
+	bool send_update
 ) {
 	// TODO: which return value to choose?
 	mp_bluetooth_gatts_db_write(GATTS_DB, value_handle, value, value_len);
diff --git a/pycardium/modules/utime.c b/pycardium/modules/utime.c
index 1ca16df77..64811a6bf 100644
--- a/pycardium/modules/utime.c
+++ b/pycardium/modules/utime.c
@@ -14,7 +14,7 @@
 #include <stdlib.h>
 
 // Needs to be after the stdint include ...
-#include "lib/timeutils/timeutils.h"
+#include "shared/timeutils/timeutils.h"
 
 /* MicroPython has its epoch at 2000-01-01. Our RTC is in UTC */
 #define EPOCH_OFFSET 946684800UL
diff --git a/pycardium/mphalport.c b/pycardium/mphalport.c
index ede86aba6..038fb5dfa 100644
--- a/pycardium/mphalport.c
+++ b/pycardium/mphalport.c
@@ -128,14 +128,7 @@ intptr_t _sbrk(int incr)
 
 void epic_isr_ctrl_c(void)
 {
-	/* Taken from lib/micropython/micropython/lib/utils/interrupt_char.c */
-	MP_STATE_VM(mp_pending_exception) =
-		MP_OBJ_FROM_PTR(&MP_STATE_VM(mp_kbd_exception));
-#if MICROPY_ENABLE_SCHEDULER
-	if (MP_STATE_VM(sched_state) == MP_SCHED_IDLE) {
-		MP_STATE_VM(sched_state) = MP_SCHED_PENDING;
-	}
-#endif
+	mp_sched_keyboard_interrupt();
 }
 
 void mp_hal_set_interrupt_char(char c)
-- 
GitLab