diff --git a/unix/modos.c b/unix/modos.c
index b29805269d8cc43737e92482a8b0e3d522962792..36945720d1d57e1b1825be1feeb2b33373095692 100644
--- a/unix/modos.c
+++ b/unix/modos.c
@@ -37,6 +37,7 @@
 #include "py/nlr.h"
 #include "py/runtime.h"
 #include "py/objtuple.h"
+#include "py/mphal.h"
 #include "extmod/misc.h"
 
 // Can't include this, as FATFS structure definition is required,
@@ -51,10 +52,6 @@ extern const mp_obj_type_t mp_fat_vfs_type;
 #define USE_STATFS 1
 #endif
 
-#define RAISE_ERRNO(err_flag, error_val) \
-    { if (err_flag == -1) \
-        { mp_raise_OSError(error_val); } }
-
 STATIC mp_obj_t mod_os_stat(mp_obj_t path_in) {
     struct stat sb;
     mp_uint_t len;
diff --git a/unix/modsocket.c b/unix/modsocket.c
index dc4dc4c8813f44c0c2275da16a3310f0f3b6537b..74d22eb731c30bb9f60d64e18f39a233fbec7700 100644
--- a/unix/modsocket.c
+++ b/unix/modsocket.c
@@ -44,6 +44,7 @@
 #include "py/runtime.h"
 #include "py/stream.h"
 #include "py/builtin.h"
+#include "py/mphal.h"
 
 /*
   The idea of this module is to implement reasonable minimum of
@@ -72,10 +73,6 @@ typedef struct _mp_obj_socket_t {
 const mp_obj_type_t mp_type_socket;
 
 // Helper functions
-#define RAISE_ERRNO(err_flag, error_val) \
-    { if (err_flag == -1) \
-        { mp_raise_OSError(error_val); } }
-
 static inline mp_obj_t mp_obj_from_sockaddr(const struct sockaddr *addr, socklen_t len) {
     return mp_obj_new_bytes((const byte *)addr, len);
 }
diff --git a/unix/modtermios.c b/unix/modtermios.c
index 2fef4f223cac63adfa99f7faae40013d44cecf94..2cb5f26df5a6f9f6d2e7fdd6f2e4572385fa72e3 100644
--- a/unix/modtermios.c
+++ b/unix/modtermios.c
@@ -29,13 +29,9 @@
 #include <unistd.h>
 #include <errno.h>
 
-#include "py/nlr.h"
 #include "py/objlist.h"
 #include "py/runtime.h"
-
-#define RAISE_ERRNO(err_flag, error_val) \
-    { if (err_flag == -1) \
-        { mp_raise_OSError(error_val); } }
+#include "py/mphal.h"
 
 STATIC mp_obj_t mod_termios_tcgetattr(mp_obj_t fd_in) {
     struct termios term;