Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
•
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
fs
cifs
smb2proto.h
Go to the documentation of this file.
1
/*
2
* fs/cifs/smb2proto.h
3
*
4
* Copyright (c) International Business Machines Corp., 2002, 2011
5
* Etersoft, 2012
6
* Author(s): Steve French (sfrench@us.ibm.com)
7
* Pavel Shilovsky (pshilovsky@samba.org) 2012
8
*
9
* This library is free software; you can redistribute it and/or modify
10
* it under the terms of the GNU Lesser General Public License as published
11
* by the Free Software Foundation; either version 2.1 of the License, or
12
* (at your option) any later version.
13
*
14
* This library is distributed in the hope that it will be useful,
15
* but WITHOUT ANY WARRANTY; without even the implied warranty of
16
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
17
* the GNU Lesser General Public License for more details.
18
*
19
* You should have received a copy of the GNU Lesser General Public License
20
* along with this library; if not, write to the Free Software
21
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22
*/
23
#ifndef _SMB2PROTO_H
24
#define _SMB2PROTO_H
25
#include <
linux/nls.h
>
26
#include <
linux/key-type.h
>
27
28
struct
statfs
;
29
struct
smb_rqst
;
30
31
/*
32
*****************************************************************
33
* All Prototypes
34
*****************************************************************
35
*/
36
extern
int
map_smb2_to_linux_error
(
char
*
buf
,
bool
log_err);
37
extern
int
smb2_check_message
(
char
*
buf
,
unsigned
int
length
);
38
extern
unsigned
int
smb2_calc_size
(
void
*
buf
);
39
extern
char
*
smb2_get_data_area_len
(
int
*off,
int
*len,
struct
smb2_hdr
*
hdr
);
40
extern
__le16
*
cifs_convert_path_to_utf16
(
const
char
*
from
,
41
struct
cifs_sb_info
*cifs_sb);
42
43
extern
int
smb2_verify_signature
(
struct
smb_rqst
*,
struct
TCP_Server_Info
*);
44
extern
int
smb2_check_receive
(
struct
mid_q_entry
*
mid
,
45
struct
TCP_Server_Info
*server,
bool
log_error
);
46
extern
struct
mid_q_entry
*
smb2_setup_request
(
struct
cifs_ses
*ses,
47
struct
smb_rqst
*rqst);
48
extern
struct
mid_q_entry
*
smb2_setup_async_request
(
49
struct
TCP_Server_Info
*
server
,
struct
smb_rqst
*rqst);
50
extern
void
smb2_echo_request
(
struct
work_struct
*
work
);
51
extern
__le32
smb2_get_lease_state
(
struct
cifsInodeInfo
*cinode);
52
extern
__u8
smb2_map_lease_to_oplock
(
__le32
lease_state);
53
extern
bool
smb2_is_valid_oplock_break
(
char
*
buffer
,
54
struct
TCP_Server_Info
*srv);
55
56
extern
void
move_smb2_info_to_cifs
(FILE_ALL_INFO *
dst
,
57
struct
smb2_file_all_info
*
src
);
58
extern
int
smb2_query_path_info
(
const
unsigned
int
xid
,
struct
cifs_tcon
*tcon,
59
struct
cifs_sb_info
*cifs_sb,
60
const
char
*full_path, FILE_ALL_INFO *
data
,
61
bool
*adjust_tz);
62
extern
int
smb2_set_path_size
(
const
unsigned
int
xid
,
struct
cifs_tcon
*tcon,
63
const
char
*full_path,
__u64
size
,
64
struct
cifs_sb_info
*cifs_sb,
bool
set_alloc);
65
extern
int
smb2_set_file_info
(
struct
inode
*
inode
,
const
char
*full_path,
66
FILE_BASIC_INFO *
buf
,
const
unsigned
int
xid
);
67
extern
int
smb2_mkdir
(
const
unsigned
int
xid
,
struct
cifs_tcon
*tcon,
68
const
char
*
name
,
struct
cifs_sb_info
*cifs_sb);
69
extern
void
smb2_mkdir_setinfo
(
struct
inode
*
inode
,
const
char
*full_path,
70
struct
cifs_sb_info
*cifs_sb,
71
struct
cifs_tcon
*tcon,
const
unsigned
int
xid
);
72
extern
int
smb2_rmdir
(
const
unsigned
int
xid
,
struct
cifs_tcon
*tcon,
73
const
char
*
name
,
struct
cifs_sb_info
*cifs_sb);
74
extern
int
smb2_unlink
(
const
unsigned
int
xid
,
struct
cifs_tcon
*tcon,
75
const
char
*
name
,
struct
cifs_sb_info
*cifs_sb);
76
extern
int
smb2_rename_path
(
const
unsigned
int
xid
,
struct
cifs_tcon
*tcon,
77
const
char
*from_name,
const
char
*to_name,
78
struct
cifs_sb_info
*cifs_sb);
79
extern
int
smb2_create_hardlink
(
const
unsigned
int
xid
,
struct
cifs_tcon
*tcon,
80
const
char
*from_name,
const
char
*to_name,
81
struct
cifs_sb_info
*cifs_sb);
82
83
extern
int
smb2_open_file
(
const
unsigned
int
xid
,
struct
cifs_tcon
*tcon,
84
const
char
*full_path,
int
disposition,
85
int
desired_access,
int
create_options,
86
struct
cifs_fid
*
fid
,
__u32
*oplock,
87
FILE_ALL_INFO *
buf
,
struct
cifs_sb_info
*cifs_sb);
88
extern
void
smb2_set_oplock_level
(
struct
cifsInodeInfo
*cinode,
__u32
oplock);
89
extern
int
smb2_unlock_range
(
struct
cifsFileInfo
*cfile,
90
struct
file_lock
*
flock
,
const
unsigned
int
xid
);
91
extern
int
smb2_push_mandatory_locks
(
struct
cifsFileInfo
*cfile);
92
93
/*
94
* SMB2 Worker functions - most of protocol specific implementation details
95
* are contained within these calls.
96
*/
97
extern
int
SMB2_negotiate
(
const
unsigned
int
xid
,
struct
cifs_ses
*ses);
98
extern
int
SMB2_sess_setup
(
const
unsigned
int
xid
,
struct
cifs_ses
*ses,
99
const
struct
nls_table
*nls_cp);
100
extern
int
SMB2_logoff
(
const
unsigned
int
xid
,
struct
cifs_ses
*ses);
101
extern
int
SMB2_tcon
(
const
unsigned
int
xid
,
struct
cifs_ses
*ses,
102
const
char
*
tree
,
struct
cifs_tcon
*tcon,
103
const
struct
nls_table
*);
104
extern
int
SMB2_tdis
(
const
unsigned
int
xid
,
struct
cifs_tcon
*tcon);
105
extern
int
SMB2_open
(
const
unsigned
int
xid
,
struct
cifs_tcon
*tcon,
106
__le16
*
path
,
u64
*persistent_fid,
u64
*volatile_fid,
107
__u32
desired_access,
__u32
create_disposition,
108
__u32
file_attributes,
__u32
create_options,
109
__u8
*oplock,
struct
smb2_file_all_info
*
buf
);
110
extern
int
SMB2_close
(
const
unsigned
int
xid
,
struct
cifs_tcon
*tcon,
111
u64
persistent_file_id,
u64
volatile_file_id);
112
extern
int
SMB2_flush
(
const
unsigned
int
xid
,
struct
cifs_tcon
*tcon,
113
u64
persistent_file_id,
u64
volatile_file_id);
114
extern
int
SMB2_query_info
(
const
unsigned
int
xid
,
struct
cifs_tcon
*tcon,
115
u64
persistent_file_id,
u64
volatile_file_id,
116
struct
smb2_file_all_info
*
data
);
117
extern
int
SMB2_get_srv_num
(
const
unsigned
int
xid
,
struct
cifs_tcon
*tcon,
118
u64
persistent_fid,
u64
volatile_fid,
119
__le64
*uniqueid);
120
extern
int
smb2_async_readv
(
struct
cifs_readdata
*rdata);
121
extern
int
SMB2_read
(
const
unsigned
int
xid
,
struct
cifs_io_parms
*io_parms,
122
unsigned
int
*
nbytes
,
char
**
buf
,
int
*buf_type);
123
extern
int
smb2_async_writev
(
struct
cifs_writedata
*wdata);
124
extern
int
SMB2_write
(
const
unsigned
int
xid
,
struct
cifs_io_parms
*io_parms,
125
unsigned
int
*
nbytes
,
struct
kvec
*iov,
int
n_vec);
126
extern
int
SMB2_echo
(
struct
TCP_Server_Info
*
server
);
127
extern
int
SMB2_query_directory
(
const
unsigned
int
xid
,
struct
cifs_tcon
*tcon,
128
u64
persistent_fid,
u64
volatile_fid,
int
index
,
129
struct
cifs_search_info
*srch_inf);
130
extern
int
SMB2_rename
(
const
unsigned
int
xid
,
struct
cifs_tcon
*tcon,
131
u64
persistent_fid,
u64
volatile_fid,
132
__le16
*target_file);
133
extern
int
SMB2_set_hardlink
(
const
unsigned
int
xid
,
struct
cifs_tcon
*tcon,
134
u64
persistent_fid,
u64
volatile_fid,
135
__le16
*target_file);
136
extern
int
SMB2_set_eof
(
const
unsigned
int
xid
,
struct
cifs_tcon
*tcon,
137
u64
persistent_fid,
u64
volatile_fid,
u32
pid
,
138
__le64
*eof);
139
extern
int
SMB2_set_info
(
const
unsigned
int
xid
,
struct
cifs_tcon
*tcon,
140
u64
persistent_fid,
u64
volatile_fid,
141
FILE_BASIC_INFO *
buf
);
142
extern
int
SMB2_oplock_break
(
const
unsigned
int
xid
,
struct
cifs_tcon
*tcon,
143
const
u64
persistent_fid,
const
u64
volatile_fid,
144
const
__u8
oplock_level);
145
extern
int
SMB2_QFS_info
(
const
unsigned
int
xid
,
struct
cifs_tcon
*tcon,
146
u64
persistent_file_id,
u64
volatile_file_id,
147
struct
kstatfs
*FSData);
148
extern
int
SMB2_lock
(
const
unsigned
int
xid
,
struct
cifs_tcon
*tcon,
149
const
__u64
persist_fid,
const
__u64
volatile_fid,
150
const
__u32
pid
,
const
__u64
length
,
const
__u64
offset
,
151
const
__u32
lockFlags,
const
bool
wait
);
152
extern
int
smb2_lockv
(
const
unsigned
int
xid
,
struct
cifs_tcon
*tcon,
153
const
__u64
persist_fid,
const
__u64
volatile_fid,
154
const
__u32
pid
,
const
__u32
num_lock,
155
struct
smb2_lock_element
*
buf
);
156
extern
int
SMB2_lease_break
(
const
unsigned
int
xid
,
struct
cifs_tcon
*tcon,
157
__u8
*lease_key,
const
__le32
lease_state);
158
159
#endif
/* _SMB2PROTO_H */
Generated on Thu Jan 10 2013 14:46:14 for Linux Kernel by
1.8.2