Skip to content

Commit

Permalink
py/mphal: Move configuration of ATOMIC_SECTION macros to mphal.h.
Browse files Browse the repository at this point in the history
MICROPY_BEGIN_ATOMIC_SECTION/MICROPY_END_ATOMIC_SECTION belong more to the
MicroPython HAL rather than build configuration settings, so move their
default configuration to py/mphal.h, and require all users of these macros
to include py/mphal.h (here, py/objexcept.c and py/scheduler.c).

This helps ports separate configuration from their HAL implementations, and
can improve build times (because mpconfig.h is included everywhere, whereas
mphal.h is not).

Signed-off-by: Damien George <[email protected]>
  • Loading branch information
dpgeorge committed Dec 1, 2023
1 parent 7d784e5 commit bfdf500
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 8 deletions.
8 changes: 0 additions & 8 deletions py/mpconfig.h
Original file line number Diff line number Diff line change
Expand Up @@ -1850,14 +1850,6 @@ typedef double mp_float_t;
#endif
#endif

// On embedded platforms, these will typically enable/disable irqs.
#ifndef MICROPY_BEGIN_ATOMIC_SECTION
#define MICROPY_BEGIN_ATOMIC_SECTION() (0)
#endif
#ifndef MICROPY_END_ATOMIC_SECTION
#define MICROPY_END_ATOMIC_SECTION(state) (void)(state)
#endif

// Allow to override static modifier for global objects, e.g. to use with
// object code analysis tools which don't support static symbols.
#ifndef STATIC
Expand Down
8 changes: 8 additions & 0 deletions py/mphal.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,14 @@
#include <mphalport.h>
#endif

// On embedded platforms, these will typically enable/disable irqs.
#ifndef MICROPY_BEGIN_ATOMIC_SECTION
#define MICROPY_BEGIN_ATOMIC_SECTION() (0)
#endif
#ifndef MICROPY_END_ATOMIC_SECTION
#define MICROPY_END_ATOMIC_SECTION(state) (void)(state)
#endif

#ifndef mp_hal_stdio_poll
uintptr_t mp_hal_stdio_poll(uintptr_t poll_flags);
#endif
Expand Down
2 changes: 2 additions & 0 deletions py/objexcept.c
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,8 @@ void mp_init_emergency_exception_buf(void) {
#else
#define mp_emergency_exception_buf_size MP_STATE_VM(mp_emergency_exception_buf_size)

#include "py/mphal.h" // for MICROPY_BEGIN_ATOMIC_SECTION/MICROPY_END_ATOMIC_SECTION

void mp_init_emergency_exception_buf(void) {
mp_emergency_exception_buf_size = 0;
MP_STATE_VM(mp_emergency_exception_buf) = NULL;
Expand Down
1 change: 1 addition & 0 deletions py/scheduler.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@

#include <stdio.h>

#include "py/mphal.h"
#include "py/runtime.h"

// Schedules an exception on the main thread (for exceptions "thrown" by async
Expand Down

0 comments on commit bfdf500

Please sign in to comment.