]> git.sur5r.net Git - cc65/blobdiff - include/errno.h
cfg/atari-xex.cfg: fix typo in comment
[cc65] / include / errno.h
index e945acf347886e05c37c5db6b889a5137f7dc31f..ae76b6c05c06b43c8dd9c121a48cb98ce04d4532 100644 (file)
@@ -1,15 +1,15 @@
 /*****************************************************************************/
 /*                                                                           */
-/*                                 errno.h                                  */
+/*                                  errno.h                                  */
 /*                                                                           */
-/*                               Error codes                                */
+/*                                Error codes                                */
 /*                                                                           */
 /*                                                                           */
 /*                                                                           */
-/* (C) 1998-2000 Ullrich von Bassewitz                                       */
-/*               Wacholderweg 14                                             */
-/*               D-70597 Stuttgart                                           */
-/* EMail:        uz@musoftware.de                                            */
+/* (C) 1998-2010, Ullrich von Bassewitz                                      */
+/*                Roemerstrasse 52                                           */
+/*                D-70794 Filderstadt                                        */
+/* EMail:         uz@cc65.org                                                */
 /*                                                                           */
 /*                                                                           */
 /* This software is provided 'as-is', without any expressed or implied       */
 
 
 
-/* Operating system specific error codes */
-extern unsigned char _oserror;
+/*****************************************************************************/
+/*                                   Data                                    */
+/*****************************************************************************/
 
-/* Mapper function, don't call directly */
-void _maperrno (void);
 
-/* This one is called under the hood. User callable. */
-int __fastcall__ _osmaperrno (unsigned char oserror);
 
-/* System error codes go here */
+/* Operating system specific error code */
+extern unsigned char _oserror;
+
 extern int _errno;
+/* System errors go here */
 
-/* errno must be a macro, here the mapper is called */
-#define errno          (_maperrno(), _errno)
+#define errno   _errno
+/* errno must be a macro */
 
 
 
 /* Possible error codes */
-#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 */
-#define EUNKNOWN               15      /* Unknown OS specific error */
+#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 */
+#define ERANGE          15      /* Range error */
+#define EBADF           16      /* Bad file number */
+#define ENOEXEC         17      /* Exec format error */
+#define EUNKNOWN        18      /* Unknown OS specific error */
+
+
+
+/*****************************************************************************/
+/*                                     Code                                  */
+/*****************************************************************************/
+
+
+
+int __fastcall__ _osmaperrno (unsigned char oserror);
+/* Map an operating system specific error code (for example from _oserror) 
+** into one of the E... codes above. It is user callable.
+*/
+
+unsigned char __fastcall__ _seterrno (unsigned char code);
+/* Set errno to a specific error code and return zero. Used by the library */
+
+int __fastcall__ _directerrno (unsigned char code);
+/* Set errno to a specific error code, clear _oserror and return -1. Used
+** by the library.
+*/
+
+int __fastcall__ _mappederrno (unsigned char code);
+/* Set _oserror to the given platform specific error code. If it is a real
+** error code (not zero) set errno to the corresponding system error code
+** and return -1. Otherwise return zero.
+** Used by the library.
+*/
 
 
 
+/* End of errno.h */
 #endif