CmnErrors.h File Reference


Detailed Description

Definition of all error classes and common error codes.

#include <sys/types.h>
#include <errno.h>

Go to the source code of this file.

Error Classes

Base values for all error classes.

#define actvErrorClass   0x80002000
#define almErrorClass   0x80000900
#define amErrorClass   0x80003D00
#define appErrorClass   0x80008000
#define appMgrErrorClass   0x80004000
#define attnErrorClass   0x80002E00
#define azmErrorClass   0x80003C00
#define bltErrorClass   0x80002300
#define blthErrorClass   0x80003100
#define bndErrorClass   0x80004A00
#define catmErrorClass   0x80004700
#define certErrorClass   0x80004800
#define cmpErrorClass   0x80000D00
#define cncErrorClass   0x80001F00
#define cpmErrorClass   0x80003800
#define dalErrorClass   0x8000FF00
#define dirErrorClass   0x80003E00
#define dispErrorClass   0x80002200
#define dlkErrorClass   0x80000E00
#define dmErrorClass   0x80000200
#define drvrErrorClass   0x80004500
#define dtErrorClass   0x80005600
#define dtIntProtClass   0x80005800
#define em68kErrorClass   0x80003400
#define emuErrorClass   0x80001C00
#define errInfoClass   0x80007F00
#define errorClassMask   0xFFFFFF00
#define evtErrorClass   0x80000700
#define exgErrorClass   0x80001500
#define expErrorClass   0x80002900
#define fileErrorClass   0x80001600
#define flpErrorClass   0x80000680
#define flshErrorClass   0x80001D00
#define fplErrorClass   0x80000600
#define ftrErrorClass   0x80000C00
#define grfErrorClass   0x80001000
#define grmlErrorClass   0x80003500
#define halErrorClass   0x80003B00
#define hsExgErrorClass   0x80004E00
#define htalErrorClass   0x80001300
#define HttpErrorClass   0x80004C00
#define hwrErrorClass   0x80003000
#define inetErrorClass   0x80001400
#define intlErrorClass   0x80002C00
#define iosErrorClass   0x80004200
#define IrCommErrorClass   0x80003700
#define IrErrorClass   0x80003600
#define kalErrorClass   0x80003A00
#define lmErrorClass   0x80002B00
#define lz77ErrorClass   0x80002700
#define mdmErrorClass   0x80001100
#define mediaErrorClass   0x80004600
#define memErrorClass   0x80000100
#define menuErrorClass   0x80002600
#define mimeErrorClass   0x80005700
#define mobileErrorClass   0x80006100
#define netErrorClass   0x80001200
#define oemErrorClass   0x80007000
#define omErrorClass   0x80002500
#define padErrorClass   0x80000F00
#define pdiErrorClass   0x80002D00
#define penErrorClass   0x80000B00
#define perfErrorClass   0x80004400
#define pinsErrorClass   0x80005000
#define postalErrorClass   0x80006000
#define pppErrorClass   0x80004F00
#define pwrErrorClass   0x80001E00
#define radioErrorClass   0x80002100
#define ralErrorClass   0x80004100
#define regexpErrorClass   0x80005200
#define rfutErrorClass   0x80001700
#define rimErrorClass   0x80005500
#define secErrorClass   0x80001B00
#define secSvcsErrorClass   0x80004900
#define serErrorClass   0x80000300
#define signErrorClass   0x80004300
#define slkErrorClass   0x80000400
#define smsErrorClass   0x80002800
#define sndErrorClass   0x80000800
#define sslErrorClass   0x80003900
#define statErrorClass   0x80005100
#define svcErrorClass   0x80003F00
#define syncMgrErrorClass   0x80004B00
#define sysErrorClass   0x80000500
#define telErrorClass   0x80002F00
#define timErrorClass   0x80000A00
#define tlsErrorClass   0x80003300
#define tsmErrorClass   0x80001900
#define txtErrorClass   0x80001800
#define udaErrorClass   0x80003200
#define uilibErrorClass   0x80005400
#define vaultErrorClass   0x80006200
#define vfsErrorClass   0x80002A00
#define webErrorClass   0x80001A00
#define winErrorClass   0x80002400
#define xmlErrorClass   0x80005900

Binder Error Codes

Errors that are specific to the Binder infrastructure.

#define bndErrBadInterface   ((status_t)(bndErrorClass | 7))
 Requested interface is not implemented.
#define bndErrBadTransact   ((status_t)(bndErrorClass | 5))
 Transaction data is corrupt.
#define bndErrBadType   ((status_t)(bndErrorClass | 2))
 Given argument has invalid type.
#define bndErrDead   ((status_t)(bndErrorClass | 3))
 Target Binder is no longer with us.
#define bndErrIncStrongFailed   ((status_t)(bndErrorClass | 11))
 AttemptIncStrong() -- no more strong refs.
#define bndErrMissingArg   ((status_t)(bndErrorClass | 1))
 Required argument not supplied.
#define bndErrOutOfStack   ((status_t)(bndErrorClass | 10))
 No more recursion for you!
#define bndErrReadNullValue   ((status_t)(bndErrorClass | 11))
 Reading NULL value type from SParcel.
#define bndErrTooManyLoopers   ((status_t)(bndErrorClass | 6))
 No more asynchronicity for you!
#define bndErrUnknownMethod   ((status_t)(bndErrorClass | 8))
 Binder does not implement requested method.
#define bndErrUnknownProperty   ((status_t)(bndErrorClass | 9))
 Binder does not implement requested property.
#define bndErrUnknownTransact   ((status_t)(bndErrorClass | 4))
 Don't know the given transaction code.

Generic Error Codes

You should use one of these error codes if it is applicable to your situation.

#define ECANCEL   5
#define errNone   0x00000000
 Non-error condition.
#define sysErrBadAddress   ((status_t)(-EBADADDR))
 POSIX: The given address is not valid.
#define sysErrBadData   ((status_t)(sysErrorClass | 47))
 Input data is corrupt.
#define sysErrBadDesignEncountered   ((status_t)(sysErrorClass | 50))
 My bad. Will be fixed in the next version. Really.
#define sysErrBadIndex   ((status_t)(sysErrorClass | 41))
 Out-of-range index supplied to function.
#define sysErrBadType   ((status_t)(sysErrorClass | 42))
 Bad argument type supplied to function.
#define sysErrBrokenPipe   ((status_t)(-EPIPE))
 POSIX: The IO pipe you are using is no longer working.
#define sysErrBufTooSmall   ((status_t)(sysErrorClass | 13))
#define sysErrBusy   ((status_t)(-EBUSY))
 POSIX: The target object is currently in use by someone else.
#define sysErrCanceled   ((status_t)(-ECANCEL))
 POSIX: The operation was cancelled by another entity such as the user.
#define sysErrCPUArchitecture   ((status_t)(sysErrorClass | 40))
 Loader: Program needs different architecture of the CPU to run.
#define sysErrDataTruncated   ((status_t)(sysErrorClass | 48))
 Not all of the data got through.
#define sysErrDontDoThat   ((status_t)(-EACCES))
 POSIX: That's not a good idea.
#define sysErrDynamicLinkerError   ((status_t)(sysErrorClass | 38))
 Loader: Error occured during dynamic linking.
#define sysErrEndOfData   ((status_t)(sysErrorClass | 54))
 Reached the end of data, no more data available.
#define sysErrEntryExists   ((status_t)(-EEXIST))
 POSIX: Attempted to create an entry that already exists.
#define sysErrEntryNotFound   ((status_t)(-ENOENT))
 POSIX: There is no entry with the requested name.
#define sysErrInternalError   ((status_t)(sysErrorClass | 37))
 Loader: System encountered unexpected internal error.
#define sysErrInterrupted   ((status_t)(-EINTR))
 POSIX: Your operation was rudely interrupted by something else in the system.
#define sysErrInvalidSignature   ((status_t)(sysErrorClass | 36))
 Loader: Module has no valid digital signuture.
#define sysErrIO   ((status_t)(sysErrorClass | 49))
 General IO error.
#define sysErrLibNotFound   ((status_t)(sysErrorClass | 10))
#define sysErrMismatchedValues   ((status_t)(sysErrorClass | 43))
 Conflicting values supplied to the function.
#define sysErrModuleFound68KCode   ((status_t)(sysErrorClass | 33))
 Loader: ARM module not found, but 68K code resource was.
#define sysErrModuleIncompatible   ((status_t)(sysErrorClass | 32))
#define sysErrModuleInvalid   ((status_t)(sysErrorClass | 31))
#define sysErrModuleNotFound   sysErrLibNotFound
#define sysErrModuleRelocationError   ((status_t)(sysErrorClass | 34))
 Loader: Failed to apply relocation while loading a module.
#define sysErrNameInUse   ((status_t)(sysErrorClass | 45))
 The requested name already exists. Also see sysErrEntryExists.
#define sysErrNameNotFound   ((status_t)(sysErrorClass | 44))
 The requested name does not exist. Also see sysErrEntryNotFound.
#define sysErrNameTooLong   ((status_t)(-E2BIG))
 POSIX: A name string is longer than supported by the target.
#define sysErrNoFreeLibSlots   ((status_t)(sysErrorClass | 9))
#define sysErrNoFreeRAM   ((status_t)(sysErrorClass | 4))
 Not of enough RAM to perform needed allocation.
#define sysErrNoFreeResource   ((status_t)(sysErrorClass | 3))
 The requested resource could not be allocated.
#define sysErrNoGlobalStructure   ((status_t)(sysErrorClass | 35))
 Loader: Module has no global structure.
#define sysErrNoInit   ((status_t)(sysErrorClass | 46))
 Target not initialized.
#define sysErrNotAllowed   ((status_t)(sysErrorClass | 5))
 The requested operation is not allowed.
#define sysErrNotInitialized   ((status_t)(sysErrorClass | 30))
 NotifyMgr Phase 2: Manager is not initialized.
#define sysErrOSVersion   ((status_t)(sysErrorClass | 53))
 AppMgr: Program needs higher OS version to run.
#define sysErrOutOfOwnerIDs   ((status_t)(sysErrorClass | 8))
#define sysErrOutOfRange   ((status_t)(-ERANGE))
 POSIX: The input is not within a valid range.
#define sysErrParamErr   ((status_t)(sysErrorClass | 2))
 The input parameters were invalid or corrupt.
#define sysErrPermissionDenied   ((status_t)(-EPERM))
 POSIX: You do not have permission to access the given item.
#define sysErrPrefNotFound   ((status_t)(sysErrorClass | 14))
#define sysErrProcessFaulted   ((status_t)(sysErrorClass | 51))
 AppMgr: Process has faulted during execution.
#define sysErrRAMModuleNotAllowed   ((status_t)(sysErrorClass | 39))
 Loader: RAM-based module cannot be loaded when device is booted into ROM-only mode.
#define sysErrRomIncompatible   ((status_t)(sysErrorClass | 12))
#define sysErrTimeout   ((status_t)(sysErrorClass | 1))
 The requested operation took too long to complete.
#define sysErrUnsupported   ((status_t)(-ENOTSUP))
 POSIX: The requested operation is not supported.
#define sysErrWeakRefGone   ((status_t)(sysErrorClass | 52))
 I was holding a weak reference, and that object is gone now.
#define sysErrWouldBlock   ((status_t)(-EWOULDBLOCK))
 POSIX: The IO operation would need to block for some amount of time to complete.
#define sysNotifyErrBroadcastBusy   ((status_t)(sysErrorClass | 19))
 NotifyMgr: A broadcast is already in progress - try again later.
#define sysNotifyErrBroadcastCancelled   ((status_t)(sysErrorClass | 20))
 NotifyMgr: A handler cancelled the broadcast.
#define sysNotifyErrDuplicateEntry   ((status_t)(sysErrorClass | 17))
 NotifyMgr: Identical entry already exists.
