2000-07-22 19:03:03 +00:00
|
|
|
/*****************************************************************************/
|
|
|
|
/* */
|
2013-05-09 11:56:54 +00:00
|
|
|
/* errno.h */
|
2000-07-22 19:03:03 +00:00
|
|
|
/* */
|
2013-05-09 11:56:54 +00:00
|
|
|
/* Error codes */
|
2000-07-22 19:03:03 +00:00
|
|
|
/* */
|
|
|
|
/* */
|
|
|
|
/* */
|
2010-06-03 20:03:52 +00:00
|
|
|
/* (C) 1998-2010, Ullrich von Bassewitz */
|
|
|
|
/* Roemerstrasse 52 */
|
|
|
|
/* D-70794 Filderstadt */
|
|
|
|
/* EMail: uz@cc65.org */
|
2000-07-22 19:03:03 +00:00
|
|
|
/* */
|
|
|
|
/* */
|
|
|
|
/* This software is provided 'as-is', without any expressed or implied */
|
|
|
|
/* warranty. In no event will the authors be held liable for any damages */
|
|
|
|
/* arising from the use of this software. */
|
|
|
|
/* */
|
|
|
|
/* Permission is granted to anyone to use this software for any purpose, */
|
|
|
|
/* including commercial applications, and to alter it and redistribute it */
|
|
|
|
/* freely, subject to the following restrictions: */
|
|
|
|
/* */
|
|
|
|
/* 1. The origin of this software must not be misrepresented; you must not */
|
|
|
|
/* claim that you wrote the original software. If you use this software */
|
|
|
|
/* in a product, an acknowledgment in the product documentation would be */
|
|
|
|
/* appreciated but is not required. */
|
|
|
|
/* 2. Altered source versions must be plainly marked as such, and must not */
|
|
|
|
/* be misrepresented as being the original software. */
|
|
|
|
/* 3. This notice may not be removed or altered from any source */
|
|
|
|
/* distribution. */
|
|
|
|
/* */
|
|
|
|
/*****************************************************************************/
|
2000-05-28 13:40:48 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifndef _ERRNO_H
|
|
|
|
#define _ERRNO_H
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-06-10 18:10:53 +00:00
|
|
|
/*****************************************************************************/
|
2013-05-09 11:56:54 +00:00
|
|
|
/* Data */
|
2010-06-10 18:10:53 +00:00
|
|
|
/*****************************************************************************/
|
2000-05-28 13:40:48 +00:00
|
|
|
|
|
|
|
|
2010-06-03 20:12:55 +00:00
|
|
|
|
2010-06-10 18:10:53 +00:00
|
|
|
/* Operating system specific error code */
|
2022-08-28 19:36:22 +00:00
|
|
|
extern unsigned char __oserror;
|
2010-06-10 18:10:53 +00:00
|
|
|
|
2022-08-28 19:36:22 +00:00
|
|
|
#if __CC65_STD__ >= __CC65_STD_CC65__
|
|
|
|
/* define the name with just one underscore for backwards compatibility */
|
|
|
|
#define _oserror __oserror
|
|
|
|
#endif
|
|
|
|
|
|
|
|
extern int __errno;
|
2010-06-10 18:10:53 +00:00
|
|
|
/* System errors go here */
|
2000-05-28 13:40:48 +00:00
|
|
|
|
2022-08-28 19:36:22 +00:00
|
|
|
#define errno __errno
|
2010-06-10 18:10:53 +00:00
|
|
|
/* errno must be a macro */
|
2000-05-28 13:40:48 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* Possible error codes */
|
2013-05-09 11:56:54 +00:00
|
|
|
#define ENOENT 1 /* No such file or directory */
|
|
|
|
#define ENOMEM 2 /* Out of memory */
|
|
|
|
#define EACCES 3 /* Permission denied */
|
|
|
|
#define ENODEV 4 /* No such device */
|
|
|
|
#define EMFILE 5 /* Too many open files */
|
|
|
|
#define EBUSY 6 /* Device or resource busy */
|
|
|
|
#define EINVAL 7 /* Invalid argument */
|
|
|
|
#define ENOSPC 8 /* No space left on device */
|
|
|
|
#define EEXIST 9 /* File exists */
|
|
|
|
#define EAGAIN 10 /* Try again */
|
|
|
|
#define EIO 11 /* I/O error */
|
|
|
|
#define EINTR 12 /* Interrupted system call */
|
|
|
|
#define ENOSYS 13 /* Function not implemented */
|
|
|
|
#define ESPIPE 14 /* Illegal seek */
|
2003-08-12 13:48:45 +00:00
|
|
|
#define ERANGE 15 /* Range error */
|
2010-06-03 21:12:23 +00:00
|
|
|
#define EBADF 16 /* Bad file number */
|
2016-06-13 18:40:01 +00:00
|
|
|
#define ENOEXEC 17 /* Exec format error */
|
|
|
|
#define EUNKNOWN 18 /* Unknown OS specific error */
|
2000-05-28 13:40:48 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
2010-06-10 18:10:53 +00:00
|
|
|
/*****************************************************************************/
|
|
|
|
/* Code */
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-08-28 19:36:22 +00:00
|
|
|
int __fastcall__ __osmaperrno (unsigned char oserror);
|
|
|
|
/* Map an operating system specific error code (for example from __oserror)
|
2014-06-30 09:10:35 +00:00
|
|
|
** into one of the E... codes above. It is user callable.
|
|
|
|
*/
|
2010-06-10 18:10:53 +00:00
|
|
|
|
2022-08-28 19:36:22 +00:00
|
|
|
#if __CC65_STD__ >= __CC65_STD_CC65__
|
|
|
|
/* define the name with just one underscore for backwards compatibility */
|
|
|
|
#define _osmaperrno __osmaperrno
|
|
|
|
#endif
|
|
|
|
|
|
|
|
unsigned char __fastcall__ __seterrno (unsigned char code);
|
2010-06-10 18:10:53 +00:00
|
|
|
/* Set errno to a specific error code and return zero. Used by the library */
|
|
|
|
|
2022-08-28 20:09:44 +00:00
|
|
|
#if __CC65_STD__ >= __CC65_STD_CC65__
|
|
|
|
/* define the name with just one underscore for backwards compatibility */
|
|
|
|
#define _seterrno __seterrno
|
|
|
|
#endif
|
|
|
|
|
2022-08-28 19:36:22 +00:00
|
|
|
int __fastcall__ __directerrno (unsigned char code);
|
|
|
|
/* Set errno to a specific error code, clear __oserror and return -1. Used
|
2014-06-30 09:10:35 +00:00
|
|
|
** by the library.
|
|
|
|
*/
|
2010-06-10 18:10:53 +00:00
|
|
|
|
2022-08-28 20:09:44 +00:00
|
|
|
#if __CC65_STD__ >= __CC65_STD_CC65__
|
|
|
|
/* define the name with just one underscore for backwards compatibility */
|
|
|
|
#define _directerrno __directerrno
|
|
|
|
#endif
|
|
|
|
|
2022-08-28 19:36:22 +00:00
|
|
|
int __fastcall__ __mappederrno (unsigned char code);
|
|
|
|
/* Set __oserror to the given platform specific error code. If it is a real
|
2014-06-30 09:10:35 +00:00
|
|
|
** error code (not zero) set errno to the corresponding system error code
|
|
|
|
** and return -1. Otherwise return zero.
|
|
|
|
** Used by the library.
|
|
|
|
*/
|
2010-06-10 18:10:53 +00:00
|
|
|
|
2022-08-28 20:09:44 +00:00
|
|
|
#if __CC65_STD__ >= __CC65_STD_CC65__
|
|
|
|
/* define the name with just one underscore for backwards compatibility */
|
|
|
|
#define _mappederrno __mappederrno
|
|
|
|
#endif
|
2010-06-10 18:10:53 +00:00
|
|
|
|
|
|
|
/* End of errno.h */
|
2000-05-28 13:40:48 +00:00
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|