• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6/include/linux/
1/*
2 *  smb.h
3 *
4 *  Copyright (C) 1995, 1996 by Paal-Kr. Engstad and Volker Lendecke
5 *  Copyright (C) 1997 by Volker Lendecke
6 *
7 */
8
9#ifndef _LINUX_SMB_H
10#define _LINUX_SMB_H
11
12#include <linux/types.h>
13#include <linux/magic.h>
14#ifdef __KERNEL__
15#include <linux/time.h>
16#endif
17
18enum smb_protocol {
19	SMB_PROTOCOL_NONE,
20	SMB_PROTOCOL_CORE,
21	SMB_PROTOCOL_COREPLUS,
22	SMB_PROTOCOL_LANMAN1,
23	SMB_PROTOCOL_LANMAN2,
24	SMB_PROTOCOL_NT1
25};
26
27enum smb_case_hndl {
28	SMB_CASE_DEFAULT,
29	SMB_CASE_LOWER,
30	SMB_CASE_UPPER
31};
32
33struct smb_dskattr {
34        __u16 total;
35        __u16 allocblocks;
36        __u16 blocksize;
37        __u16 free;
38};
39
40struct smb_conn_opt {
41
42        /* The socket */
43	unsigned int fd;
44
45	enum smb_protocol protocol;
46	enum smb_case_hndl case_handling;
47
48	/* Connection-Options */
49
50	__u32              max_xmit;
51	__u16              server_uid;
52	__u16              tid;
53
54        /* The following are LANMAN 1.0 options */
55        __u16              secmode;
56        __u16              maxmux;
57        __u16              maxvcs;
58        __u16              rawmode;
59        __u32              sesskey;
60
61	/* The following are NT LM 0.12 options */
62	__u32              maxraw;
63	__u32              capabilities;
64	__s16              serverzone;
65};
66
67#ifdef __KERNEL__
68
69#define SMB_NLS_MAXNAMELEN 20
70struct smb_nls_codepage {
71	char local_name[SMB_NLS_MAXNAMELEN];
72	char remote_name[SMB_NLS_MAXNAMELEN];
73};
74
75
76#define SMB_MAXNAMELEN 255
77#define SMB_MAXPATHLEN 1024
78
79/*
80 * Contains all relevant data on a SMB networked file.
81 */
82struct smb_fattr {
83	__u16 attr;
84
85	unsigned long	f_ino;
86	umode_t		f_mode;
87	nlink_t		f_nlink;
88	uid_t		f_uid;
89	gid_t		f_gid;
90	dev_t		f_rdev;
91	loff_t		f_size;
92	struct timespec	f_atime;
93	struct timespec f_mtime;
94	struct timespec f_ctime;
95	unsigned long	f_blocks;
96	int		f_unix;
97};
98
99enum smb_conn_state {
100	CONN_VALID,		/* everything's fine */
101	CONN_INVALID,		/* Something went wrong, but did not
102				   try to reconnect yet. */
103	CONN_RETRIED,		/* Tried a reconnection, but was refused */
104	CONN_RETRYING		/* Currently trying to reconnect */
105};
106
107#define SMB_HEADER_LEN   37     /* includes everything up to, but not
108                                 * including smb_bcc */
109
110#define SMB_INITIAL_PACKET_SIZE		4000
111#define SMB_MAX_PACKET_SIZE		32768
112
113/* reserve this much space for trans2 parameters. Shouldn't have to be more
114   than 10 or so, but OS/2 seems happier like this. */
115#define SMB_TRANS2_MAX_PARAM 64
116
117#endif
118#endif
119