e32kpan.h File Reference

Enum TKernelPanic

These panics represent program errors detected by the Kernel. Typically, they are caused by passing bad or contradictory parameters to functions. Threads that cause exceptions also raise a KERN-EXEC type panic.

EnumeratorValueDescription
EBadHandle0

This panic is raised when the Kernel cannot find an object in the object index for the current process, or current thread, using a specified object index number (the raw handle number).

EAccessDenied1

This is a general panic raised as a result of attempting some unauthorised activity such as trying to suspend a thread, or trying to set the priority of a thread, when not authorised to do so.

EBadName2

This panic is raised by the kernel when opening a kernel side object, a DObject type, and the fullname is invalid.

ECausedException3

This panic is raised when an unhandled exception occurs. Exceptions have many causes, but the most common are access violations caused, for example, by dereferencing NULL.

Among other possible causes are: general protection faults, executing an invalid instruction, alignment checks, etc.

ECompletion4

Not used.

ELeaveWithoutTrap5

Not used.

EBadCodeSegHandle6

This panic is raised by the kernel when a handle to a code segment is invalid.

ESegmentWriteOutOfRange7

Not used.

EChunkSizeTooBig8

Not used.

ERequestAlreadyPending9

This is a general panic raised by the kernel when an attempt is made to issue a request when one is already outstanding, and only one outstanding request is permitted at any one time.

ERequestNoInvalid10

This panic is raised by the Request() member function of the DLogicalChannel() kernel object when the request number passed to the function is smaller than the permitted minimum.

See also: DLogicalChannel::EMinRequestId

EBadUnitNumber11

This panic is raised when creating a logical channel, and the unit number is outside the permitted range.

If unit numbers are not permitted, the unit number value must be KNullUnit. If unit numbers are permitted, the unit number value must be less than KMaxUnits.

EEventAlreadyCaptured12

This panic is raised by the kernel if an event capture hook has already been designated.

EEventNotCaptured13

This panic is raised by the kernel if the current thread is not the designated event capture hook.

EBadPriority14

This panic is raised when an attempt is made to set the priority of a thread or process to an illegal value.

ETimerAlreadyPending15

This panic is raised when a timer event is requested from an asynchronous timer service, an RTimer, and a timer event is already outstanding. It is caused by calling either the At(), After() or Lock() member functions after a previous call to any of these functions but before the timer event requested by those functions has completed.

EAlreadyLoggedOn16

Not used.

EFailedKernelHeapCheck17

The panic is raised if kernel heap checking has failed.

ERequestFromWrongThread18

Not used.

EMesAlreadyPending19

This panic is raised by the Kernel when a server program issues a request to receive a message, i.e. when it calls the Receive() member function of RServer, the handle to the Kernel side server object.

The panic occurs when a receive message request has previously been made and is still outstanding.

EEventRequestPending20

This panic is raised by the Kernel when a request for an event (as originated by a call to UserSvr::RequestEvent()) is made while a previously made request is still outstanding.

EIllegalWsProcess21

Not used.

EHardwareNotAvailable22

Not used.

EUnsharableSession23

This panic is raised when attempting to create a session with a server, and access is been denied.

EDesOverflow24

This panic is raised when writing global DLL data, and the length of data to be written is greater than the space available.

EBadObjectType25

This panic is raised when searching for objects, using the internal function TFindHandleBase::NextObject(), and an invalid object type is specified.

EBadKernelHeapDebugFunction26

This panic is raised by kernel side code that implements heap debugging behaviour, when a specific debug request is not recognised.

EInvalidSystemCall27

This panic is raised when an executive call is made with an invalid call number.

ESetSessionPtrInvalidMessage28

Not used.

ECompleteDisconnectInvalidMessage29

Not used.

ESyncMsgSentTwice30

This panic is raised when an attempt is being made to send a synchronous message to a server more than once, using the current thread's dedicated synchronous message.

EAutoAttachFailed31

Not used.

EProcessNotLoaded32

This panic is called by DProcess::Resume() when trying to resume a process that is still being loaded.

EKUDesInfoInvalidType33

This panic is raised in a call to Kern::KUDesInfo(), Kern::KUDesPut() etc when an invalid descriptor is passed.

EKUDesSetLengthInvalidType34

This panic is raised in a call to Kern::KUDesSetLength() & Kern::KUDesPut() when the descriptor passed to it is not a modifiable type.

EKUDesSetLengthOverflow35

This panic is raised in a call to Kern::KUDesSetLength() & Kern::KUDesPut() when the length of the source descriptor is longer than the length of the target descriptor.

EBadParameter36

This panic is raised by the kernel side code that implements the setting of the currency symbol when the length of the currency symbol is greater than KMaxCurrencySymbol.

EWaitDllLockInvalid37

This panic is raised by kernel code when it tries to acquire the process DLL lock just before a load, and the wait DLL lock is invalid.

