From 8c9cc6b7c0fead1a0dad938465596197856adaa5 Mon Sep 17 00:00:00 2001 From: sommersoft Date: Sat, 10 Mar 2018 01:07:17 +0000 Subject: [PATCH] nrf: changed Status to Runtime; instituted runtime singleton --- ports/nrf/Makefile | 4 +- .../supervisor/{Status.c => Runtime.c} | 2 +- ports/nrf/common-hal/supervisor/Runtime.h | 37 +++++++++++++++++ ports/nrf/common-hal/supervisor/__init__.c | 40 +++++++++++++++++++ 4 files changed, 80 insertions(+), 3 deletions(-) rename ports/nrf/common-hal/supervisor/{Status.c => Runtime.c} (96%) create mode 100755 ports/nrf/common-hal/supervisor/Runtime.h create mode 100755 ports/nrf/common-hal/supervisor/__init__.c diff --git a/ports/nrf/Makefile b/ports/nrf/Makefile index bc282c961a..b2c3533b17 100644 --- a/ports/nrf/Makefile +++ b/ports/nrf/Makefile @@ -207,7 +207,8 @@ SRC_COMMON_HAL += \ pulseio/PulseOut.c \ pulseio/PWMOut.c \ storage/__init__.c \ - supervisor/Status.c \ + supervisor/__init__.c \ + supervisor/Runtime.c \ # These don't have corresponding files in each port but are still located in # shared-bindings to make it clear what the contents of the modules are. @@ -218,7 +219,6 @@ SRC_BINDINGS_ENUMS = \ microcontroller/RunMode.c \ help.c \ math/__init__.c \ - supervisor/__init__.c \ util.c SRC_COMMON_HAL_EXPANDED = $(addprefix shared-bindings/, $(SRC_COMMON_HAL)) \ diff --git a/ports/nrf/common-hal/supervisor/Status.c b/ports/nrf/common-hal/supervisor/Runtime.c similarity index 96% rename from ports/nrf/common-hal/supervisor/Status.c rename to ports/nrf/common-hal/supervisor/Runtime.c index 8c36e8740e..b73a94a1ba 100755 --- a/ports/nrf/common-hal/supervisor/Status.c +++ b/ports/nrf/common-hal/supervisor/Runtime.c @@ -25,7 +25,7 @@ */ #include -#include "shared-bindings/supervisor/Status.h" +#include "shared-bindings/supervisor/Runtime.h" #include "supervisor/serial.h" bool common_hal_get_serial_connected(void) { diff --git a/ports/nrf/common-hal/supervisor/Runtime.h b/ports/nrf/common-hal/supervisor/Runtime.h new file mode 100755 index 0000000000..dbff22e4c9 --- /dev/null +++ b/ports/nrf/common-hal/supervisor/Runtime.h @@ -0,0 +1,37 @@ +/* + * This file is part of the MicroPython project, http://micropython.org/ + * + * The MIT License (MIT) + * + * Copyright (c) 2018 Michael Schroeder + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#ifndef MICROPY_INCLUDED_NRF_COMMON_HAL_SUPERVISOR_RUNTIME_H +#define MICROPY_INCLUDED_NRF_COMMON_HAL_SUPERVISOR_RUNTIME_H + +#include "py/obj.h" + +typedef struct { + mp_obj_base_t base; + // Stores no state currently. +} super_runtime_obj_t; + +#endif // MICROPY_INCLUDED_NRF_COMMON_HAL_SUPERVISOR_RUNTIME_H diff --git a/ports/nrf/common-hal/supervisor/__init__.c b/ports/nrf/common-hal/supervisor/__init__.c new file mode 100755 index 0000000000..ac88556b45 --- /dev/null +++ b/ports/nrf/common-hal/supervisor/__init__.c @@ -0,0 +1,40 @@ +/* + * This file is part of the MicroPython project, http://micropython.org/ + * + * The MIT License (MIT) + * + * Copyright (c) 2018 Michael Schroeder + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + + +#include "py/obj.h" + +#include "shared-bindings/supervisor/__init__.h" +#include "shared-bindings/supervisor/Runtime.h" + + +// The singleton supervisor.Runtime object, bound to supervisor.runtime +// It currently only has properties, and no state. +const super_runtime_obj_t common_hal_supervisor_runtime_obj = { + .base = { + .type = &supervisor_runtime_type, + }, +}; \ No newline at end of file