1
2
3
4
5
6
7
8
9#ifndef _LINUX_SMB_H
10#define _LINUX_SMB_H
11
12#include <linux/types.h>
13
14enum smb_protocol {
15 SMB_PROTOCOL_NONE,
16 SMB_PROTOCOL_CORE,
17 SMB_PROTOCOL_COREPLUS,
18 SMB_PROTOCOL_LANMAN1,
19 SMB_PROTOCOL_LANMAN2,
20 SMB_PROTOCOL_NT1
21};
22
23enum smb_case_hndl {
24 SMB_CASE_DEFAULT,
25 SMB_CASE_LOWER,
26 SMB_CASE_UPPER
27};
28
29struct smb_dskattr {
30 __u16 total;
31 __u16 allocblocks;
32 __u16 blocksize;
33 __u16 free;
34};
35
36struct smb_conn_opt {
37
38
39 unsigned int fd;
40
41 enum smb_protocol protocol;
42 enum smb_case_hndl case_handling;
43
44
45
46 __u32 max_xmit;
47 __u16 server_uid;
48 __u16 tid;
49
50
51 __u16 secmode;
52 __u16 maxmux;
53 __u16 maxvcs;
54 __u16 rawmode;
55 __u32 sesskey;
56
57
58 __u32 maxraw;
59 __u32 capabilities;
60 __s16 serverzone;
61};
62
63#ifdef __KERNEL__
64
65#define SMB_NLS_MAXNAMELEN 20
66struct smb_nls_codepage {
67 char local_name[SMB_NLS_MAXNAMELEN];
68 char remote_name[SMB_NLS_MAXNAMELEN];
69};
70
71
72#define SMB_MAXNAMELEN 255
73#define SMB_MAXPATHLEN 1024
74
75
76
77
78struct smb_fattr {
79
80 __u16 attr;
81
82 unsigned long f_ino;
83 umode_t f_mode;
84 nlink_t f_nlink;
85 uid_t f_uid;
86 gid_t f_gid;
87 kdev_t f_rdev;
88 loff_t f_size;
89 time_t f_atime;
90 time_t f_mtime;
91 time_t f_ctime;
92 unsigned long f_blksize;
93 unsigned long f_blocks;
94 int f_unix;
95};
96
97enum smb_conn_state {
98 CONN_VALID,
99 CONN_INVALID,
100
101 CONN_RETRIED,
102 CONN_RETRYING
103};
104
105#define SMB_SUPER_MAGIC 0x517B
106
107#define SMB_HEADER_LEN 37
108
109
110#define SMB_INITIAL_PACKET_SIZE 4000
111#define SMB_MAX_PACKET_SIZE 32768
112
113
114
115#define SMB_TRANS2_MAX_PARAM 64
116
117#endif
118#endif
119