Module: Ragweed::Wraposx::KernelReturn

Defined in:
lib/ragweed/wraposx/kernelerrorx.rb

Overview

Exception objects for kernel errors likely in Wraposx

Constant Summary collapse

SUCCESS =
{ :value => 0, :message => 'Not an error'}
INVALID_ADDRESS =
{ :value => 1, :message => 'Specified address is not currently valid.'}
PROTECTION_FAILURE =
{ :value => 2, :message => 'Specified memory is valid, but does not permit the required forms of access.'}
NO_SPACE =
{ :value => 3, :message => 'The address range specified is already in use, or no address range of the size specified could be found.'}
INVALID_ARGUMENT =
{ :value => 4, :message => 'The function requested was not applicable to this type of argument, or an argument is invalid'}
FAILURE =
{ :value => 5, :message => 'The function could not be performed.  A catch-all.'}
RESOURCE_SHORTAGE =
{ :value => 6, :message => 'A system resource could not be allocated to fulfill this request.  This failure may not be permanent.'}
NOT_RECEIVER =
{ :value => 7, :message => 'The task in question does not hold receive rights for the port argument.'}
NO_ACCESS =
{ :value => 8, :message => 'Bogus access restriction.'}
MEMORY_FAILURE =
{ :value => 9, :message => 'During a page fault, the target address refers to a memory object that has been destroyed.  This failure is permanent.'}
MEMORY_ERROR =
{ :value => 10, :message => 'During a page fault, the memory object indicated that the data could not be returned.  This failure may be temporary; future attempts to access this same data may succeed, as defined by the memory object.'}
ALREADY_IN_SET =
{ :value => 11, :message => 'The receive right is already a member of the portset.'}
NOT_IN_SET =
{ :value => 12, :message => 'The receive right is not a member of a port set.'}
NAME_EXISTS =
{ :value => 13, :message => 'The name already denotes a right in the task.'}
ABORTED =
{ :value => 14, :message => 'The operation was aborted.  Ipc code will catch this and reflect it as a message error.'}
INVALID_NAME =
{ :value => 15, :message => 'The name doesn\'t denote a right in the task.'}
INVALID_TASK =
{ :value => 16, :message => 'Target task isn\'t an active task.'}
INVALID_RIGHT =
{ :value => 17, :message => 'The name denotes a right, but not an appropriate right.'}
INVALID_VALUE =
{ :value => 18, :message => 'A blatant range error.'}
UREFS_OVERFLOW =
{ :value => 19, :message => 'Operation would overflow limit on user-references.'}
INVALID_CAPABILITY =
{ :value => 20, :message => 'The supplied (port) capability is improper.'}
RIGHT_EXISTS =
{ :value => 21, :message => 'The task already has send or receive rights for the port under another name.'}
INVALID_HOST =
{ :value => 22, :message => 'Target host isn\'t actually a host.'}
MEMORY_PRESENT =
{ :value => 23, :message => 'An attempt was made to supply "precious" data for memory that is already present in a memory object.'}
MEMORY_DATA_MOVED =
{ :value => 24, :message => 'A page was requested of a memory manager via memory_object_data_request for an object using a MEMORY_OBJECT_COPY_CALL strategy, with the VM_PROT_WANTS_COPY flag being used to specify that the page desired is for a copy of the object, and the memory manager has detected the page was pushed into a copy of the object while the kernel was walking the shadow chain from the copy to the object. This error code is delivered via memory_object_data_error and is handled by the kernel (it forces the kernel to restart the fault). It will not be seen by users.'}
MEMORY_RESTART_COPY =
{ :value => 25, :message => 'A strategic copy was attempted of an object upon which a quicker copy is now possible. The caller should retry the copy using vm_object_copy_quickly. This error code is seen only by the kernel.'}
INVALID_PROCESSOR_SET =
{ :value => 26, :message => 'An argument applied to assert processor set privilege was not a processor set control port.'}
POLICY_LIMIT =
{ :value => 27, :message => 'The specified scheduling attributes exceed the thread\'s limits.'}
INVALID_POLICY =
{ :value => 28, :message => 'The specified scheduling policy is not currently enabled for the processor set.'}
INVALID_OBJECT =
{ :value => 29, :message => 'The external memory manager failed to initialize the memory object.'}
ALREADY_WAITING =
{ :value => 30, :message => 'A thread is attempting to wait for an event for which  there is already a waiting thread.'}
DEFAULT_SET =
{ :value => 31, :message => 'An attempt was made to destroy the default processor set.'}
EXCEPTION_PROTECTED =
{ :value => 32, :message => 'An attempt was made to fetch an exception port that is protected, or to abort a thread while processing a protected exception.'}
INVALID_LEDGER =
{ :value => 33, :message => 'A ledger was required but not supplied.'}
INVALID_MEMORY_CONTROL =
{ :value => 34, :message => 'The port was not a memory cache control port.'}
INVALID_SECURITY =
{ :value => 35, :message => 'An argument supplied to assert security privilege was not a host security port.'}
NOT_DEPRESSED =
{ :value => 36, :message => 'thread_depress_abort was called on a thread which was not currently depressed.'}
TERMINATED =
{ :value => 37, :message => 'Object has been terminated and is no longer available'}
LOCK_SET_DESTROYED =
{ :value => 38, :message => 'Lock set has been destroyed and is no longer available.'}
LOCK_UNSTABLE =
{ :value => 39, :message => 'The thread holding the lock terminated before releasing the lock'}
LOCK_OWNED =
{ :value => 40, :message => 'The lock is already owned by another thread'}
LOCK_OWNED_SELF =
{ :value => 41, :message => 'The lock is already owned by the calling thread'}
SEMAPHORE_DESTROYED =
{ :value => 42, :message => 'Semaphore has been destroyed and is no longer available.'}
RPC_SERVER_TERMINATED =
{ :value => 43, :message => 'Return from RPC indicating the target server was terminated before it successfully replied '}
RPC_TERMINATE_ORPHAN =
{ :value => 44, :message => 'Terminate an orphaned activation.'}
RPC_CONTINUE_ORPHAN =
{ :value => 45, :message => 'Allow an orphaned activation to continue executing.'}
NOT_SUPPORTED =
{ :value => 46, :message => 'Empty thread activation (No thread linked to it)'}
NODE_DOWN =
{ :value => 47, :message => 'Remote node down or inaccessible.'}
NOT_WAITING =
{ :value => 48, :message => 'A signalled thread was not actually waiting.'}
OPERATION_TIMED_OUT =
{ :value => 49, :message => 'Some thread-oriented operation (semaphore_wait) timed out'}
RETURN_MAX =
{ :value => 0x100, :message => 'Maximum return value allowable'}

Class Method Summary collapse

Class Method Details

.listObject

Much like Signals.list returns a hash of the possible kernel call return values.



60
61
62
# File 'lib/ragweed/wraposx/kernelerrorx.rb', line 60

def list
  @@list ||= constants.inject({}){|a, c| a.merge! c => const_get(c)}
end