1/*
2 *   fs/cifs/smberr.h
3 *
4 *   Copyright (c) International Business Machines  Corp., 2002,2004
5 *   Author(s): Steve French (sfrench@us.ibm.com)
6 *
7 *   See Error Codes section of the SNIA CIFS Specification
8 *   for more information
9 *
10 *   This library is free software; you can redistribute it and/or modify
11 *   it under the terms of the GNU Lesser General Public License as published
12 *   by the Free Software Foundation; either version 2.1 of the License, or
13 *   (at your option) any later version.
14 *
15 *   This library is distributed in the hope that it will be useful,
16 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
17 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
18 *   the GNU Lesser General Public License for more details.
19 *
20 *   You should have received a copy of the GNU Lesser General Public License
21 *   along with this library; if not, write to the Free Software
22 *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23 */
24
25#define SUCCESS	0x00	/* The request was successful. */
26#define ERRDOS	0x01	/* Error is from the core DOS operating system set */
27#define ERRSRV	0x02	/* Error is generated by the file server daemon */
28#define ERRHRD	0x03	/* Error is a hardware error. */
29#define ERRCMD	0xFF	/* Command was not in the "SMB" format. */
30
31/* The following error codes may be generated with the SUCCESS error class.*/
32
33/*#define SUCCESS	0	The request was successful. */
34
35/* The following error codes may be generated with the ERRDOS error class.*/
36
37#define ERRbadfunc		1	/* Invalid function. The server did not
38					   recognize or could not perform a
39					   system call generated by the server,
40					   e.g., set the DIRECTORY attribute on
41					   a data file, invalid seek mode. */
42#define ERRbadfile		2	/* File not found. The last component
43					   of a file's pathname could not be
44					   found. */
45#define ERRbadpath		3	/* Directory invalid. A directory
46					   component in a pathname could not be
47					   found. */
48#define ERRnofids		4	/* Too many open files. The server has
49					   no file handles available. */
50#define ERRnoaccess		5	/* Access denied, the client's context
51					   does not permit the requested
52					   function. This includes the
53					   following conditions: invalid rename
54					   command, write to Fid open for read
55					   only, read on Fid open for write
56					   only, attempt to delete a non-empty
57					   directory */
58#define ERRbadfid		6	/* Invalid file handle. The file handle
59					   specified was not recognized by the
60					   server. */
61#define ERRbadmcb		7	/* Memory control blocks destroyed. */
62#define ERRnomem		8	/* Insufficient server memory to
63					   perform the requested function. */
64#define ERRbadmem		9	/* Invalid memory block address. */
65#define ERRbadenv		10	/* Invalid environment. */
66#define ERRbadformat		11	/* Invalid format. */
67#define ERRbadaccess		12	/* Invalid open mode. */
68#define ERRbaddata		13	/* Invalid data (generated only by
69					   IOCTL calls within the server). */
70#define ERRbaddrive		15	/* Invalid drive specified. */
71#define ERRremcd		16	/* A Delete Directory request attempted
72					   to remove the server's current
73					   directory. */
74#define ERRdiffdevice		17	/* Not same device (e.g., a cross
75					   volume rename was attempted */
76#define ERRnofiles		18	/* A File Search command can find no
77					   more files matching the specified
78					   criteria. */
79#define ERRgeneral		31
80#define ERRbadshare		32	/* The sharing mode specified for an
81					   Open conflicts with existing FIDs on
82					   the file. */
83#define ERRlock			33	/* A Lock request conflicted with an
84					   existing lock or specified an
85					   invalid mode, or an Unlock requested
86					   attempted to remove a lock held by
87					   another process. */
88#define ERRunsup		50
89#define ERRnosuchshare		67
90#define ERRfilexists		80	/* The file named in the request
91					   already exists. */
92#define ERRinvparm		87
93#define ERRdiskfull		112
94#define ERRinvname		123
95#define ERRinvlevel		124
96#define ERRdirnotempty		145
97#define ERRnotlocked		158
98#define ERRcancelviolation	173
99#define ERRalreadyexists	183
100#define ERRbadpipe		230
101#define ERRpipebusy		231
102#define ERRpipeclosing		232
103#define ERRnotconnected		233
104#define ERRmoredata		234
105#define ERReasnotsupported	282
106#define ErrQuota		0x200	/* The operation would cause a quota
107					   limit to be exceeded. */
108#define ErrNotALink		0x201	/* A link operation was performed on a
109					   pathname that was not a link. */
110
111/* Below errors are used internally (do not come over the wire) for passthrough
112   from STATUS codes to POSIX only  */
113#define ErrTooManyLinks         0xFFFE
114
115/* Following error codes may be generated with the ERRSRV error class.*/
116
117#define ERRerror		1	/* Non-specific error code. It is
118					   returned under the following
119					   conditions: resource other than disk
120					   space exhausted (e.g. TIDs), first
121					   SMB command was not negotiate,
122					   multiple negotiates attempted, and
123					   internal server error. */
124#define ERRbadpw		2	/* Bad password - name/password pair in
125					   a TreeConnect or Session Setup are
126					   invalid. */
127#define ERRbadtype		3	/* used for indicating DFS referral
128					   needed */
129#define ERRaccess		4	/* The client does not have the
130					   necessary access rights within the
131					   specified context for requested
132					   function. */
133#define ERRinvtid		5	/* The Tid specified in a command was
134					   invalid. */
135#define ERRinvnetname		6	/* Invalid network name in tree
136					   connect. */
137#define ERRinvdevice		7	/* Invalid device - printer request
138					   made to non-printer connection or
139					   non-printer request made to printer
140					   connection. */
141#define ERRqfull		49	/* Print queue full (files) -- returned
142					   by open print file. */
143#define ERRqtoobig		50	/* Print queue full -- no space. */
144#define ERRqeof			51	/* EOF on print queue dump */
145#define ERRinvpfid		52	/* Invalid print file FID. */
146#define ERRsmbcmd		64	/* The server did not recognize the
147					   command received. */
148#define ERRsrverror		65	/* The server encountered an internal
149					   error, e.g., system file
150					   unavailable. */
151#define ERRbadBID		66	/* (obsolete) */
152#define ERRfilespecs		67	/* The Fid and pathname parameters
153					   contained an invalid combination of
154					   values. */
155#define ERRbadLink		68	/* (obsolete) */
156#define ERRbadpermits		69	/* The access permissions specified for
157					   a file or directory are not a valid
158					   combination. */
159#define ERRbadPID		70
160#define ERRsetattrmode		71	/* attribute (mode) is invalid */
161#define ERRpaused		81	/* Server is paused */
162#define ERRmsgoff		82	/* reserved - messaging off */
163#define ERRnoroom		83	/* reserved - no room for message */
164#define ERRrmuns		87	/* reserved - too many remote names */
165#define ERRtimeout		88	/* operation timed out */
166#define ERRnoresource		89	/* No resources available for request
167					   */
168#define ERRtoomanyuids		90	/* Too many UIDs active on this session
169					   */
170#define ERRbaduid		91	/* The UID is not known as a valid user
171					   */
172#define ERRusempx		250	/* temporarily unable to use raw */
173#define ERRusestd		251	/* temporarily unable to use either raw
174					   or mpx */
175#define ERR_NOTIFY_ENUM_DIR	1024
176#define ERRaccountexpired	2239
177#define ERRbadclient		2240
178#define ERRbadLogonTime		2241
179#define ERRpasswordExpired	2242
180#define ERRnetlogonNotStarted	2455
181#define ERRnosupport		0xFFFF
182