+ return memcpy(dst+dst_off, src+src_off, sz);
+}
+
+
+int s_isreg_PrelPosix_wrap(int m) { return S_ISREG(m); }
+int s_isdir_PrelPosix_wrap(int m) { return S_ISDIR(m); }
+int s_isfifo_PrelPosix_wrap(int m) { return S_ISFIFO(m); }
+int s_isblk_PrelPosix_wrap(int m) { return S_ISBLK(m); }
+int s_ischr_PrelPosix_wrap(int m) { return S_ISCHR(m); }
+#ifndef mingw32_TARGET_OS
+int s_issock_PrelPosix_wrap(int m) { return S_ISSOCK(m); }
+void sigemptyset_PrelPosix_wrap(sigset_t *set) { sigemptyset(set); }
+#endif
+
+HsInt prel_sizeof_stat()
+{
+ return sizeof(struct stat);
+}
+
+time_t prel_st_mtime(struct stat* st) { return st->st_mtime; }
+off_t prel_st_size(struct stat* st) { return st->st_size; }
+mode_t prel_st_mode(struct stat* st) { return st->st_mode; }
+
+#if HAVE_TERMIOS_H
+tcflag_t prel_lflag(struct termios* ts) { return ts->c_lflag; }
+void prel_poke_lflag(struct termios* ts, tcflag_t t) { ts->c_lflag = t; }
+unsigned char* prel_ptr_c_cc(struct termios* ts) { return ((unsigned char*)(ts + offsetof(struct termios, c_cc))); }
+#endif
+
+HsInt prel_sizeof_termios()
+{
+#ifndef mingw32_TARGET_OS
+ return sizeof(struct termios);
+#else
+ return 0;
+#endif
+}
+
+HsInt prel_sizeof_sigset_t()
+{
+#ifndef mingw32_TARGET_OS
+ return sizeof(sigset_t);
+#else
+ return 0;
+#endif
+}
+
+int prel_echo()
+{
+#ifdef ECHO
+ return ECHO;
+#else
+ return 0;
+#endif
+
+}
+int prel_tcsanow()
+{
+#ifdef TCSANOW
+ return TCSANOW;
+#else
+ return 0;
+#endif
+
+}
+
+int prel_icanon()
+{
+#ifdef ICANON
+ return ICANON;
+#else
+ return 0;
+#endif