mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-16 18:40:28 +00:00
151 lines
4.3 KiB
C++
151 lines
4.3 KiB
C++
// -*- C++ -*-
|
|
#include "ace/OS_NS_errno.h"
|
|
|
|
#if !defined (ACE_HAS_INLINED_OSCALLS)
|
|
# include "ace/OS_NS_errno.inl"
|
|
#endif /* ACE_HAS_INLINED_OSCALLS */
|
|
|
|
|
|
#ifdef ACE_MQX
|
|
int
|
|
ACE_OS::mqx_error_to_errno(int mqx_error)
|
|
{
|
|
switch (mqx_error)
|
|
{
|
|
// Not really an error.
|
|
case FS_EOF:
|
|
return 0;
|
|
|
|
case FS_INVALID_FUNCTION_CODE:
|
|
case FS_INVALID_PARAMETER:
|
|
case FS_INVALID_HANDLE:
|
|
case FS_ERROR_INVALID_DRIVE_HANDLE:
|
|
case FS_ERROR_INVALID_FILE_HANDLE:
|
|
case MQX_INVALID_POINTER:
|
|
case MQX_INVALID_PARAMETER:
|
|
case FS_INVALID_MEMORY_BLOCK_ADDRESS:
|
|
case MQX_INVALID_SIZE:
|
|
case MQX_INVALID_MEMORY_BLOCK:
|
|
case MQX_INVALID_TASK_PRIORITY:
|
|
case MQX_INVALID_TASK_STATE:
|
|
case MQX_INVALID_TASK_ID:
|
|
case MQX_INVALID_PROCESSOR_NUMBER:
|
|
case MQX_INVALID_VECTORED_INTERRUPT:
|
|
case MQX_INVALID_TEMPLATE_INDEX:
|
|
case MQX_INVALID_CONFIGURATION:
|
|
case MQX_INVALID_COMPONENT_HANDLE:
|
|
case MQX_INVALID_COMPONENT_BASE:
|
|
case MQX_INVALID_COMPONENT_NAME:
|
|
case MQX_INVALID_HANDLE:
|
|
case MQX_INVALID_TASK_QUEUE:
|
|
case MQX_INVALID_LWSEM:
|
|
case MQX_SCHED_INVALID_POLICY:
|
|
case MQX_SCHED_INVALID_PARAMETER_PTR:
|
|
case MQX_SCHED_INVALID_PARAMETER:
|
|
case MQX_SCHED_INVALID_TASK_ID:
|
|
case MQX_INVALID_IO_CHANNEL:
|
|
case MQX_INVALID_DEVICE:
|
|
case MQX_INVALID_CLOCK_SPEED:
|
|
case MQX_IPC_INVALID_MESSAGE:
|
|
case MQX_MEM_POOL_INVALID:
|
|
case MQX_LWMEM_POOL_INVALID:
|
|
case MQX_LWEVENT_INVALID:
|
|
case MQX_LWTIMER_INVALID:
|
|
return EINVAL;
|
|
case FS_FILE_NOT_FOUND:
|
|
case FS_PATH_NOT_FOUND:
|
|
return ENOENT;
|
|
case FS_ACCESS_DENIED:
|
|
case FS_OPERATION_NOT_ALLOWED:
|
|
case FS_SHARING_VIOLATION:
|
|
case MQX_NOT_RESOURCE_OWNER:
|
|
case MQX_ACCESS_ERROR:
|
|
return EPERM;
|
|
case FS_INSUFFICIENT_MEMORY:
|
|
case FS_PMGR_INSUF_MEMORY:
|
|
case MQX_OUT_OF_MEMORY:
|
|
case MQX_KERNEL_MEMORY_TOO_SMALL:
|
|
case MQX_MEM_POOL_TOO_SMALL:
|
|
case MQX_OUT_OF_MMU_PAGE_TABLES:
|
|
return ENOMEM;
|
|
case FS_FILE_EXISTS:
|
|
case MQX_COMPONENT_EXISTS:
|
|
case MQX_IPC_ROUTE_EXISTS:
|
|
case MQX_MMU_CONTEXT_EXISTS:
|
|
case FS_ALREADY_ASSIGNED:
|
|
return EEXIST;
|
|
case FS_DISK_FULL:
|
|
case FS_ROOT_DIR_FULL:
|
|
return ENOSPC;
|
|
case FS_DISK_IS_WRITE_PROTECTED:
|
|
return EROFS;
|
|
case FS_BAD_DISK_UNIT:
|
|
case FS_INVALID_LENGTH_IN_DISK_OPERATION:
|
|
case FS_NOT_A_DOS_DISK:
|
|
case FS_SECTOR_NOT_FOUND:
|
|
case FS_WRITE_FAULT:
|
|
case FS_READ_FAULT:
|
|
case FS_NOT_INITIALIZED:
|
|
case FS_ERROR_UNKNOWN_FS_VERSION:
|
|
case FS_LOST_CHAIN:
|
|
case FS_INVALID_DEVICE:
|
|
case FS_INVALID_CLUSTER_NUMBER:
|
|
case FS_FAILED_TO_DELETE_LFN:
|
|
case FS_BAD_LFN_ENTRY:
|
|
case FS_PMGR_INVALID_PARTITION:
|
|
case FS_PMGR_UNKNOWN_PARTITION:
|
|
case FS_PMGR_INVALID_PARTTABLE:
|
|
case FS_PMGR_EXFAT_PARTITION:
|
|
case MQX_IO_OPERATION_NOT_AVAILABLE:
|
|
return EIO;
|
|
case FS_CANNOT_CREATE_DIRECTORY:
|
|
return ENOTDIR;
|
|
case MQX_LWSEM_WAIT_TIMEOUT:
|
|
return ETIME;
|
|
|
|
// These seem like generic errors
|
|
case MQX_MMU_ERROR:
|
|
case MQX_ERROR:
|
|
|
|
// Need more info to categorize
|
|
case FS_ATTEMPT_TO_REMOVE_CURRENT_DIR:
|
|
case MQX_INVALID_CHECKSUM:
|
|
case MQX_OUT_OF_TASK_DESCRIPTORS:
|
|
case MQX_CANNOT_CALL_FUNCTION_FROM_ISR:
|
|
case MQX_TASK_QUEUE_EMPTY:
|
|
case MQX_NO_TASK_TEMPLATE:
|
|
case MQX_COMPONENT_DOES_NOT_EXIST:
|
|
case MQX_COULD_NOT_CREATE_IPC_TASK:
|
|
case MQX_TOO_MANY_PRIORITY_LEVELS:
|
|
case MQX_TOO_MANY_INTERRUPTS:
|
|
case MQX_DUPLICATE_TASK_TEMPLATE_INDEX:
|
|
case MQX_TIMER_ISR_INSTALL_FAIL:
|
|
case MQX_INTER_PROCESSOR_INIT_FAILED:
|
|
case MQX_IPC_SERVICE_NOT_AVAILABLE:
|
|
case MQX_MMU_CONTEXT_DOES_NOT_EXIST:
|
|
case MQX_MMU_PARENT_TASK_CANNOT_BE_MMU:
|
|
case MQX_RTC_UNLOCK_FAILED:
|
|
case MQX_NO_USER_TASKS:
|
|
case MQX_TOO_MANY_USER_TASKS:
|
|
case MQX_TASKQ_CREATE_FAILED:
|
|
case MQX_INVALD_INT_ENABLE:
|
|
case MQX_UNABLE_TO_CREATE_COMPONENT:
|
|
case MQX_CLOCK_TRIM_FAILED:
|
|
|
|
/* These are serious and should definitely return EFAULT unless there is a
|
|
* more appropriate error code.
|
|
*/
|
|
case MQX_CORRUPT_MEMORY_SYSTEM:
|
|
case MQX_CORRUPT_STORAGE_POOL:
|
|
case MQX_CORRUPT_STORAGE_POOL_FREE_LIST:
|
|
case MQX_CORRUPT_STORAGE_POOL_POINTERS:
|
|
case MQX_CORRUPT_QUEUE:
|
|
case MQX_CORRUPT_INTERRUPT_STACK:
|
|
case MQX_UNHANDLED_INTERRUPT:
|
|
|
|
default:
|
|
return EFAULT;
|
|
}
|
|
}
|
|
#endif
|