VirtualBox

Changeset 8288 in vbox for trunk/src/VBox/Runtime/darwin


Ignore:
Timestamp:
Apr 22, 2008 1:25:55 PM (17 years ago)
Author:
vboxsync
Message:

Added RTErrConvertFromDarwin() as a merge of the IO, Kern and COM versions.

Location:
trunk/src/VBox/Runtime/darwin
Files:
3 edited
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/darwin/RTErrConvertFromDarwin.cpp

    r8269 r8288  
    1 /* $Id $ */
     1/* $Id:$ */
    22/** @file
    33 * IPRT - Convert Darwin Mach returns codes to iprt status codes.
     
    3333*******************************************************************************/
    3434#include <mach/kern_return.h>
     35#include <IOKit/IOReturn.h>
    3536
    3637#include <iprt/err.h>
     
    3839
    3940
    40 RTDECL(int) RTErrConvertFromDarwinKern(int iNativeCode)
     41RTDECL(int) RTErrConvertFromDarwin(int iNativeCode)
    4142{
    4243    /*
     
    4849    switch (iNativeCode)
    4950    {
     51        /*
     52         * Mach.
     53         */
    5054        case KERN_INVALID_ADDRESS:      return VERR_INVALID_POINTER;
    5155        //case KERN_PROTECTION_FAILURE:
     
    97101        //case KERN_NOT_WAITING:
    98102        case KERN_OPERATION_TIMED_OUT:  return VERR_TIMEOUT;
     103
     104
     105        /*
     106         * I/O Kit.
     107         */
     108        case kIOReturnNoDevice:         return VERR_IO_BAD_UNIT;
     109        case kIOReturnUnsupported:      return VERR_NOT_SUPPORTED;
     110
     111#ifdef IN_RING3
     112        /*
     113         * CoreFoundation COM (may overlap with I/O Kit and Mach).
     114         */
     115        default:
     116            if (    iNativeCode >= 0x80000000
     117                &&  iNativeCode >= 0x8000FFFFL)
     118                return RTErrConvertFromDarwinCOM(iNativeCode);
     119            break;
     120#endif /* IN_RING3 */
    99121    }
    100122
     
    104126}
    105127
    106 
  • trunk/src/VBox/Runtime/darwin/RTErrConvertFromDarwinCOM.cpp

    r8245 r8288  
    1 /* $Id $ */
     1/* $Id:$ */
    22/** @file
    33 * IPRT - Convert Darwin COM returns codes to iprt status codes.
     
    3737#include <iprt/assert.h>
    3838
     39
    3940RTDECL(int) RTErrConvertFromDarwinCOM(int32_t iNativeCode)
    4041{
  • trunk/src/VBox/Runtime/darwin/RTErrConvertFromDarwinIO.cpp

    r8245 r8288  
    1 /* $Id $ */
     1/* $Id:$ */
    22/** @file
    33 * IPRT - Convert Darwin IOKit returns codes to iprt status codes.
     
    4545    if (iNativeCode == kIOReturnSuccess)
    4646        return VINF_SUCCESS;
    47 
    48     switch (iNativeCode)
    49     {
    50         case kIOReturnNoDevice:     return VERR_IO_BAD_UNIT;
    51         case kIOReturnUnsupported:  return VERR_NOT_SUPPORTED;
    52     }
    53 
    54     /* unknown error. */
    55     AssertMsgFailed(("Unhandled error %#x\n", iNativeCode));
    56     return VERR_UNRESOLVED_ERROR;
     47    return RTErrConvertFromDarwin(iNativeCode);
    5748}
    5849
  • trunk/src/VBox/Runtime/darwin/RTErrConvertFromDarwinKern.cpp

    r8245 r8288  
    1 /* $Id $ */
     1/* $Id:$ */
    22/** @file
    33 * IPRT - Convert Darwin Mach returns codes to iprt status codes.
     
    4545    if (iNativeCode == KERN_SUCCESS)
    4646        return VINF_SUCCESS;
    47 
    48     switch (iNativeCode)
    49     {
    50         case KERN_INVALID_ADDRESS:      return VERR_INVALID_POINTER;
    51         //case KERN_PROTECTION_FAILURE:
    52         //case KERN_NO_SPACE:
    53         case KERN_INVALID_ARGUMENT:     return VERR_INVALID_PARAMETER;
    54         //case KERN_FAILURE:
    55         //case KERN_RESOURCE_SHORTAGE:
    56         //case KERN_NOT_RECEIVER:
    57         case KERN_NO_ACCESS:            return VERR_ACCESS_DENIED;
    58         //case KERN_MEMORY_FAILURE:
    59         //case KERN_MEMORY_ERROR:
    60         //case KERN_ALREADY_IN_SET:
    61         //case KERN_NOT_IN_SET:
    62         //case KERN_NAME_EXISTS:
    63         //case KERN_ABORTED:
    64         //case KERN_INVALID_NAME:
    65         //case KERN_INVALID_TASK:
    66         //case KERN_INVALID_RIGHT:
    67         //case KERN_INVALID_VALUE:
    68         //case KERN_UREFS_OVERFLOW:
    69         //case KERN_INVALID_CAPABILITY:
    70         //case KERN_RIGHT_EXISTS:
    71         //case KERN_INVALID_HOST:
    72         //case KERN_MEMORY_PRESENT:
    73         //case KERN_MEMORY_DATA_MOVED:
    74         //case KERN_MEMORY_RESTART_COPY:
    75         //case KERN_INVALID_PROCESSOR_SET:
    76         //case KERN_POLICY_LIMIT:
    77         //case KERN_INVALID_POLICY:
    78         //case KERN_INVALID_OBJECT:
    79         //case KERN_ALREADY_WAITING:
    80         //case KERN_DEFAULT_SET:
    81         //case KERN_EXCEPTION_PROTECTED:
    82         //case KERN_INVALID_LEDGER:
    83         //case KERN_INVALID_MEMORY_CONTROL:
    84         //case KERN_INVALID_SECURITY:
    85         //case KERN_NOT_DEPRESSED:
    86         //case KERN_TERMINATED:
    87         //case KERN_LOCK_SET_DESTROYED:
    88         //case KERN_LOCK_UNSTABLE:
    89         case KERN_LOCK_OWNED:           return VERR_SEM_BUSY;
    90         //case KERN_LOCK_OWNED_SELF:
    91         case KERN_SEMAPHORE_DESTROYED:  return VERR_SEM_DESTROYED;
    92         //case KERN_RPC_SERVER_TERMINATED:
    93         //case KERN_RPC_TERMINATE_ORPHAN:
    94         //case KERN_RPC_CONTINUE_ORPHAN:
    95         case KERN_NOT_SUPPORTED:        return VERR_NOT_SUPPORTED;
    96         //case KERN_NODE_DOWN:
    97         //case KERN_NOT_WAITING:
    98         case KERN_OPERATION_TIMED_OUT:  return VERR_TIMEOUT;
    99     }
    100 
    101     /* unknown error. */
    102     AssertMsgFailed(("Unhandled error %#x\n", iNativeCode));
    103     return VERR_UNRESOLVED_ERROR;
     47    return RTErrConvertFromDarwin(iNativeCode);
    10448}
    10549
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette