#ifndef _ERRNO_H
#define _ERRNO_H

#define E_OK	0		/* no error */
#define ERROR	1		/* generic error */
#define EDRVNR	2		/* drive not ready */
#define EUNCMD	3		/* unknown command */
#define E_CRC	4		/* crc error */
#define EBADRQ	5		/* bad request */
#define E_SEEK	6		/* seek error */
#define EMEDIA	7		/* unknown media */
#define ESECNF	8		/* sector not found */
#define EPAPER	9		/* out of paper */
#define EWRITF	10		/* write fault */
#define EREADF	11		/* read fault */

#define EROFS	13		/* device write protected */
#define E_CHNG	14		/* media change detected */
#define EAGAIN	E_CHNG
#define EUNDEV	15		/* unknown device */
#define EBADSF	16		/* bad sectors on format */
#define EOTHER	17		/* insert other disk request */

/* GEMDOS errors */

#define EINVAL	32		/* invalid function */
#define ENOENT	33		/* file not found */
#define ESRCH	ENOENT		/* pid not found */
#define EPATH	34		/* path not found */
#define ENOTDIR EPATH
#define EMFILE	35		/* no more handles */
#define EACCESS	36		/* access denied */
#define EACCES	EACCESS
#define EPERM	EACCESS
#define EBADF	37		/* invalid handle */
#define ENOMEM	39		/* insufficient memory */
#define EFAULT	40		/* invalid memory block address */
#define ENXIO	46		/* invalid drive specification */
#define EXDEV	48		/* cross device rename */
#define ENMFIL	49		/* no more files (from fsnext) */
#define EBADARG	64		/* bad argument to system call */
#define EINTRN	65		/* internal error */
#define EPLFMT	66		/* invalid program load format */
#define ENOEXEC EPLFMT
#define EGSBF	67		/* memory block growth failure */

#define EMLINK	80		/* too many symbolic links */
#define EEXIST	85		/* file exists, try again later */
#define ENAMETOOLONG 86		/* name too long */
#define ENOTTY	87
#define ERANGE	88
#define EDOM	89

#define ECHILD	ENOENT		/* wait() should set errno to ECHILD */
#define EINTR	128		/* this *should* be fake */

extern	int	errno;
extern	int	sys_nerr;
extern	char *	sys_errlist[];

#endif /* _ERRNO_H */
