Condition Codes

Except for Kernel calls, which do not perform error checking, each system call returns a condition code whenever it is invoked. If the call executes without error, it returns the condition code E_OK. (Some iNA 960 cq_* calls can return a value other than E_OK to indicate success.) If an error occurs, the call returns a condition code that describes the error. Your application can handle the condition code directly (in-line) or with an exception handler.

The typical condition codes returned by each call are listed in each system call description. However, be aware that:

·PL/M programs use a $ instead of an _ (underscore) in the condition code mnemonic.

·Condition codes can percolate up to outer layers of the OS from inner layers. For example, an HI call can produce exception codes from the BIOS or EIOS. In that case, the condition code is not listed in the HI call description.

E_OK 0H The last system call that returned a status was successful.

Nucleus Environmental Conditions

E_TIME 01H A time limit (possibly 0) expired without a task's request being satisfied.
E_MEM 02H There is not sufficient memory available to satisfy a task's request.
E_BUSY 03H Another task currently has access to the data protected by a region.
E_LIMIT 04H A task attempted an operation which, if successful, would have violated a Nucleus-enforced limit.
E_CONTEXT 05H A system call was issued out of context or the operating system was asked to perform an impossible operation.
E_EXIST 06H A token parameter has a value which is not a valid token.
E_STATE 07H A task attempted an operation which would have caused an impossible transition of a task's state.
E_NOT_CONFIGURED 08H This system call is not part of the present configuration.
E_INTERRUPT_SATURATION 09H An interrupt task has accumulated the maximum allowable number of signal_interrupt requests.
E_INTERRUPT_OVERFLOW 0AH An interrupt task has accumulated more than the maximum allowable amount of signal_interrupt requests.
E_TRANSMISSION 0BH A NACK, timeout, or bus error occurred.
E_SLOT 0CH There are no available GDT slots.
E_DATA_CHAIN 0DH A data chain has been returned. The token points to the beginning of the data chain block.

I/O System Environmental Conditions

E_FEXIST 20H The specified file already exists.
E_FNEXIST 21H The specified file does not exist.
E_DEVFD 22H The device driver and file driver are incompatible.
E_SUPPORT 23H The combination of parameters entered is not supported.
E_EMPTY_ENTRY 24H The specified entry in a directory file is empty.
E_DIR_END 25H The specified directory entry index is beyond the end of the directory file.
E_FACCESS 26H The connection does not have the correct access to the file.
E_FTYPE 27H The requested operation is not valid for this file type.
E_SHARE 28H The requested operation attempted an improper kind of file sharing, or the file does not allow sharing.
E_SPACE 29H There is no space left on the volume.
E_IDDR 2AH An invalid device driver request occurred.
E_IO 2BH An I/O error occurred.
E_FLUSHING 2CH The connection specified in the call was deleted before the operation completed.
E_ILLVOL 2DH The device contains an invalid or improperly formatted volume.
E_DEV_OFFLINE 2EH The device being accessed is now offline.
E_IFDR 2FH An invalid file driver request occurred.
E_FRAGMENTATION 30H The volume is too fragmented for a file to be extended.
E_DIR_NOT_EMPTY 31H The call is attempting to delete a directory that is not empty.
E_NOT_FILE_CONN 32H The specified connection is not a file connection.
E_NOT_DEVICE_CONN 33H The specified connection is not a device connection.
E_CONN_NOT_OPEN 34H The connection is not open for reading, writing, or updating.
E_CONN_OPEN 35H The task attempted to open a connection that is already open.
E_BUFFERED_CONN 36H The specified connection was opened by the EIOS and used by the BIOS, which is not allowed.
E_OUTSTANDING_CONNS 37H A soft detach was specified, but connections to the device still exist.
E_ALREADY_ATTACHED 38H The specified device is already attached.
E_DEV_DETACHING 39H The file specified is on a device that the operating system is in the process of detaching.
E_NOT_SAME_DEVICE 3AH The existing pathname and the new pathname refer to different devices. You cannot simultaneously rename a file and move it to another device.
E_ILLOGICAL_RENAME 3BH The call is attempting to rename a directory to a new path containing itself.
E_STREAM_SPECIAL 3CH A stream file request is out of context. Either it is a query request and another query request is already queued, or it is a satisfy request and the request queue is empty or a query request is queued.
E_INVALID_FNODE 3DH The connection refers to a file with an invalid fnode. Delete this file.
E_PATHNAME_SYNTAX 3EH The specified pathname contains invalid characters.
E_FNODE_LIMIT 3FH One of these:

