We need to test for major/minor macros.
authorJeremy Allison <jra@samba.org>
Thu, 10 Jan 2002 01:49:09 +0000 (01:49 +0000)
committerJeremy Allison <jra@samba.org>
Thu, 10 Jan 2002 01:49:09 +0000 (01:49 +0000)
Jeremy.
(This used to be commit ee8c8add7f83d7a794546769c59c85ef8bb5b89a)

source3/acconfig.h
source3/configure.in
source3/include/config.h.in
source3/include/trans2.h

index 8477d5de95d562ba04a616bf285cdebd7d5cbb78..5265979efbf158ab9de7f8ecbabf922dad59b5da 100644 (file)
 #undef HAVE_LDAP
 #undef HAVE_STAT_ST_BLOCKS
 #undef STAT_ST_BLOCKSIZE
+#undef HAVE_DEVICE_MAJOR_FN
+#undef HAVE_DEVICE_MINOR_FN
index ed5bc605efc7edb88bb4f3ed122648562b976f90..864999332cffe7ab9309682670c8cc24e8d6e6c8 100644 (file)
@@ -899,6 +899,30 @@ if test x"$samba_cv_HAVE_STRUCT_DIRENT64" = x"yes"; then
     AC_DEFINE(HAVE_STRUCT_DIRENT64)
 fi
 
+AC_CACHE_CHECK([for major macro],samba_cv_HAVE_DEVICE_MAJOR_FN,[
+AC_TRY_RUN([
+#if defined(HAVE_UNISTD_H)
+#include <unistd.h>
+#endif
+#include <sys/types.h>
+main() { dev_t dev; int i = major(dev); return 0; }],
+samba_cv_HAVE_DEVICE_MAJOR_FN=yes,samba_cv_HAVE_DEVICE_MAJOR_FN=no,samba_cv_HAVE_DEVICE_MAJOR_FN=cross)])
+if test x"$samba_cv_HAVE_DEVICE_MAJOR_FN" = x"yes"; then
+    AC_DEFINE(HAVE_DEVICE_MAJOR_FN)
+fi
+
+AC_CACHE_CHECK([for minor macro],samba_cv_HAVE_DEVICE_MINOR_FN,[
+AC_TRY_RUN([
+#if defined(HAVE_UNISTD_H)
+#include <unistd.h>
+#endif
+#include <sys/types.h>
+main() { dev_t dev; int i = minor(dev); return 0; }],
+samba_cv_HAVE_DEVICE_MINOR_FN=yes,samba_cv_HAVE_DEVICE_MINOR_FN=no,samba_cv_HAVE_DEVICE_MINOR_FN=cross)])
+if test x"$samba_cv_HAVE_DEVICE_MINOR_FN" = x"yes"; then
+    AC_DEFINE(HAVE_DEVICE_MINOR_FN)
+fi
+
 AC_CACHE_CHECK([for unsigned char],samba_cv_HAVE_UNSIGNED_CHAR,[
 AC_TRY_RUN([#include <stdio.h>
 main() { char c; c=250; exit((c > 0)?0:1); }],
index 164d2fb755cb4fca2a00d49ee878c930185367af..fe4ff0df38847f43cb88e89b5f11fd2cdcffa9e6 100644 (file)
 #undef HAVE_LDAP
 #undef HAVE_STAT_ST_BLOCKS
 #undef STAT_ST_BLOCKSIZE
+#undef HAVE_DEVICE_MAJOR_FN
+#undef HAVE_DEVICE_MINOR_FN
 
 /* The number of bytes in a int.  */
 #undef SIZEOF_INT
index 55b1670aa756cf1dbad4c1d01b0a6a83a11bd281..53f351d5cf170ba6cb4715f4bdc3356f26e787c1 100644 (file)
@@ -316,11 +316,21 @@ Byte offset   Type     name                description
 #define MIN_UNIX_INFO_LEVEL 0x200
 #define MAX_UNIX_INFO_LEVEL 0x2FF
 
+#define INFO_LEVEL_IS_UNIX(level) (((level) >= MIN_UNIX_INFO_LEVEL) && ((level) <= MAX_UNIX_INFO_LEVEL))
+
 #define SMB_QUERY_FILE_UNIX_BASIC      0x200   /* UNIX File Info*/
 #define SMB_SET_FILE_UNIX_BASIC        0x200
 
 #define MODE_NO_CHANGE                 -1     /* file mode value which */
                                               /* means "don't change it" */
+#define UNIX_TYPE_FILE 0
+#define UNIX_TYPE_DIR 1
+#define UNIX_TYPE_SYMLINK 2
+#define UNIX_TYPE_CHARDEV 3
+#define UNIX_TYPE_BLKDEV 4
+#define UNIX_TYPE_FIFO 5
+#define UNIX_TYPE_SOCKET 6
+#define UNIx_TYPE_UNKNOWN 0xFFFFFFFF
 
 /*
  LARGE_INTEGER EndOfFile                File size
@@ -337,6 +347,7 @@ Byte offset   Type     name                description
                                          3 -- Character device
                                          4 -- Block device
                                          5 -- FIFO (named pipe)
+                                         6 -- Unix domain socket
 
  LARGE_INTEGER devmajor                 Major device number if type is device
  LARGE_INTEGER devminor                 Minor device number if type is device