2 * (c) The GRASP/AQUA Project, Glasgow University, 1994-
4 * Directory Runtime Support
8 #if defined(mingw32_TARGET_OS)
24 #define offsetof(t, f) ((size_t) &((t *)0)->f)
28 prel_mkdir(HsAddr pathName, HsInt mode)
30 #if defined(mingw32_TARGET_OS)
31 return mkdir(pathName);
33 return mkdir(pathName,mode);
38 prel_lstat(HsAddr fname, HsAddr st)
41 return lstat((const char*)fname, (struct stat*)st);
43 return stat((const char*)fname, (struct stat*)st);
47 HsInt prel_s_ISDIR(mode_t m) {return S_ISDIR(m);}
48 HsInt prel_s_ISREG(mode_t m) {return S_ISREG(m);}
50 HsInt prel_sz_stat() { return sizeof(struct stat); }
51 HsInt prel_path_max() { return PATH_MAX; }
52 mode_t prel_R_OK() { return R_OK; }
53 mode_t prel_W_OK() { return W_OK; }
54 mode_t prel_X_OK() { return X_OK; }
56 mode_t prel_S_IRUSR() { return S_IRUSR; }
57 mode_t prel_S_IWUSR() { return S_IWUSR; }
58 mode_t prel_S_IXUSR() { return S_IXUSR; }
60 time_t prel_st_mtime(struct stat* st) { return st->st_mtime; }
61 mode_t prel_st_mode(struct stat* st) { return st->st_mode; }
63 HsAddr prel_d_name(struct dirent* d)
65 #ifndef mingw32_TARGET_OS
66 return (HsAddr)((char*)d + (long)offsetof(struct dirent,d_name));
68 return (HsAddr)(d->d_name);
72 HsInt prel_end_of_dir()
74 #ifndef mingw32_TARGET_OS