summaryrefslogtreecommitdiff
path: root/source4/ntvfs/posix/vfs_posix.h
diff options
context:
space:
mode:
Diffstat (limited to 'source4/ntvfs/posix/vfs_posix.h')
-rw-r--r--source4/ntvfs/posix/vfs_posix.h50
1 files changed, 31 insertions, 19 deletions
diff --git a/source4/ntvfs/posix/vfs_posix.h b/source4/ntvfs/posix/vfs_posix.h
index 1e6d763fc1..12955ced5c 100644
--- a/source4/ntvfs/posix/vfs_posix.h
+++ b/source4/ntvfs/posix/vfs_posix.h
@@ -26,8 +26,10 @@
/* this is the private structure for the posix vfs backend. It is used
to hold per-connection (per tree connect) state information */
struct pvfs_state {
+ struct smbsrv_tcon *tcon;
const char *base_directory;
+ const char *share_name;
uint_t flags;
struct {
@@ -45,6 +47,22 @@ struct pvfs_state {
the initial search attributes */
uint16_t search_attrib;
} search;
+
+ struct pvfs_file *open_files;
+};
+
+
+/* this is the basic information needed about a file from the filesystem */
+struct pvfs_dos_fileinfo {
+ NTTIME create_time;
+ NTTIME access_time;
+ NTTIME write_time;
+ NTTIME change_time;
+ uint32_t attrib;
+ uint64_t alloc_size;
+ uint32_t nlink;
+ uint32_t ea_size;
+ uint64_t file_id;
};
/*
@@ -58,6 +76,7 @@ struct pvfs_filename {
BOOL has_wildcard;
BOOL exists;
struct stat st;
+ struct pvfs_dos_fileinfo dos;
};
@@ -79,32 +98,25 @@ struct pvfs_search_state {
struct pvfs_dir *dir;
};
-
-/* this is the basic information needed about a file from the filesystem */
-struct pvfs_file_info {
- NTTIME create_time;
- NTTIME access_time;
- NTTIME write_time;
- NTTIME change_time;
- uint32_t attrib;
- uint64_t alloc_size;
- uint64_t size;
- uint32_t nlink;
- uint32_t ea_size;
- uint64_t file_id;
- uint64_t unix_uid;
- uint64_t unix_gid;
- uint32_t unix_file_type;
- uint64_t unix_dev_major;
- uint64_t unix_dev_minor;
- uint64_t unix_permissions;
+/* open file state - this is a temporary implementation
+ to allow some tests to work */
+struct pvfs_file {
+ struct pvfs_file *next, *prev;
+ int fd;
+ uint16_t fnum;
+ struct pvfs_filename *name;
};
+
/* flags to pvfs_resolve_name() */
#define PVFS_RESOLVE_NO_WILDCARD (1<<0)
#define PVFS_RESOLVE_STREAMS (1<<1)
/* flags in pvfs->flags */
#define PVFS_FLAG_CI_FILESYSTEM (1<<0) /* the filesystem is case insensitive */
+#define PVFS_FLAG_MAP_ARCHIVE (1<<1)
+#define PVFS_FLAG_MAP_SYSTEM (1<<2)
+#define PVFS_FLAG_MAP_HIDDEN (1<<3)
+#define PVFS_FLAG_READONLY (1<<4)
#endif /* _VFS_POSIX_H_ */