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 (
[email protected]
)
7
* Pavel Shilovsky (
[email protected]
) 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