65816-llvm-mos/runtime/include/errno.h
Scott Duensing e65fedc8e1 Checkpoint
2026-05-13 15:48:34 -05:00

49 lines
2 KiB
C

#ifndef _ERRNO_H
#define _ERRNO_H
extern int errno;
int *__errno_location(void);
// Error codes (glibc numbering for portability). C standard requires
// EDOM, ERANGE, EILSEQ; the rest are common POSIX-style codes that
// real-world code expects to find even on a minimal runtime.
#define EPERM 1 // Operation not permitted
#define ENOENT 2 // No such file or directory
#define ESRCH 3 // No such process
#define EINTR 4 // Interrupted system call
#define EIO 5 // I/O error
#define ENXIO 6 // No such device or address
#define E2BIG 7 // Argument list too long
#define ENOEXEC 8 // Exec format error
#define EBADF 9 // Bad file descriptor
#define ECHILD 10 // No child processes
#define EAGAIN 11 // Resource temporarily unavailable
#define ENOMEM 12 // Out of memory
#define EACCES 13 // Permission denied
#define EFAULT 14 // Bad address
#define EBUSY 16 // Device or resource busy
#define EEXIST 17 // File exists
#define EXDEV 18 // Cross-device link
#define ENODEV 19 // No such device
#define ENOTDIR 20 // Not a directory
#define EISDIR 21 // Is a directory
#define EINVAL 22 // Invalid argument
#define ENFILE 23 // Too many open files in system
#define EMFILE 24 // Too many open files
#define ENOTTY 25 // Not a typewriter
#define ETXTBSY 26 // Text file busy
#define EFBIG 27 // File too large
#define ENOSPC 28 // No space left on device
#define ESPIPE 29 // Illegal seek
#define EROFS 30 // Read-only file system
#define EMLINK 31 // Too many links
#define EPIPE 32 // Broken pipe
#define EDOM 33 // Math argument out of domain (C standard)
#define ERANGE 34 // Math result out of range (C standard)
#define ENAMETOOLONG 36 // Filename too long
#define ENOSYS 38 // Function not implemented
#define ENOTEMPTY 39 // Directory not empty
#define ELOOP 40 // Too many symbolic links
#define EILSEQ 84 // Illegal byte sequence (C standard)
#endif