Remove dependencies on sys/stat.h when yaffs provides values.
[yaffs2.git] / direct / yportenv.h
index 9127f842bcf318f8a10b779c1703ca5ca83894e5..0d0d0faa2cf6ca04f4b5340830deaa74e2df3b35 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * YAFFS: Yet another Flash File System . A NAND-flash specific file system.
  *
- * Copyright (C) 2002-2010 Aleph One Ltd.
+ * Copyright (C) 2002-2011 Aleph One Ltd.
  *   for Toby Churchill Ltd and Brightstar Engineering
  *
  * Created by Charles Manning <charles@aleph1.co.uk>
@@ -24,11 +24,6 @@ typedef unsigned short u16;
 typedef unsigned u32;
 
 
-#ifndef WIN32
-#include <sys/stat.h>
-#endif
-
-
 #ifdef CONFIG_YAFFS_PROVIDE_DEFS
 /* File types */
 
@@ -44,10 +39,6 @@ typedef unsigned u32;
 #define DT_WHT         14
 
 
-#ifndef WIN32
-#include <sys/stat.h>
-#endif
-
 /*
  * Attribute flags.
  * These are or-ed together to select what has been changed.
@@ -227,6 +218,22 @@ struct iattr {
 #define S_IFMT         0170000
 #endif
 
+#ifndef S_IFSOCK
+#define S_IFSOCK       0140000
+#endif
+
+#ifndef S_IFIFO
+#define S_IFIFO                0010000
+#endif
+
+#ifndef S_IFCHR
+#define S_IFCHR                0020000
+#endif
+
+#ifndef S_IFBLK
+#define S_IFBLK                0060000
+#endif
+
 #ifndef S_IFLNK
 #define S_IFLNK                0120000
 #endif
@@ -239,6 +246,15 @@ struct iattr {
 #define S_IFREG                0100000
 #endif
 
+#define S_ISSOCK(m)    (((m) & S_IFMT) == S_IFSOCK)
+#define S_ISLNK(m)     (((m) & S_IFMT) == S_IFLNK)
+#define S_ISDIR(m)     (((m) & S_IFMT) == S_IFDIR)
+#define S_ISREG(m)     (((m) & S_IFMT) == S_IFREG)
+#define S_ISBLK(m)     (((m) & S_IFMT) == S_IFBLK)
+#define S_ISCHR(m)     (((m) & S_IFMT) == S_IFCHR)
+#define S_ISFIFO(m)    (((m) & S_IFMT) == S_IFIFO)
+
+
 #ifndef S_IREAD 
 #define S_IREAD                0000400
 #endif