Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
675c4679
Commit
675c4679
authored
Apr 17, 2008
by
Steve French
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[CIFS] Add various missing flags and defintions
Signed-off-by:
Steve French
<
sfrench@us.ibm.com
>
parent
20e67381
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
105 additions
and
14 deletions
+105
-14
fs/cifs/README
fs/cifs/README
+8
-1
fs/cifs/cifspdu.h
fs/cifs/cifspdu.h
+97
-13
No files found.
fs/cifs/README
View file @
675c4679
...
@@ -3,7 +3,14 @@ features such as hierarchical dfs like namespace, hardlinks, locking and more.
...
@@ -3,7 +3,14 @@ features such as hierarchical dfs like namespace, hardlinks, locking and more.
It was designed to comply with the SNIA CIFS Technical Reference (which
It was designed to comply with the SNIA CIFS Technical Reference (which
supersedes the 1992 X/Open SMB Standard) as well as to perform best practice
supersedes the 1992 X/Open SMB Standard) as well as to perform best practice
practical interoperability with Windows 2000, Windows XP, Samba and equivalent
practical interoperability with Windows 2000, Windows XP, Samba and equivalent
servers.
servers. This code was developed in participation with the Protocol Freedom
Information Foundation.
Please see
http://protocolfreedom.org/ and
http://samba.org/samba/PFIF/
for more details.
For questions or bug reports please contact:
For questions or bug reports please contact:
sfrench@samba.org (sfrench@us.ibm.com)
sfrench@samba.org (sfrench@us.ibm.com)
...
...
fs/cifs/cifspdu.h
View file @
675c4679
/*
/*
* fs/cifs/cifspdu.h
* fs/cifs/cifspdu.h
*
*
* Copyright (c) International Business Machines Corp., 2002,200
7
* Copyright (c) International Business Machines Corp., 2002,200
8
* Author(s): Steve French (sfrench@us.ibm.com)
* Author(s): Steve French (sfrench@us.ibm.com)
*
*
* This library is free software; you can redistribute it and/or modify
* This library is free software; you can redistribute it and/or modify
...
@@ -163,7 +163,10 @@
...
@@ -163,7 +163,10 @@
path names in response */
path names in response */
#define SMBFLG2_KNOWS_EAS cpu_to_le16(2)
#define SMBFLG2_KNOWS_EAS cpu_to_le16(2)
#define SMBFLG2_SECURITY_SIGNATURE cpu_to_le16(4)
#define SMBFLG2_SECURITY_SIGNATURE cpu_to_le16(4)
#define SMBFLG2_COMPRESSED (8)
#define SMBFLG2_SECURITY_SIGNATURE_REQUIRED (0x10)
#define SMBFLG2_IS_LONG_NAME cpu_to_le16(0x40)
#define SMBFLG2_IS_LONG_NAME cpu_to_le16(0x40)
#define SMBFLG2_REPARSE_PATH (0x400)
#define SMBFLG2_EXT_SEC cpu_to_le16(0x800)
#define SMBFLG2_EXT_SEC cpu_to_le16(0x800)
#define SMBFLG2_DFS cpu_to_le16(0x1000)
#define SMBFLG2_DFS cpu_to_le16(0x1000)
#define SMBFLG2_PAGING_IO cpu_to_le16(0x2000)
#define SMBFLG2_PAGING_IO cpu_to_le16(0x2000)
...
@@ -305,7 +308,7 @@
...
@@ -305,7 +308,7 @@
#define FILE_SHARE_DELETE 0x00000004
#define FILE_SHARE_DELETE 0x00000004
#define FILE_SHARE_ALL 0x00000007
#define FILE_SHARE_ALL 0x00000007
/* CreateDisposition flags */
/* CreateDisposition flags
, similar to CreateAction as well
*/
#define FILE_SUPERSEDE 0x00000000
#define FILE_SUPERSEDE 0x00000000
#define FILE_OPEN 0x00000001
#define FILE_OPEN 0x00000001
#define FILE_CREATE 0x00000002
#define FILE_CREATE 0x00000002
...
@@ -317,15 +320,25 @@
...
@@ -317,15 +320,25 @@
#define CREATE_NOT_FILE 0x00000001
/* if set must not be file */
#define CREATE_NOT_FILE 0x00000001
/* if set must not be file */
#define CREATE_WRITE_THROUGH 0x00000002
#define CREATE_WRITE_THROUGH 0x00000002
#define CREATE_SEQUENTIAL 0x00000004
#define CREATE_SEQUENTIAL 0x00000004
#define CREATE_SYNC_ALERT 0x00000010
#define CREATE_NO_BUFFER 0x00000008
/* should not buffer on srv */
#define CREATE_ASYNC_ALERT 0x00000020
#define CREATE_SYNC_ALERT 0x00000010
/* MBZ */
#define CREATE_ASYNC_ALERT 0x00000020
/* MBZ */
#define CREATE_NOT_DIR 0x00000040
/* if set must not be directory */
#define CREATE_NOT_DIR 0x00000040
/* if set must not be directory */
#define CREATE_TREE_CONNECTION 0x00000080
/* should be zero */
#define CREATE_COMPLETE_IF_OPLK 0x00000100
/* should be zero */
#define CREATE_NO_EA_KNOWLEDGE 0x00000200
#define CREATE_NO_EA_KNOWLEDGE 0x00000200
#define CREATE_EIGHT_DOT_THREE 0x00000400
#define CREATE_EIGHT_DOT_THREE 0x00000400
/* doc says this is obsolete
open for recovery flag - should
be zero */
#define CREATE_RANDOM_ACCESS 0x00000800
#define CREATE_RANDOM_ACCESS 0x00000800
#define CREATE_DELETE_ON_CLOSE 0x00001000
#define CREATE_DELETE_ON_CLOSE 0x00001000
#define CREATE_OPEN_BY_ID 0x00002000
#define CREATE_OPEN_BY_ID 0x00002000
#define CREATE_OPEN_BACKUP_INTN 0x00004000
#define CREATE_NO_COMPRESSION 0x00008000
#define CREATE_RESERVE_OPFILTER 0x00100000
/* should be zero */
#define OPEN_REPARSE_POINT 0x00200000
#define OPEN_REPARSE_POINT 0x00200000
#define OPEN_NO_RECALL 0x00400000
#define OPEN_FREE_SPACE_QUERY 0x00800000
/* should be zero */
#define CREATE_OPTIONS_MASK 0x007FFFFF
#define CREATE_OPTIONS_MASK 0x007FFFFF
#define CREATE_OPTION_SPECIAL 0x20000000
/* system. NB not sent over wire */
#define CREATE_OPTION_SPECIAL 0x20000000
/* system. NB not sent over wire */
...
@@ -470,7 +483,7 @@ typedef struct lanman_neg_rsp {
...
@@ -470,7 +483,7 @@ typedef struct lanman_neg_rsp {
typedef
struct
negotiate_rsp
{
typedef
struct
negotiate_rsp
{
struct
smb_hdr
hdr
;
/* wct = 17 */
struct
smb_hdr
hdr
;
/* wct = 17 */
__le16
DialectIndex
;
__le16
DialectIndex
;
/* 0xFFFF = no dialect acceptable */
__u8
SecurityMode
;
__u8
SecurityMode
;
__le16
MaxMpxCount
;
__le16
MaxMpxCount
;
__le16
MaxNumberVcs
;
__le16
MaxNumberVcs
;
...
@@ -516,10 +529,11 @@ typedef struct negotiate_rsp {
...
@@ -516,10 +529,11 @@ typedef struct negotiate_rsp {
#define CAP_INFOLEVEL_PASSTHRU 0x00002000
#define CAP_INFOLEVEL_PASSTHRU 0x00002000
#define CAP_LARGE_READ_X 0x00004000
#define CAP_LARGE_READ_X 0x00004000
#define CAP_LARGE_WRITE_X 0x00008000
#define CAP_LARGE_WRITE_X 0x00008000
#define CAP_LWIO 0x00010000
/* support fctl_srv_req_resume_key */
#define CAP_UNIX 0x00800000
#define CAP_UNIX 0x00800000
#define CAP_
RESERVED
0x02000000
#define CAP_
COMPRESSED_DATA
0x02000000
#define CAP_
BULK_TRANSFER
0x20000000
#define CAP_
DYNAMIC_REAUTH
0x20000000
#define CAP_
COMPRESSED_DATA
0x40000000
#define CAP_
PERSISTENT_HANDLES
0x40000000
#define CAP_EXTENDED_SECURITY 0x80000000
#define CAP_EXTENDED_SECURITY 0x80000000
typedef
union
smb_com_session_setup_andx
{
typedef
union
smb_com_session_setup_andx
{
...
@@ -668,9 +682,7 @@ typedef struct smb_com_tconx_req {
...
@@ -668,9 +682,7 @@ typedef struct smb_com_tconx_req {
}
__attribute__
((
packed
))
TCONX_REQ
;
}
__attribute__
((
packed
))
TCONX_REQ
;
typedef
struct
smb_com_tconx_rsp
{
typedef
struct
smb_com_tconx_rsp
{
struct
smb_hdr
hdr
;
/* wct = 3 note that Win2000 has sent wct = 7
struct
smb_hdr
hdr
;
/* wct = 3 , not extended response */
in some cases on responses. Four unspecified
words followed OptionalSupport */
__u8
AndXCommand
;
__u8
AndXCommand
;
__u8
AndXReserved
;
__u8
AndXReserved
;
__le16
AndXOffset
;
__le16
AndXOffset
;
...
@@ -680,13 +692,48 @@ typedef struct smb_com_tconx_rsp {
...
@@ -680,13 +692,48 @@ typedef struct smb_com_tconx_rsp {
/* STRING NativeFileSystem */
/* STRING NativeFileSystem */
}
__attribute__
((
packed
))
TCONX_RSP
;
}
__attribute__
((
packed
))
TCONX_RSP
;
typedef
struct
smb_com_tconx_rsp_ext
{
struct
smb_hdr
hdr
;
/* wct = 7, extended response */
__u8
AndXCommand
;
__u8
AndXReserved
;
__le16
AndXOffset
;
__le16
OptionalSupport
;
/* see below */
__le32
MaximalShareAccessRights
;
__le32
GuestMaximalShareAccessRights
;
__u16
ByteCount
;
unsigned
char
Service
[
1
];
/* always ASCII, not Unicode */
/* STRING NativeFileSystem */
}
__attribute__
((
packed
))
TCONX_RSP_EXT
;
/* tree connect Flags */
/* tree connect Flags */
#define DISCONNECT_TID 0x0001
#define DISCONNECT_TID 0x0001
#define TCON_EXTENDED_SIGNATURES 0x0004
#define TCON_EXTENDED_SECINFO 0x0008
#define TCON_EXTENDED_SECINFO 0x0008
/* OptionalSupport bits */
/* OptionalSupport bits */
#define SMB_SUPPORT_SEARCH_BITS 0x0001
/* "must have" directory search bits
#define SMB_SUPPORT_SEARCH_BITS 0x0001
/* "must have" directory search bits
(exclusive searches supported) */
(exclusive searches supported) */
#define SMB_SHARE_IS_IN_DFS 0x0002
#define SMB_SHARE_IS_IN_DFS 0x0002
#define SMB_CSC_MASK 0x000C
/* CSC flags defined as follows */
#define SMB_CSC_CACHE_MANUAL_REINT 0x0000
#define SMB_CSC_CACHE_AUTO_REINT 0x0004
#define SMB_CSC_CACHE_VDO 0x0008
#define SMB_CSC_NO_CACHING 0x000C
#define SMB_UNIQUE_FILE_NAME 0x0010
#define SMB_EXTENDED_SIGNATURES 0x0020
/* services
*
* A: ie disk
* LPT1: ie printer
* IPC ie named pipe
* COMM
* ????? ie any type
*
*/
typedef
struct
smb_com_logoff_andx_req
{
typedef
struct
smb_com_logoff_andx_req
{
struct
smb_hdr
hdr
;
/* wct = 2 */
struct
smb_hdr
hdr
;
/* wct = 2 */
...
@@ -750,6 +797,17 @@ typedef struct smb_com_findclose_req {
...
@@ -750,6 +797,17 @@ typedef struct smb_com_findclose_req {
#define COMM_DEV_TYPE 0x0004
#define COMM_DEV_TYPE 0x0004
#define UNKNOWN_TYPE 0xFFFF
#define UNKNOWN_TYPE 0xFFFF
/* Device Type or File Status Flags */
#define NO_EAS 0x0001
#define NO_SUBSTREAMS 0x0002
#define NO_REPARSETAG 0x0004
/* following flags can apply if pipe */
#define ICOUNT_MASK 0x00FF
#define PIPE_READ_MODE 0x0100
#define NAMED_PIPE_TYPE 0x0400
#define PIPE_END_POINT 0x0800
#define BLOCKING_NAMED_PIPE 0x8000
typedef
struct
smb_com_open_req
{
/* also handles create */
typedef
struct
smb_com_open_req
{
/* also handles create */
struct
smb_hdr
hdr
;
/* wct = 24 */
struct
smb_hdr
hdr
;
/* wct = 24 */
__u8
AndXCommand
;
__u8
AndXCommand
;
...
@@ -758,7 +816,7 @@ typedef struct smb_com_open_req { /* also handles create */
...
@@ -758,7 +816,7 @@ typedef struct smb_com_open_req { /* also handles create */
__u8
Reserved
;
/* Must Be Zero */
__u8
Reserved
;
/* Must Be Zero */
__le16
NameLength
;
__le16
NameLength
;
__le32
OpenFlags
;
__le32
OpenFlags
;
__
le32
RootDirectoryFid
;
__
u32
RootDirectoryFid
;
__le32
DesiredAccess
;
__le32
DesiredAccess
;
__le64
AllocationSize
;
__le64
AllocationSize
;
__le32
FileAttributes
;
__le32
FileAttributes
;
...
@@ -801,6 +859,32 @@ typedef struct smb_com_open_rsp {
...
@@ -801,6 +859,32 @@ typedef struct smb_com_open_rsp {
__u16
ByteCount
;
/* bct = 0 */
__u16
ByteCount
;
/* bct = 0 */
}
__attribute__
((
packed
))
OPEN_RSP
;
}
__attribute__
((
packed
))
OPEN_RSP
;
typedef
struct
smb_com_open_rsp_ext
{
struct
smb_hdr
hdr
;
/* wct = 42 but meaningless due to MS bug? */
__u8
AndXCommand
;
__u8
AndXReserved
;
__le16
AndXOffset
;
__u8
OplockLevel
;
__u16
Fid
;
__le32
CreateAction
;
__le64
CreationTime
;
__le64
LastAccessTime
;
__le64
LastWriteTime
;
__le64
ChangeTime
;
__le32
FileAttributes
;
__le64
AllocationSize
;
__le64
EndOfFile
;
__le16
FileType
;
__le16
DeviceState
;
__u8
DirectoryFlag
;
__u8
VolumeGUID
[
16
];
__u64
FileId
;
/* note no endian conversion - is opaque UniqueID */
__le32
MaximalAccessRights
;
__le32
GuestMaximalAccessRights
;
__u16
ByteCount
;
/* bct = 0 */
}
__attribute__
((
packed
))
OPEN_RSP_EXT
;
/* format of legacy open request */
/* format of legacy open request */
typedef
struct
smb_com_openx_req
{
typedef
struct
smb_com_openx_req
{
struct
smb_hdr
hdr
;
/* wct = 15 */
struct
smb_hdr
hdr
;
/* wct = 15 */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment