/*
 *   fs/cifs/smberr.h
 *
 *   Copyright (c) International Business Machines  Corp., 2002
 *   Author(s): Steve French (sfrench@us.ibm.com)
 *
 *   See Error Codes section of the SNIA CIFS Specification 
 *   for more information 
 *
 *   This library is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU Lesser General Public License as published
 *   by the Free Software Foundation; either version 2.1 of the License, or
 *   (at your option) any later version.
 *
 *   This library is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
 *   the GNU Lesser General Public License for more details.
 *
 *   You should have received a copy of the GNU Lesser General Public License
 *   along with this library; if not, write to the Free Software
 *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 
 */

#define SUCCESS 0		/* The request was successful. */
#define ERRDOS 0x01		/* Error is from the core DOS operating system set */
#define ERRSRV 0x02		/* Error is generated by the file server daemon */
#define ERRHRD 0x03		/* Error is a hardware error. */
#define ERRCMD 0xFF		/*  Command was not in the "SMB" format. */

/* The following error codes may be generated with the SUCCESS error class.*/

#define SUCCESS 0		/* The request was successful. */

/* The following error codes may be generated with the ERRDOS error class.*/

#define ERRbadfunc 1		/* Invalid function. The server did not recognize or could not perform a system call generated by the server, e.g., set the DIRECTORY attribute on a data file, invalid seek mode. */
#define ERRbadfile 2		/*File not found. The last component of a file's pathname could not be found. */
#define ERRbadpath 3		/* Directory invalid. A directory component in a pathname could not be found. */
#define ERRnofids 4		/* Too many open files. The server has no file handles available. */
#define ERRnoaccess 5		/* Access denied, the client's context does not permit the requested function. This includes the following conditions: invalid rename command, write to Fid open for read only, read on Fid open for write only, attempt to delete a non-empty directory */
#define ERRbadfid 6		/* Invalid file handle. The file handle specified was not recognized by the server. */
#define ERRbadmcb 7		/* Memory control blocks destroyed. */
#define ERRnomem 8		/* Insufficient server memory to perform the requested function. */
#define ERRbadmem 9		/* Invalid memory block address. */
#define ERRbadenv 10		/* Invalid environment. */
#define ERRbadformat 11		/* Invalid format. */
#define ERRbadaccess 12		/* Invalid open mode. */
#define ERRbaddata 13		/* Invalid data (generated only by IOCTL calls within the server). */
#define ERRbaddrive 15		/* Invalid drive specified. */
#define ERRremcd 16		/* A Delete Directory request attempted to remove the server's current directory. */
#define ERRdiffdevice 17	/* Not same device (e.g., a cross volume rename was attempted */
#define ERRnofiles 18		/* A File Search command can find no more files matching the specified criteria. */
#define ERRgeneral 31
#define ERRbadshare 32		/* The sharing mode specified for an Open conflicts with existing FIDs on the file. */
#define ERRlock 33		/* A Lock request conflicted with an existing lock or specified an invalid mode, or an Unlock requested attempted to remove a lock held by another process. */
#define ERRunsup     50
#define ERRnosuchshare 67
#define ERRfilexists 80		/* The file named in the request already exists. */
#define ERRinvparm   87
#define ERRdiskfull  112
#define ERRinvnum    123
#define ERRdirnotempty 145
#define ERRnotlocked   158
#define ERRalreadyexists 183
#define ERRbadpipe 230
#define ERRpipebusy 231
#define ERRpipeclosing 232
#define ERRnotconnected 233
#define ERRmoredata    234
#define ErrQuota 0x200		/* The operation would cause a quota limit to be exceeded. */
#define ErrNotALink 0x201	/* A link operation was performed on a pathname that
				   was not a link. */

/* Following error codes may be generated with the ERRSRV error
class.*/

#define ERRerror 1		/* Non-specific error code. It is returned under the following conditions: resource other than disk space exhausted (e.g. TIDs), first SMB command was not negotiate, multiple negotiates attempted, and internal server error. */
#define ERRbadpw 2		/* Bad password - name/password pair in a TreeConnect or Session Setup are invalid. */
#define ERRbadtype 3		/* used for indicating DFS referral needed */
#define ERRaccess 4		/* The client does not have the necessary access rights within the specified context for requested function. */
#define ERRinvtid 5		/* The Tid specified in a command was invalid. */
#define ERRinvnetname 6		/* Invalid network name in tree connect. */
#define ERRinvdevice 7		/* Invalid device - printer request made to non-printer connection or non-printer request made to printer connection. */
#define ERRqfull 49		/* Print queue full (files) -- returned by open print file. */
#define ERRqtoobig 50		/* Print queue full -- no space. */
#define ERRqeof         51	/* EOF on print queue dump */
#define ERRinvpfid      52	/* Invalid print file FID. */
#define ERRsmbcmd       64	/* The server did not recognize the command received. */
#define ERRsrverror     65	/* The server encountered an internal error, e.g., system file unavailable. */
#define ERRbadBID       66	/* (obsolete) */
#define ERRfilespecs    67	/* The Fid and pathname parameters contained an invalid combination of values. */
#define ERRbadLink      68	/* (obsolete) */
#define ERRbadpermits   69	/* The access permissions specified for a file or directory are not a valid combination. */
#define ERRbadPID       70
#define ERRsetattrmode  71	/* attribute (mode) is invalid */
#define ERRpaused       81	/* Server is paused */
#define ERRmsgoff	82	/* reserved - messaging off */
#define ERRnoroom       83	/* reserved - no room for message */
#define ERRrmuns        87	/* reserved - too many remote names */
#define ERRtimeout      88	/* operation timed out */
#define ERRnoresource   89	/* No resources available for request */
#define ERRtoomanyuids  90	/* Too many UIDs active on this session */
#define ERRbaduid       91	/* The UID is not known as a valid user */
#define ERRusempx      250	/* temporarily unable to use raw */
#define ERRusestd      251	/* temporarily unable to use either raw or mpx */
#define ERR_NOTIFY_ENUM_DIR 1024
#define ERRaccountexpired 2239
#define ERRbadclient      2240
#define ERRbadLogonTime   2241
#define ERRpasswordExpired 2242
#define ERRnosupport       0xFFFF