ELibraryAttachInvalid38

This panic is raised by internal kernel code when an illegal attempt is made to attach to a library.

ETooManyEntryPoints39

This panic is raised when extracting a list of DLL entry points and the number exceeds the maximum permitted.

ELibraryDetachInvalid40

This panic is raised by internal kernel code when an illegal attempt is made to detach a library.

ELibraryAttachedInvalid41

This panic is raised by internal kernel code when an illegal attempt is made to attach to a library.

ELibraryDetachedInvalid42

This panic is raised by internal kernel code when an illegal attempt is made to detach a library.

EReleaseDllLockInvalid43

This panic is raised by kernel code when it tries to release the process DLL lock when a load fails, and the release DLL lock is invalid.

EBadMessageHandle44

This panic is raised when a bad message handle is passed to the kernel. This usually occurs when using methods on the RMessagePtr2 or RMessage2 classes after the message has been completed; or when the iHandle data member has become corrupted.

EInvalidMessageParameter45

Not used.

EPlatformSecurityTrap46

This panic can be raised as a result of a call to one of a large number of functions. In general, the panic indicates an attempt to perform an operation on a thread or process by code running in another process - violating the security principle of process isolation.

There are exceptions to this general rule, for example, where the panic is raised because the calling process has insufficient capability. The precise reason is stated with the function(s).

  1. The panic is raised on a call to the following function if the process owning the thread performing the call is not the creator of the target process or, if a handle is specified, the handle is not local.
  2. The panic is raised on a call to the following functions if the process owning the thread performing the call is not the same as the target process. NOTE: the creator of a new process can kill or panic the new process, change the new process priority and set the new process startup parameters until the process is resumed (which the creator can also do). After the new process has been resumed, then it becomes totally independent of its creator, and any attempt to panic it, kill it etc will raise the KERN-EXEC 46 panic.
  3. The panic is raised on call to the following (Symbian partner only) functions if the calling process does not have the PowerMgmt capability (TCapability::ECapabilityPowerMgmt):
    • Power::PowerDown()

    • Power::EnableWakeupEvents()

    • Power::DisableWakeupEvents()

    • Power::RequestWakeupEventNotification()

    • Power::CancelWakeupEventNotification()

  4. The panic is raised on call to the following functions if the calling process does not have the WriteDeviceData capability (TCapability::ECapabilityWriteDeviceData):
  5. The panic is raised on call to the following function if the calling process does not have the ReadDeviceData capability (TCapability::ECapabilityReadDeviceData):
EMsgQueueRequestPending47

This panic is raised when the user issues a request to be notified of messages or the availability of space, when a request has already been issued and is still outstanding.

See also: RMsgQueue

EMsgQueueInvalidLength48

This panic is raised when creating a message queue and the size of the template parameter is invalid.

See also: RMsgQueue

EMsgQueueInvalidSlots49

This panic is raised when creating a message queue and the specified number of slots is not positive.

See also: RMsgQueue

EMsgQueueIllegalCancel50

This panic is raised if an attempt is made to cancel an outstanding request to be notified of messages or the availability of space, and the cancel is being made by a thread in a different process.

EParameterSlotRange51

This panic is raised by RProcess::SetParameter() if a slot value is invalid.

EParameterSlotInUse52

This panic is raised by RProcess::SetParameter() if a slot is in use.

EParameterSlotDataLength53

This panic is raised by RProcess::SetParameter() if the length of the data passed is negative.

ECondVarWaitMutexNotLocked54

This panic is raised by RCondVar::Wait() when the current thread does not hold the specified mutex.

EObsoleteFunctionality55

This panic is raised when a call is made to RThread::GetDesMaxLength(), which is obsolete.

EZombieProcessKilled56

This panic is raised on a process which has not yet been resumed and whose creator has died.

ESessionAlreadyConnected57

A connect message was sent to a session that has already been successfully connected to the server (cookie is non-NULL).

ESessionNullCookie58

A session tried to set the kernel session cookie to a null value

ESessionCookieAlreadySet59

A session tried to set the kernel session cookie twice

ESessionInvalidCookieMsg60

A session tried to set the kernel session cookie with a message that wasn't the connect message

EIllegalFunctionForRealtimeThread61

A realtime thread executed a non-realtime function.

EInvalidRealtimeState62

This panic is raised by Kern::SetThreadRealtimeState when the state argument is invalid.

EBadIpcDescriptor63

A bad descriptor was passed to a server over IPC, causing an exception when the kernel tried to update its length field.

EShBufExecBadNotification64

An invalid notification type was passed to a shared buffers exec call handler.

EShBufExecBadParameter65

An invalid parameter was passed to a shared buffers exec call handler.

EEntropyEstimateOutOfRange66

An entropy estimate passed to an entropy buffer was outside the allowed range.