·The volume already contains the maximum number of files and no more fnodes are available for new files.

or

·The file cannot be created or extended to this size because it has reached the maximum number of volume blocks available for a file.

E_LOG_NAME_SYNTAX 40H The specified pathname starts with a colon (:), but it does not contain a second, matching colon; or the specified logical has more than 12 characters or contains invalid characters.
E_CANNOT_CLOSE 41H The buffers cannot be written to the device to complete the I/O request.
E_IOMEM 42H The BIOS has insufficient memory to process a request.
E_MEDIA 44H The device containing a specified file is not on line.
E_LOG_NAME_NEXIST 45H The specified path contains an explicit logical name, but the EIOS was unable to find the name in the object directories of the local job, the global job, or the root job.
E_NOT_OWNER 46H The user who attempted to detach the device is not the owner of the device.
E_IO_JOB 47H The EIOS could not create an I/O job because the default directory size (DDS) configuration parameter is too small.
E_UDF_FORMAT 48H The user definition file (UDF) is not in the right format.
E_NAME_NEXIST 49H The user name specified in the call is not listed in the UDF.
E_UID_NEXIST 4AH The user ID in the specified user object does not match the ID listed in the UDF for the corresponding user name.
E_PASSWORD_MISMATCH 4BH The password specified in the call does not match the one listed in the UDF for the corresponding user name.
E_UDF_IO 4CH The UDF specified cannot be found. An error code came from a remote UDF and not another remote file.
E_IO_UNCLASS 50H An unknown type of I/O error occurred.
E_IO_SOFT 51H A soft I/O error occurred. A retry might be successful.
E_IO_HARD 52H A hard I/O error occurred. A retry is probably useless.
E_IO_OPRINT 53H The device was off-line. Operator intervention is required.
E_IO_WRPROT 54H The volume is write-protected.
E_IO_NO_DATA 55H A tape drive attempted to read the next record, but it found no data.
E_IO_MODE 56H A tape drive attempted a read (write) operation before the previous write (read) completed.
E_IO_NO_SPARES 57H No spare tracks/sectors.
E_IO_ALT_ASSIGNED 58H Alternate track/sector was assigned.

Application Loader Environmental Conditions

E_BAD_HEADER 62H The object file contains an invalid header record.
E_EOF 65H The Application Loader encountered an unexpected EOF file while reading a record.
E_NO_LOADER_MEM 67H There is insufficient memory to satisfy the memory requirements of the AL.
E_NO_START 6CH The AL could not find the start address.
E_JOB_SIZE 6DH The maximum memory-pool size of the job being loaded is smaller than the amount of memory required to load its object file.
E_OVERLAY 6EH The overlay name does not match any of the overlay module names.
E_LOADER_SUPPORT 6FH The file requires features not supported by the AL as configured.

Human Interface Environmental Conditions

E_LITERAL 80H The parsing buffer contains a literal with no closing quote.
E_STRING_BUFFER 81H The string to be returned exceeds the size of the buffer the user provided in the call.
E_SEPARATOR 82H The parsing buffer contains a command separator.
E_CONTINUED 83H The parsing buffer contains a continuation character.
E_INVALID_NUMERIC 84H A numeric value contains non-numeric characters.
E_LIST 85H A value in the value list is missing.
E_WILDCARD 86H A wild-card character appears in an invalid context, such as in an intermediate component of a pathname.
E_PREPOSITION 87H The command line contains an invalid preposition.
E_PATH 88H The command line contains an invalid pathname.
E_CONTROL_C 89H The user typed a <Ctrl-C> to abort the command.
E_CONTROL 8AH The command line contains an invalid control character.
E_UNMATCHED_LISTS 8BH The number of files in the input and output pathname lists is not the same.
E_INVALID_DATE 8CH The operator entered an invalid date.
E_NO_PARAMETERS 8DH A command expected parameters, but the operator didn't supply any.
E_VERSION 8EH The HI is not compatible with the version of the command the operator invoked.
E_GET_PATH_ORDER 8FH A command called c_get_output_pathname before calling c_get_input_pathname.
E_PERMISSION 90H The user does not have permission to access the requested resource.
E_INVALID_TIME 91H The operator entered an invalid time.

UDI Environmental Conditions

E_UNKNOWN_EXIT 0C0H The program exited normally.
E_WARNING_EXIT 0C1H The program issued warning messages.
E_ERROR_EXIT 0C2H The program detected errors.
E_FATAL_EXIT 0C3H A fatal error occurred in the program.
E_ABORT_EXIT 0C4H The operating system aborted the program.
E_UDI_INTERNAL 0C5H A UDI internal error occurred.

