X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=inline;f=contrib%2Fsb-posix%2Falien%2Fstat-macros.c;fp=contrib%2Fsb-posix%2Falien%2Fstat-macros.c;h=dcd559304bbf7bcc9bdef8a6be893c417d260328;hb=126e0a851c7e170b13c206c530083fc48572ea60;hp=0000000000000000000000000000000000000000;hpb=38da35e372a6e6f353fe5559edf6fca6459ef966;p=sbcl.git diff --git a/contrib/sb-posix/alien/stat-macros.c b/contrib/sb-posix/alien/stat-macros.c new file mode 100644 index 0000000..dcd5593 --- /dev/null +++ b/contrib/sb-posix/alien/stat-macros.c @@ -0,0 +1,61 @@ +/* + * stat-macros.c + * + * Inspired mostly by section 4.3 and 4.21 of APUE + * + */ + +#include +#include +#include + +mode_t s_isreg(mode_t mode) +{ + return S_ISREG(mode); +} + + +mode_t s_isdir(mode_t mode) +{ + return S_ISDIR(mode); +} + + +mode_t s_ischr(mode_t mode) +{ + return S_ISCHR(mode); +} + + +mode_t s_isblk(mode_t mode) +{ + return S_ISBLK(mode); +} + + +mode_t s_isfifo(mode_t mode) +{ + return S_ISFIFO(mode); +} + + +mode_t s_islnk(mode_t mode) +{ +#ifdef S_ISLNK + return S_ISLNK(mode); +#else + return ((mode & S_IFMT) == S_IFLNK); +#endif +} + + +mode_t s_issock(mode_t mode) +{ +#ifdef S_ISSOCK + return S_ISSOCK(mode); +#else + return ((mode & S_IFMT) == S_IFSOCK); +#endif +} + +