#define sysNotifyErrEntryNotFound   ((status_t)(sysErrorClass | 16))
 NotifyMgr: Could not find registration entry in the list.
#define sysNotifyErrNoServer   ((status_t)(sysErrorClass | 21))
 NotifyMgr: Can't find the notification server.
#define sysNotifyErrNoStackSpace   ((status_t)(sysErrorClass | 29))
 NotifyMgr Phase 2: Not enough stack space for a broadcast.
#define sysNotifyErrQueueEmpty   ((status_t)(sysErrorClass | 28))
 NotifyMgr Phase 2: Deferred queue is empty.
#define sysNotifyErrQueueFull   ((status_t)(sysErrorClass | 27))
 NotifyMgr Phase 2: Deferred queue is full.

Error Reporting

Definitions for program error reporting facilities.

#define ENOTSUP   524
#define errReportStripContext   0x00000001
#define errResponseBreak68K   0x00000004
#define errResponseBreakBoth   (errResponseBreakNative + errResponseBreak68K)
#define errResponseBreakNative   0x00000002
#define errResponseDefaultSet
#define errResponseIgnore   0x00000008
#define errResponseKillProcess   0x00000010
#define errResponseShutdown   0x00000040
#define errResponseSoftReset   0x00000020
#define errResponseTryHighLevel   0x00000001
#define EWOULDBLOCK   EAGAIN

Media Error Codes

Errors that are specific to multimedia operations.

#define mediaErrAlreadyConnected   ((status_t)(mediaErrorClass | 4))
#define mediaErrAlreadyVisited   ((status_t)(mediaErrorClass | 2))
#define mediaErrBufferFlowMismatch   ((status_t)(mediaErrorClass | 7))
#define mediaErrFormatMismatch   ((status_t)(mediaErrorClass | 1))
#define mediaErrNoBufferSource   ((status_t)(mediaErrorClass | 6))
#define mediaErrNotConnected   ((status_t)(mediaErrorClass | 5))
#define mediaErrStreamExhausted   ((status_t)(mediaErrorClass | 3))

RegExp Error Codes

Errors that are specific to regular expression parsing.

#define regexpErrCorruptedOpcode   ((status_t)(regexpErrorClass | 16))
 Poor opcode.
#define regexpErrCorruptedPointers   ((status_t)(regexpErrorClass | 15))
 Poor pointer.
#define regexpErrCorruptedProgram   ((status_t)(regexpErrorClass | 13))
 Poor program.
#define regexpErrInternalError   ((status_t)(regexpErrorClass | 10))
 Uh oh!
#define regexpErrInvalidBracketRange   ((status_t)(regexpErrorClass | 8))
 Bad stuff inside [].
#define regexpErrJunkOnEnd   ((status_t)(regexpErrorClass | 4))
 Junk isn't good for you.
#define regexpErrMemoryCorruption   ((status_t)(regexpErrorClass | 14))
 Poor memory.
#define regexpErrNestedStarQuestionPlus   ((status_t)(regexpErrorClass | 6))
 Likewise.
#define regexpErrQuestionPlusStarFollowsNothing   ((status_t)(regexpErrorClass | 11))
 That's a mouthful.
#define regexpErrStarPlusOneOperandEmpty   ((status_t)(regexpErrorClass | 5))
 As it says.
#define regexpErrTooBig   ((status_t)(regexpErrorClass | 2))
 Not that we like hard-coded limits.
#define regexpErrTooManyParenthesis   ((status_t)(regexpErrorClass | 3))
 No, really, we don't like hard-coded limits.
#define regexpErrTrailingBackslash   ((status_t)(regexpErrorClass | 12))
 This isn't C.
#define regexpErrUnmatchedBracket   ((status_t)(regexpErrorClass | 9))
 Such as []].
#define regexpErrUnmatchedParenthesis   ((status_t)(regexpErrorClass | 1))
 Such as ()).

Defines

#define exgErrAppError   (exgErrorClass | 9)
#define exgErrAuthRequired   (exgErrorClass | 20)
#define exgErrBadData   (exgErrorClass | 8)
#define exgErrBadLibrary   (exgErrorClass | 17)
#define exgErrBadParam   (exgErrorClass | 14)
#define exgErrConnection   (exgErrorClass | 23)
#define exgErrDeviceBusy   (exgErrorClass | 16)
#define exgErrDeviceFull   (exgErrorClass | 11)
#define exgErrDisconnected   (exgErrorClass | 12)
#define exgErrInvalidScheme   (exgErrorClass | 25)
#define exgErrInvalidURL   (exgErrorClass | 24)
#define exgErrLibError   (exgErrorClass | 22)
#define exgErrNoHardware   (exgErrorClass | 19)
#define exgErrNoKnownTarget   (exgErrorClass | 5)
#define exgErrNoReceiver   (exgErrorClass | 4)
#define exgErrNotAllowed   (exgErrorClass | 7)
#define exgErrNotEnoughPower   (exgErrorClass | 18)
#define exgErrNotFound   (exgErrorClass | 13)
#define exgErrNotSupported   (exgErrorClass | 15)
#define exgErrRedirect   (exgErrorClass | 21)
#define exgErrStackInit   (exgErrorClass | 2)
#define exgErrTargetMissing   (exgErrorClass | 6)
#define exgErrUnknown   (exgErrorClass | 10)
#define exgErrUserCancel   (exgErrorClass | 3)
#define exgMemError   (exgErrorClass | 1)
#define kDALError   ((status_t)(dalErrorClass | 0x00FF))
#define kDALTimeout   ((status_t)(sysErrorClass | 1))


Define Documentation

#define actvErrorClass   0x80002000
 

#define almErrorClass   0x80000900
 

#define amErrorClass   0x80003D00
 

#define appErrorClass   0x80008000
 

#define appMgrErrorClass   0x80004000
 

#define attnErrorClass   0x80002E00
 

#define azmErrorClass   0x80003C00
 

#define bltErrorClass   0x80002300
 

#define blthErrorClass   0x80003100
 

#define bndErrBadInterface   ((status_t)(bndErrorClass | 7))
 

Requested interface is not implemented.

#define bndErrBadTransact   ((status_t)(bndErrorClass | 5))
 

Transaction data is corrupt.

#define bndErrBadType   ((status_t)(bndErrorClass | 2))
 

Given argument has invalid type.

Todo:
Should this go away and just use B_BAD_TYPE?

#define bndErrDead   ((status_t)(bndErrorClass | 3))
 

Target Binder is no longer with us.

#define bndErrIncStrongFailed   ((status_t)(bndErrorClass | 11))
 

AttemptIncStrong() -- no more strong refs.

#define bndErrMissingArg   ((status_t)(bndErrorClass | 1))
 

Required argument not supplied.

#define bndErrorClass   0x80004A00
 

#define bndErrOutOfStack   ((status_t)(bndErrorClass | 10))
 

No more recursion for you!

#define bndErrReadNullValue   ((status_t)(bndErrorClass | 11))
 

Reading NULL value type from SParcel.

#define bndErrTooManyLoopers   ((status_t)(bndErrorClass | 6))
 

No more asynchronicity for you!

#define bndErrUnknownMethod   ((status_t)(bndErrorClass | 8))
 

Binder does not implement requested method.

#define bndErrUnknownProperty   ((status_t)(bndErrorClass | 9))
 

Binder does not implement requested property.

#define bndErrUnknownTransact   ((status_t)(bndErrorClass | 4))
 

Don't know the given transaction code.

#define catmErrorClass   0x80004700
 

#define certErrorClass   0x80004800
 

#define cmpErrorClass   0x80000D00
 

#define cncErrorClass   0x80001F00
 

#define cpmErrorClass   0x80003800
 

#define dalErrorClass   0x8000FF00
 

#define dirErrorClass   0x80003E00
 

#define dispErrorClass   0x80002200
 

#define dlkErrorClass   0x80000E00
 

#define dmErrorClass   0x80000200
 

#define drvrErrorClass   0x80004500
 

#define dtErrorClass   0x80005600
 

#define dtIntProtClass   0x80005800
 

#define ECANCEL   5
 

#define em68kErrorClass   0x80003400
 

#define emuErrorClass   0x80001C00
 

#define ENOTSUP   524
 

#define errInfoClass   0x80007F00
 

#define errNone   0x00000000
 

Non-error condition.

Note:
The ssize to type is used to indicate that positive values may be returning in the non-error case. You should always check for success with the expression "error >= errNone".

#define errorClassMask   0xFFFFFF00
 

#define errReportStripContext   0x00000001
 

#define errResponseBreak68K   0x00000004
 

#define errResponseBreakBoth   (errResponseBreakNative + errResponseBreak68K)
 

#define errResponseBreakNative   0x00000002
 

#define errResponseDefaultSet
 

Value:

#define errResponseIgnore   0x00000008
 

#define errResponseKillProcess   0x00000010
 

#define errResponseShutdown   0x00000040
 

#define errResponseSoftReset   0x00000020
 

#define errResponseTryHighLevel   0x00000001
 

#define evtErrorClass   0x80000700
 

#define EWOULDBLOCK   EAGAIN
 

#define exgErrAppError   (exgErrorClass | 9)
 

#define exgErrAuthRequired   (exgErrorClass | 20)
 

#define exgErrBadData   (exgErrorClass | 8)
 

#define exgErrBadLibrary   (exgErrorClass | 17)
 

#define exgErrBadParam   (exgErrorClass | 14)
 

#define exgErrConnection   (exgErrorClass | 23)
 

#define exgErrDeviceBusy   (exgErrorClass | 16)
 

#define exgErrDeviceFull   (exgErrorClass | 11)
 

#define exgErrDisconnected   (exgErrorClass | 12)
 

#define exgErrInvalidScheme   (exgErrorClass | 25)
 

#define exgErrInvalidURL   (exgErrorClass | 24)
 

#define exgErrLibError   (exgErrorClass | 22)
 

#define exgErrNoHardware   (exgErrorClass | 19)
 

#define exgErrNoKnownTarget   (exgErrorClass | 5)
 

#define exgErrNoReceiver   (exgErrorClass | 4)
 

#define exgErrNotAllowed   (exgErrorClass | 7)
 

#define exgErrNotEnoughPower   (exgErrorClass | 18)
 

#define exgErrNotFound   (exgErrorClass | 13)
 

#define exgErrNotSupported   (exgErrorClass | 15)
 

#define exgErrorClass   0x80001500
 

#define exgErrRedirect   (exgErrorClass | 21)
 

#define exgErrStackInit   (exgErrorClass | 2)
 

#define exgErrTargetMissing   (exgErrorClass | 6)
 

#define exgErrUnknown   (exgErrorClass | 10)
 

#define exgErrUserCancel   (exgErrorClass | 3)
 

#define exgMemError   (exgErrorClass | 1)
 

#define expErrorClass   0x80002900
 

#define fileErrorClass   0x80001600
 

#define flpErrorClass   0x80000680
 

#define flshErrorClass   0x80001D00
 

#define fplErrorClass   0x80000600
 

#define ftrErrorClass   0x80000C00
 

#define grfErrorClass   0x80001000
 

#define grmlErrorClass   0x80003500
 

#define halErrorClass   0x80003B00
 

#define hsExgErrorClass   0x80004E00
 

#define htalErrorClass   0x80001300
 

#define HttpErrorClass   0x80004C00
 

#define hwrErrorClass   0x80003000
 

#define inetErrorClass   0x80001400
 

#define intlErrorClass   0x80002C00
 

#define iosErrorClass   0x80004200
 

#define IrCommErrorClass   0x80003700
 

#define IrErrorClass   0x80003600
 

#define kalErrorClass   0x80003A00
 

#define kDALError   ((status_t)(dalErrorClass | 0x00FF))
 

#define kDALTimeout   ((status_t)(sysErrorClass | 1))
 

#define lmErrorClass   0x80002B00
 

#define lz77ErrorClass   0x80002700