blob: 401a5d8566367e2bb5d3d65df5679708e515b2f6 [file] [log] [blame]
Pavel Shilovskybe4cb9e2011-12-29 17:06:33 +04001/*
2 * fs/cifs/smb2glob.h
3 *
4 * Definitions for various global variables and structures
5 *
6 * Copyright (C) International Business Machines Corp., 2002, 2011
7 * Etersoft, 2012
8 * Author(s): Steve French (sfrench@us.ibm.com)
9 * Jeremy Allison (jra@samba.org)
10 * Pavel Shilovsky (pshilovsky@samba.org) 2012
11 *
12 * This library is free software; you can redistribute it and/or modify
13 * it under the terms of the GNU Lesser General Public License as published
14 * by the Free Software Foundation; either version 2.1 of the License, or
15 * (at your option) any later version.
16 *
17 * This library is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
20 * the GNU Lesser General Public License for more details.
21 *
22 */
23#ifndef _SMB2_GLOB_H
24#define _SMB2_GLOB_H
25
Pavel Shilovsky6fc05c22012-09-18 16:20:34 -070026#define SMB2_MAGIC_NUMBER 0xFE534D42
27
Pavel Shilovskybe4cb9e2011-12-29 17:06:33 +040028/*
29 *****************************************************************
30 * Constants go here
31 *****************************************************************
32 */
33
34/*
35 * Identifiers for functions that use the open, operation, close pattern
36 * in smb2inode.c:smb2_open_op_close()
37 */
38#define SMB2_OP_SET_DELETE 1
39#define SMB2_OP_SET_INFO 2
40#define SMB2_OP_QUERY_INFO 3
41#define SMB2_OP_QUERY_DIR 4
42#define SMB2_OP_MKDIR 5
43#define SMB2_OP_RENAME 6
44#define SMB2_OP_DELETE 7
Pavel Shilovsky568798c2012-09-18 16:20:31 -070045#define SMB2_OP_HARDLINK 8
Pavel Shilovskyc839ff22012-09-18 16:20:32 -070046#define SMB2_OP_SET_EOF 9
Steve French897fba12016-05-12 21:20:36 -050047#define SMB2_OP_RMDIR 10
Pavel Shilovskybe4cb9e2011-12-29 17:06:33 +040048
Pavel Shilovsky09a47072012-09-18 16:20:29 -070049/* Used when constructing chained read requests. */
50#define CHAINED_REQUEST 1
51#define START_OF_CHAIN 2
52#define END_OF_CHAIN 4
53#define RELATED_REQUEST 8
54
Pavel Shilovsky3c1bf7e2012-09-18 16:20:30 -070055#define SMB2_SIGNATURE_SIZE (16)
56#define SMB2_NTLMV2_SESSKEY_SIZE (16)
57#define SMB2_HMACSHA256_SIZE (32)
Steve French429b46f2013-06-26 23:45:05 -050058#define SMB2_CMACAES_SIZE (16)
59#define SMB3_SIGNKEY_SIZE (16)
Pavel Shilovsky3c1bf7e2012-09-18 16:20:30 -070060
Pavel Shilovsky2365c4e2014-02-14 13:31:02 +040061/* Maximum buffer size value we can send with 1 credit */
62#define SMB2_MAX_BUFFER_SIZE 65536
63
Pavel Shilovsky31473fc2016-10-24 15:33:04 -070064static inline struct smb2_sync_hdr *get_sync_hdr(void *buf)
65{
66 return &(((struct smb2_hdr *)buf)->sync_hdr);
67}
68
Pavel Shilovskybe4cb9e2011-12-29 17:06:33 +040069#endif /* _SMB2_GLOB_H */