- added FAST_SHARE_MODES code
[samba.git] / source3 / include / smb.h
index 317f31b19ed4d18eb62ba0a6dd7d09b116860188..c9180dd50ca560b16c77d43148b844069853ea15 100644 (file)
@@ -36,8 +36,9 @@
 #define BUFFER_SIZE (0xFFFF)
 #define SAFETY_MARGIN 1024
 
-#ifndef EXTERN
-#      define EXTERN extern
+/* size of shared memory used for share mode locking */
+#ifndef SHMEM_SIZE
+#define SHMEM_SIZE 102400
 #endif
 
 #define NMB_PORT 137
 
 typedef int BOOL;
 
+/* offset in shared memory */
+typedef  int shm_offset_t;
+#define NULL_OFFSET (shm_offset_t)(0)
+
+
 /*
    Samba needs type definitions for int16, int32, uint16 and uint32.
    
@@ -106,7 +112,7 @@ typedef unsigned int uint32;
 #ifndef SYSLOG
 #define DEBUG(level,body) ((DEBUGLEVEL>=(level))?(Debug1 body):0)
 #else
-EXTERN int syslog_level;
+extern int syslog_level;
 
 #define DEBUG(level,body) ((DEBUGLEVEL>=(level))? (syslog_level = (level), Debug1 body):0)
 #endif
@@ -395,6 +401,20 @@ struct interface
        struct in_addr nmask;
 };
 
+/* share mode record in shared memory */
+typedef struct
+{
+  shm_offset_t next_offset; /* offset of next record in list in shared mem */
+  int locking_version;
+  int share_mode;
+  time_t time;
+  int pid;
+  dev_t st_dev;
+  ino_t st_ino;
+  char file_name[1];   /* dynamically allocated with correct size */
+} share_mode_record;
+
+
 /* this is used for smbstatus */
 struct connect_record
 {