mirror of
https://github.com/cahirwpz/libnix.git
synced 2026-09-11 19:26:17 +00:00
66 lines
1.7 KiB
C
66 lines
1.7 KiB
C
#include <errno.h>
|
|
#include <dos/dosasl.h>
|
|
#include <proto/dos.h>
|
|
|
|
/* Table to convert amigados error messages to unix ones */
|
|
|
|
static long _errortable[] = {
|
|
ERROR_NO_FREE_STORE ,ENOMEM,
|
|
ERROR_TASK_TABLE_FULL ,EPROCLIM,
|
|
/*ERROR_BAD_TEMPLATE
|
|
ERROR_BAD_NUMBER
|
|
ERROR_REQUIRED_ARG_MISSING
|
|
ERROR_KEY_NEEDS_ARG*/
|
|
ERROR_TOO_MANY_ARGS ,E2BIG,
|
|
/*ERROR_UNMATCHED_QUOTES*/
|
|
ERROR_LINE_TOO_LONG ,E2BIG,
|
|
/*ERROR_FILE_NOT_OBJECT
|
|
ERROR_INVALID_RESIDENT_LIBRARY
|
|
ERROR_NO_DEFAULT_DIR*/
|
|
ERROR_OBJECT_IN_USE ,ETXTBSY,
|
|
ERROR_OBJECT_EXISTS ,EEXIST,
|
|
ERROR_DIR_NOT_FOUND ,ENOENT,
|
|
ERROR_OBJECT_NOT_FOUND ,ENOENT,
|
|
ERROR_BAD_STREAM_NAME ,ENAMETOOLONG,
|
|
ERROR_OBJECT_TOO_LARGE ,EFBIG,
|
|
ERROR_ACTION_NOT_KNOWN ,ENODEV,
|
|
/*ERROR_INVALID_COMPONENT_NAME
|
|
ERROR_INVALID_LOCK
|
|
ERROR_OBJECT_WRONG_TYPE*/
|
|
ERROR_DISK_NOT_VALIDATED ,EBUSY,
|
|
ERROR_DISK_WRITE_PROTECTED ,EROFS,
|
|
ERROR_RENAME_ACROSS_DEVICES ,EXDEV,
|
|
ERROR_DIRECTORY_NOT_EMPTY ,ENOTEMPTY,
|
|
ERROR_TOO_MANY_LEVELS ,ENAMETOOLONG,
|
|
ERROR_DEVICE_NOT_MOUNTED ,ENXIO,
|
|
ERROR_SEEK_ERROR ,ESPIPE,
|
|
/*ERROR_COMMENT_TOO_BIG*/
|
|
ERROR_DISK_FULL ,ENOSPC,
|
|
ERROR_DELETE_PROTECTED ,EACCES,
|
|
ERROR_WRITE_PROTECTED ,EACCES,
|
|
ERROR_READ_PROTECTED ,EACCES,
|
|
ERROR_NOT_A_DOS_DISK ,EFTYPE,
|
|
ERROR_NO_DISK ,ENXIO,
|
|
/*ERROR_NO_MORE_ENTRIES
|
|
ERROR_IS_SOFT_LINK
|
|
ERROR_OBJECT_LINKED*/
|
|
ERROR_BAD_HUNK ,ENOEXEC,
|
|
/*ERROR_NOT_IMPLEMENTED
|
|
ERROR_RECORD_NOT_LOCKED
|
|
ERROR_LOCK_COLLISION
|
|
ERROR_LOCK_TIMEOUT
|
|
ERROR_UNLOCK_ERROR
|
|
ERROR_BUFFER_OVERFLOW
|
|
ERROR_BREAK*/
|
|
ERROR_NOT_EXECUTABLE ,EACCES,
|
|
0 ,EPERM
|
|
};
|
|
|
|
void __seterrno(void)
|
|
{ long amigaerror=IoErr(),*ptr=_errortable,err;
|
|
|
|
while((err=*ptr++)&&(err!=amigaerror))
|
|
++ptr;
|
|
errno=*ptr;
|
|
}
|