2022-10-06 00:14:13 +00:00
|
|
|
// Define so there's no dependency on extmod/virtpin.h
|
2023-05-01 14:35:26 +00:00
|
|
|
#define mp_hal_pin_obj_t mp_obj_t
|
2023-05-01 13:11:19 +00:00
|
|
|
|
|
|
|
#if MICROPY_KBD_EXCEPTION
|
|
|
|
void mp_hal_set_interrupt_char(int c);
|
|
|
|
#endif
|
2024-03-30 22:05:20 +00:00
|
|
|
|
|
|
|
#if MICROPY_VFS_POSIX
|
|
|
|
// This macro is used to implement PEP 475 to retry specified syscalls on EINTR
|
|
|
|
#define MP_HAL_RETRY_SYSCALL(ret, syscall, raise) { \
|
|
|
|
for (;;) { \
|
|
|
|
MP_THREAD_GIL_EXIT(); \
|
|
|
|
ret = syscall; \
|
|
|
|
MP_THREAD_GIL_ENTER(); \
|
|
|
|
if (ret == -1) { \
|
|
|
|
int err = errno; \
|
|
|
|
if (err == EINTR) { \
|
|
|
|
mp_handle_pending(true); \
|
|
|
|
continue; \
|
|
|
|
} \
|
|
|
|
raise; \
|
|
|
|
} \
|
|
|
|
break; \
|
|
|
|
} \
|
|
|
|
}
|
|
|
|
#endif
|