Nucleus Communications Service Environmental Conditions

E_CANCELLED 0E1H A send_rsvp transaction has been remotely canceled.
E_HOST_ID 0E2H The specified host ID does not refer to a board that is currently in message space.
E_NO_LOCAL_BUFFER 0E3H The buffer pool does not contain a buffer large enough to hold the message.
E_NO_REMOTE_BUFFER 0E4H The remote port's buffer pool does not have a buffer large enough to hold the message and message fragmentation is turned off.
E_RESOURCE_LIMIT 0E6H Either the number of simultaneous messages or simultaneous transactions has been reached. These fields are set during system configuration.
E_TRANS_ID 0E8H The specified transaction ID is not valid.
E_DISCONNECTED 0E9H The port sending the message has previously issued an rq_connect to a remote port. The board on which the remote port is located has been reset.
E_TRANS_LIMIT 0EAH A transmission resource limitation has been encountered.

Paging Subsystem Environmental Conditions

E_VMEM 0F0H Insufficient virtual memory available in the virtual segment to satisfy this request.
E_ALLOCATED 0F1H Physical memory is already allocated to this area of the virtual segment.
E_NOT_ALLOCATED 0F2H No physical memory is allocated to this area of the virtual segment.

Programmer Errors

Nucleus Programmer Errors

E_ZERO_DIVIDE 8000H A task attempted a divide by zero.
E_OVERFLOW 8001H An overflow interrupt occurred.
E_TYPE 8002H A token referred to an existing object that is not of the required type.
EBOUNDS 8003H A 16-bit address (offset) exceeds the 64 KB boundary.
E_PARAM 8004H A parameter that is neither a token nor an offset has an invalid value.
E_BAD_CALL 8005H An OS extension received an invalid function code.
E_ARRAY_BOUNDS 8006H Hardware or software has detected an array overflow.
E_NDP_ERROR 8007H An NPX error occurred. OS extensions can return the status of the NPX to the exception handler.
E_ILLEGAL_OPCODE 8008H The processor tried to execute an invalid instruction.
E_EMULATOR_TRAP 8009H An ESC instruction was encountered with the emulator bit set in the machine status word.
E_CHECK_EXCEPTION 800AH A task has exceeded the bounds of a CASE statement.
E_CPU_XFER_DATA_LIMIT 800BH The NPX tried to access an address that is out of segment boundaries.
E_PROTECTION 800DH A general protection error occurred.
E_NOT_PRESENT 800EH A request has been made to load a segment register whose segment is not present.
E_BAD_ADDR 800FH The logical address is illegal. Either the selector does not point to a valid segment, or the offset is not within the segment boundaries.

I/O System Programmer Errors

E_NOUSER 8021H No default user is defined.
E_NOPREFIX 8022H No default prefix is defined.
E_BAD_BUFF 8023H Illegal usage of memory buffers in read or write requests occurred.
E_NOT_LOG_NAME 8040H The specified object is not a device connection or file connection.
E_NOT_DEVICE 8041H A token referred to an existing object that is not, but should be, a device connection.
E_NOT_CONNECTION 8042H A token referred to an existing object that is not, but should be, a file connection.

Application Loader Programmer Error

E_JOB_PARAM 8060H The maximum memory pool size specified for the job is less than the minimum pool size specified.

Human Interface Programmer Errors

E_PARSE_TABLES 8080H There is an error in the internal parsing tables.
E_JOB_TABLES 8081H An internal HI table was overwritten, causing it to contain an invalid value.
E_DEFAULT_SO 8083H The default output name string is invalid.
E_STRING 8084H The pathname to be returned exceeds 255 characters in length.
E_ERROR_OUTPUT 8085H The command invoked by c_send_command includes a call to c_send_eo_response, but the command connection does not permit c_send_eo_response calls.

UDI Programmer Errors

E_RESERVE_PARAM 80C6H The calling program tried to reserve memory for more than 12 files or buffers.
E_OPEN_PARAM 80C7H The calling program requested more than two buffers when opening a file.

Communication System Programmer Errors

E_PROTOCOL 80E0H A signal port was specified instead of a data port, or vice versa.
E_PORT_ID_USED 80E1H The port ID specifies a port that is in use.
E_NUC_BAD_BUF 80E2H The specified pointer is invalid, or points to a buffer that is not large enough.

Paging Subsystem Programmer Errors

E_VSEG 80F0H The calling task does not belong to the same job that created the virtual segment.
E_ALIGNMENT 80F1H The address is not properly aligned, typically on a 4 Kbyte boundary.