summaryrefslogtreecommitdiff
path: root/source4/ntvfs/posix/vfs_posix.h
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2004-09-20 07:28:43 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:58:52 -0500
commit8a1c3ddd947039bf3b62efd94d3429359b593e15 (patch)
tree624a515f2654edd6854e7567173d9ce083eb925d /source4/ntvfs/posix/vfs_posix.h
parent421c0d2a187481c74ebee0937be9ba0a47752fa6 (diff)
downloadsamba-8a1c3ddd947039bf3b62efd94d3429359b593e15.tar.gz
samba-8a1c3ddd947039bf3b62efd94d3429359b593e15.tar.bz2
samba-8a1c3ddd947039bf3b62efd94d3429359b593e15.zip
r2436: the second big lump of posix vfs code.
this is still just a skeleton, and many of the functions are just based on the simple vfs backend, they are there to allow me to run smbtorture tests against the real parts of the posix backend. (This used to be commit f2fa7fe565e89360dba3bb5434d3a6a36f398348)
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_ */