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_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. |
| 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. |
| 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. |
| 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. |