#
# This file is auto-generated. ***ANY*** changes here will be lost
#

package Errno;
our (@EXPORT_OK,%EXPORT_TAGS,@ISA,$VERSION,%errno,$AUTOLOAD);
use Exporter ();
use Config;
use strict;

"$Config{'archname'}-$Config{'osvers'}" eq
"NetWare-x86-multi-thread-5.x" or
	die "Errno architecture (NetWare-x86-multi-thread-5.x) does not match executable architecture ($Config{'archname'}-$Config{'osvers'})";

$VERSION = "1.09_00";
$VERSION = eval $VERSION;
@ISA = qw(Exporter);

@EXPORT_OK = qw(ERR_NO_FILES_FOUND ERR_QUEUE_FULL ERROR_INVALID_ATTRIBUTE_FLAGS
	ERR_BAD_RECORD_OFFSET ERR_NO_SUCH_PROPERTY ERR_RENAME_ACROSS_VOLUME
	ERR_BAD_LOGIN_TIME ERR_NOT_A_POPUP_SCREEN ERR_SPX_SOCKET_NOT_OPENED
	ERR_RECORD_NOT_LOCKED ERR_NO_WRITE_PRIVILEGE_OR_READONLY
	ERR_INVALID_NAME ERR_EA_NO_KEY_NO_DATA ERR_DOS_NO_SEARCH_RIGHTS
	ERR_NO_ALLOC_SPACE ERR_ALREADY_IN_USE ERR_EVENT_CANCELLED
	ERR_NO_SEARCH_PRIVILEGE ERR_INVALID_BINDERY_SECURITY
	ERR_PASSWORD_TOO_SHORT ERR_MEMBER_ALREADY_EXISTS ERR_INVALID_DRIVE_LETTER
	ERR_NO_OBJECT_READ_RIGHTS ERR_EA_NOT_FOUND ERR_EA_KEY_LIMIT
	ERR_Q_STN_NOT_SERVER ERR_FILE_IN_USE ERR_BAD_SHFLAG
	ERROR_INSUFFICIENT_CONTIGUOUS_MEMORY ERROR_INVALID_LOCK_FLAGS
	ERR_TTS_AVAILABLE ERR_BINDERY_FAILURE ERR_BAD_ACTION_CODE
	ERR_LOG_ACCOUNT_EXPIRED ERR_PACKET_SIGNATURES_REQURIED ERR_STREAMS
	ERR_BAD_ORIGIN ERR_NO_PROPERTY_DELETE_RIGHTS ERR_FILE_DETACHED
	ERR_BAD_PAGE_BOUNDARY ERR_FILE_EXTENSION_ERROR ERR_SOCKET_CLOSED
	ERR_EA_ACCESS_DENIED ERR_NO_SUCH_OBJECT_OR_BAD_PASSWORD
	ERR_INVALID_EA_HANDLE_TYPE ERR_NO_READ_PRIVILEGE ERR_SPOOL_DIRECTORY_ERROR
	ERR_ALL_FILES_IN_USE ERR_NO_CREATE_DELETE_PRIVILEGE
	ERR_BAD_STATION_NUMBER ERR_BAD_QUERY_TYPE ERR_NO_ACCOUNTING_PRIVILEGES
	ERR_INVALID_FILE_HANDLE ERR_NO_Q_JOB ERR_HEAP_BAD_PTR
	ERR_ODD_BUFFER_SIZE ERR_NO_Q_SERVER ERR_ALL_READ_ONLY
	ERR_RENAME_DIR_INVALID ERR_NO_PROPERTY_READ_RIGHTS
	ERR_NCPEXT_NO_HANDLER ERR_REQUEST_NOT_OUTSTANDING ERR_NO_CREATE_PRIVILEGE
	ERR_OPEN_SCREEN ERR_NO_PROPERTY_CREATE_PRIVILEGE ERR_NO_OBJECT_CREATE_RIGHTS
	ERR_Q_FULL ERR_NO_PROPERTY_CREATE_RIGHTS ERR_NO_SCORECARDS
	ERR_NO_SUCH_MEMBER ERR_DOES_NOT_RUN_ON_IOENGINE ERR_EA_BAD_DIR_NUM
	ERR_BAD_LIBRARY_HANDLE ERR_PACKET_OVERFLOW ERR_INVALID_PATH
	ERR_EXTENT_NUMBER_OUT_OF_RANGE ERR_IO_FAILURE ERR_PACKET_NOT_DELIVERABLE
	ERR_INVALID_OPENCREATE_MODE ERR_NO_SET_PRIVILEGE ERR_BAD_FILE_SERVER_ID
	ERR_NO_SUCH_BINDERY_OBJECT ERR_NO_OBJECT_RENAME_PRIVILEGE
	ERR_INVALID_INITIAL_SEMAPHORE_VALUE ERR_EA_NUMBER_MISMATCH
	ERR_SERVER_BINDERY_LOCKED ERR_LOCK_FAIL ERR_OUT_OF_TASKS
	ERR_INVALID_ADDRESS ERR_SUPERVISOR_HAS_DISABLED_LOGIN
	ERR_EA_VOLUME_NOT_MOUNTED ERR_INVALID_NAME_SPACE ERR_PROPERTY_ALREADY_EXISTS
	ERR_BAD_PARAMETER ERR_BAD_FILE_NAME ERR_NO_EXPLICIT_TRANSACTION_ACTIVE
	ERR_NO_PROPERTY_WRITE_PRIVILEGE ERROR_NON_SHARED_MEMORY_ADDRESS
	ERR_NO_SUCH_SEARCH_DRIVE ERR_BAD_CONNECTION_ID ERR_UNKNOWN_REQUEST
	ERR_DRIVE_DOES_NOT_EXIST ERR_TALLY_CORRUPT ERR_NO_PROPERTY_WRITE_RIGHTS
	ERR_INCORRECT_ACCESS_PRIVILEGES ERR_LOGIN_DENIED_NO_CONNECTION
	ERR_EXPLICIT_TRANSACTION_ACTIVE ERR_BINDERY_SECURITY ERR_Q_IO_FAILURE
	ERR_SOCKET_ALREADY_OPEN ERR_ILLEGAL_WILDCARD ERR_DATA_PAGE_ODD_SIZE
	ERR_RECORD_ALREADY_LOCKED ERR_STRING_EXCEEDS_LENGTH
	ERR_NO_OBJECT_DELETE_RIGHTS ERR_SERVICE_NOT_LOADED
	ERR_WRITE_TO_GROUP_PROPERTY ERR_SPX_NO_ANSWER_FROM_TARGET
	ERR_EA_SPACE_LIMIT ERR_NO_RESPONSE_FROM_SERVER ERR_NO_SUCH_VALUE_SET
	ERR_NO_PROPERTY_READ_PRIVILEGE ERR_EA_KEY_CORRUPT ERR_INVALID_SEMAPHORE_HANDLE
	ERROR_INVALID_ADDRESS ERR_SEARCH_DRIVE_VECTOR_FULL
	ERR_STRUCT_NOT_FOUND ERR_NO_OBJECT_RENAME_RIGHTS ERR_NO_ITEMS_FOUND
	ERR_INSPECT_FAILURE ERR_SPX_CONNECTION_TABLE_FULL ERR_SPX_IS_INSTALLED
	ERR_NO_MORE_SERVER_SLOTS ERR_TRANSACTION_ENDS_RECORDS_LOCKED
	ERR_TERMINATED_BY_REMOTE_PARTNER ERR_DIRECTORY_IO_ERROR ERR_BAD_PACKET
	ERR_NO_CONSOLE_OPERATOR_RIGHTS ERR_UNKNOWN_FILE_SERVER ERR_BAD_FLAGS
	ERR_PROPERTY_NOT_GROUP ERR_INVALID_NAME_LENGTH ERR_FSCOPY_DIFFERENT_NETWORKS
	ERR_LOGIN_LOCKOUT ERR_Q_NOT_ACTIVE ERR_NO_MORE_FILE_HANDLES
	ERR_SPX_CONNECTION_TERMINATED ERR_NO_LOCAL_TARGET_IDENTIFIED
	ERR_TRANSACTION_RESTARTED ERR_DRIVE_IS_NOT_MAPPED ERR_OPEN_FILES
	ERR_INVALID_DATA_STREAM ERR_NOT_ITEM_PROPERTY ERR_DIRECTORY_IN_USE
	ERR_NODE_ADDRESS_VIOLATION ERR_BAD_ACCESS ERR_Q_HALTED
	ERROR_INVALID_PROTECTION_FLAGS ERR_NO_RECORD_FOUND
	ERR_INSUFFICIENT_SPACE ERR_IMPLICIT_TRANSACTION_ACTIVE
	ERR_CREATE_FILE_INVALID_NAME ERR_NO_ACCOUNT_BALANCE
	ERROR_INVALID_PAGE_COUNT ERR_PATH_ALREADY_EXISTS ERROR_INSUFFICIENT_MEMORY
	ERR_OBJECT_ALREADY_EXISTS ERR_TOO_MANY_HOLDS ERR_NCPEXT_SERVICE_PROTOCOL_VIOLATION
	ERR_NO_QUEUE ERR_NCPEXT_TRANSPORT_PROTOCOL_VIOLATION
	ERR_SPX_INVALID_CONNECTION ERR_ECB_CANNOT_BE_CANCELLED
	ERR_HARD_FAILURE ERR_NO_SUCH_EXTENSION ERR_NO_LIBRARY_CONTEXT
	ERR_TARGET_NOT_ACCEPTING_MESSAGES ERR_TTS_NOT_AVAILABLE
	ERR_HEAP_BLOCK_ALREADY_FREE ERR_BAD_SPOOL_PRINTER ERR_WILDCARD_NOT_ALLOWED
	ERR_Q_IN_SERVICE ERR_ECB_NOT_IN_USE ERR_NETWORK_DISK_IO
	ERR_INVALID_SEMAPHORE_NAME_LENGTH ERR_NO_OBJECT_READ_PRIVILEGE
	ERR_DIRECTORY_FULL ERR_BAD_PRTY_SCOPE ERR_VOLUME_DOES_NOT_EXIST
	ERR_NO_RENAME_PRIVILEGE ERR_NO_Q_RIGHTS ERR_NOT_GROUP_PROPERTY
	ERR_TARGET_NOT_LOGGED_IN ERR_BAD_EDS_SIGNATURE ERR_SOME_READ_ONLY
	ERR_INVALID_PARAMETERS ERR_SOCKET_TABLE_FULL ERR_SPX_MALFORMED_PACKET
	ERR_BAD_SERIAL_NUMBER ERR_R_O_CREATE_FILE ERR_CANT_MAP_LOCAL_DRIVE
	ERR_SPX_COMMAND_CANCELLED ERR_PACKET_SIGNATURES_REQUIRED
	ERR_EA_POSITION_OUT_OF_RANGE ERR_LOGIN_DENIED_NO_CREDIT
	ERR_NOT_ATTACHED_TO_SERVER ERR_IPX_NOT_INSTALLED ERR_SOME_NAMES_EXIST
	ERR_INVALID_VOLUME ERR_NO_KNOWN_ROUTE_TO_DESTINATION
	ERR_DUPLICATE_PASSWORD ERROR_INSUFFICIENT_DISK_SWAP_SPACE
	ERR_NO_DRIVE_AVAILABLE ERR_NO_DELETE_PRIVILEGE ERR_BAD_PASSWORD
	ERR_SOME_FILES_IN_USE ERR_NO_Q_JOB_RIGHTS ERR_EA_ALREADY_CLAIMED
	ERR_NO_TRUSTEE_CHANGE_PRIVILEGE ERR_ACCOUNTING_DISABLED
	ERR_NO_SUCH_OBJECT ERR_NO_MODIFY_PRIVILEGE ERR_PASSWORD_EXPIRED_NO_GRACE
	ERR_FAILURE ERR_INVALID_PACKET_LENGTH ERR_BAD_DIR_HANDLE
	ERR_SOCKET_NOT_OPEN ERR_NOT_AVAILABLE_PROTECTED ERR_MAXIMUM_LOGINS_EXCEEDED
	ERR_NO_OBJECT_DELETE_PRIVILEGE ERR_MISSING_EA_KEY ERR_REQUEST_CANCELLED
	EFAILURE ERR_TARGET_ALREADY_HAS_MESSAGE ERR_NO_OBJECT_CREATE_PRIVILEGE
	ERR_DIRECTORY_NOT_EMPTY ERR_INVALID_EA_HANDLE ERR_NO_SPOOL_FILE
	ERR_SPX_TERMINATED_POORLY ERR_INVALID_ENVIRON_VARIABLE
	ERR_PATH_NOT_LOCATABLE ERR_BINDERY_LOCKED ERR_TEMP_REMAP
	ERR_HOLE_FOUND ERR_TRANSACTION_NOT_YET_WRITTEN ERR_MESSAGE_QUEUE_FULL
	ERR_NO_DIR_HANDLES ERR_Q_MAX_SERVERS ESUCCESS ERR_SERVER_OUT_OF_MEMORY
	ERR_NO_SPOOL_SPACE ERR_NO_ACCOUNT_PRIVILEGES ERR_DIRECTORY_ACTIVE
	ERR_UNENCRYPTED_NOT_ALLOWED ERR_TTS_DISABLED ERR_CREDIT_LIMIT_EXCEEDED
	ERR_INVALID_MAP_TYPE ERR_WORKSTATION_OUT_OF_MEMORY
	ERROR_INSUFFICIENT_RESOURCES_TO_COMMIT_MEMORY ERR_SPX_SOCKET_CLOSED
	ERR_FILE_NOT_OPEN ERR_NO_FREE_CONNECTION_SLOTS ERR_SPX_CONNECTION_FAILED
	ERR_IO_LOCKED ERR_ALREADY_ATTACHED_TO_SERVER ERR_NO_PROPERTY_DELETE_PRIVILEGE
	ERR_DOS_FILE_NOT_FOUND ERR_TIMEOUT_FAILURE ERR_INTERNET_PACKET_REQT_CANCELED
	ERR_PASSWORD_EXPIRED ERR_MAPPED_TO_A_LOCAL_DRIVE ERR_TRUSTEE_NOT_FOUND
	ERR_TARGET_NOT_A_SUBDIRECTORY ERR_ALL_NAMES_EXIST ERR_BAD_PRTY_CLASS
	ERR_FIELD_ALREADY_LOCKED ERR_NO_SUCH_SEGMENT ERR_NOT_AVAILABLE_ON_3X
	ERR_DOS_ACCESS_DENIED ERR_CHECKSUMS_REQUIRED ERR_BAD_THREAD_ID
	ERROR_SHARED_MEMORY_ADDRESS ERR_NO_OPEN_PRIVILEGE);
	
%EXPORT_TAGS = (
    POSIX => [qw(
	
    )]
);

sub EFAILURE () { -1 }
sub ERR_TTS_NOT_AVAILABLE () { 0 }
sub ESUCCESS () { 0 }
sub ERR_RECORD_NOT_LOCKED () { 1 }
sub ERR_TTS_AVAILABLE () { 1 }
sub ERR_STRING_EXCEEDS_LENGTH () { 1 }
sub ERR_INSUFFICIENT_SPACE () { 1 }
sub ERR_NOT_AVAILABLE_PROTECTED () { 100 }
sub ERR_NOT_AVAILABLE_ON_3X () { 101 }
sub ERR_BAD_THREAD_ID () { 102 }
sub ERR_BAD_PRTY_CLASS () { 103 }
sub ERR_BAD_PRTY_SCOPE () { 104 }
sub ERR_NOT_A_POPUP_SCREEN () { 105 }
sub ERR_OPEN_SCREEN () { 106 }
sub ERR_BAD_SHFLAG () { 107 }
sub ERR_BAD_ACCESS () { 108 }
sub ERR_BAD_ORIGIN () { 109 }
sub ERR_BAD_ACTION_CODE () { 110 }
sub ERR_OUT_OF_TASKS () { 111 }
sub ERR_BAD_QUERY_TYPE () { 112 }
sub ERR_BAD_LIBRARY_HANDLE () { 113 }
sub ERR_STREAMS () { 114 }
sub ERR_BAD_FILE_SERVER_ID () { 115 }
sub ERR_BAD_CONNECTION_ID () { 115 }
sub ERR_BAD_FLAGS () { 116 }
sub ERR_NO_ITEMS_FOUND () { 121 }
sub ERR_NCPEXT_TRANSPORT_PROTOCOL_VIOLATION () { 126 }
sub ERR_FILE_IN_USE () { 128 }
sub ERR_LOCK_FAIL () { 128 }
sub ERR_MAPPED_TO_A_LOCAL_DRIVE () { 128 }
sub ERR_NO_MORE_FILE_HANDLES () { 129 }
sub ERR_NO_OPEN_PRIVILEGE () { 130 }
sub ERR_NETWORK_DISK_IO () { 131 }
sub ERR_NO_CREATE_PRIVILEGE () { 132 }
sub ERR_NO_CREATE_DELETE_PRIVILEGE () { 133 }
sub ERR_R_O_CREATE_FILE () { 134 }
sub ERR_CREATE_FILE_INVALID_NAME () { 135 }
sub ERR_INVALID_FILE_HANDLE () { 136 }
sub ERR_NO_SEARCH_PRIVILEGE () { 137 }
sub ERR_NO_DELETE_PRIVILEGE () { 138 }
sub ERR_NO_RENAME_PRIVILEGE () { 139 }
sub ERR_NO_SET_PRIVILEGE () { 140 }
sub ERR_NO_MODIFY_PRIVILEGE () { 140 }
sub ERR_SOME_FILES_IN_USE () { 141 }
sub ERR_ALL_FILES_IN_USE () { 142 }
sub ERR_SOME_READ_ONLY () { 143 }
sub ERR_ALL_READ_ONLY () { 144 }
sub ERR_SOME_NAMES_EXIST () { 145 }
sub ERR_ALL_NAMES_EXIST () { 146 }
sub ERR_NO_READ_PRIVILEGE () { 147 }
sub ERR_NO_WRITE_PRIVILEGE_OR_READONLY () { 148 }
sub ERR_FILE_DETACHED () { 149 }
sub ERR_NO_ALLOC_SPACE () { 150 }
sub ERR_SERVER_OUT_OF_MEMORY () { 150 }
sub ERR_TARGET_NOT_A_SUBDIRECTORY () { 150 }
sub ERR_NO_SPOOL_SPACE () { 151 }
sub ERR_VOLUME_DOES_NOT_EXIST () { 152 }
sub ERR_INVALID_VOLUME () { 152 }
sub ERR_DIRECTORY_FULL () { 153 }
sub ERR_RENAME_ACROSS_VOLUME () { 154 }
sub ERR_BAD_DIR_HANDLE () { 155 }
sub ERR_INVALID_PATH () { 156 }
sub ERR_NO_SUCH_EXTENSION () { 156 }
sub ERR_HOLE_FOUND () { 156 }
sub ERR_NO_DIR_HANDLES () { 157 }
sub ERR_BAD_FILE_NAME () { 158 }
sub ERR_DIRECTORY_IN_USE () { 159 }
sub ERR_DIRECTORY_ACTIVE () { 159 }
sub ERR_DIRECTORY_NOT_EMPTY () { 160 }
sub ERR_DIRECTORY_IO_ERROR () { 161 }
sub ERR_IO_LOCKED () { 162 }
sub ERR_TRANSACTION_RESTARTED () { 163 }
sub ERR_RENAME_DIR_INVALID () { 164 }
sub ERR_INVALID_OPENCREATE_MODE () { 165 }
sub ERR_ALREADY_IN_USE () { 166 }
sub ERR_SEARCH_DRIVE_VECTOR_FULL () { 176 }
sub ERR_DRIVE_DOES_NOT_EXIST () { 177 }
sub ERR_DRIVE_IS_NOT_MAPPED () { 177 }
sub ERR_CANT_MAP_LOCAL_DRIVE () { 178 }
sub ERR_INVALID_MAP_TYPE () { 179 }
sub ERR_INVALID_DRIVE_LETTER () { 180 }
sub ERR_NO_DRIVE_AVAILABLE () { 181 }
sub ERR_WORKSTATION_OUT_OF_MEMORY () { 182 }
sub ERR_NO_SUCH_SEARCH_DRIVE () { 183 }
sub ERR_INVALID_ENVIRON_VARIABLE () { 184 }
sub ERR_DOES_NOT_RUN_ON_IOENGINE () { 185 }
sub ERR_PACKET_SIGNATURES_REQURIED () { 188 }
sub ERR_PACKET_SIGNATURES_REQUIRED () { 188 }
sub ERR_INVALID_DATA_STREAM () { 190 }
sub ERR_INVALID_NAME_SPACE () { 191 }
sub ERR_NO_ACCOUNTING_PRIVILEGES () { 192 }
sub ERR_NO_ACCOUNT_PRIVILEGES () { 192 }
sub ERR_NO_ACCOUNT_BALANCE () { 193 }
sub ERR_LOGIN_DENIED_NO_CREDIT () { 194 }
sub ERR_CREDIT_LIMIT_EXCEEDED () { 194 }
sub ERR_TOO_MANY_HOLDS () { 195 }
sub ERR_ACCOUNTING_DISABLED () { 196 }
sub ERR_LOGIN_LOCKOUT () { 197 }
sub ERR_NO_CONSOLE_OPERATOR_RIGHTS () { 198 }
sub ERR_STRUCT_NOT_FOUND () { 200 }
sub ERR_MISSING_EA_KEY () { 200 }
sub ERR_EA_NOT_FOUND () { 201 }
sub ERR_INVALID_EA_HANDLE_TYPE () { 202 }
sub ERR_EA_NO_KEY_NO_DATA () { 203 }
sub ERR_EA_NUMBER_MISMATCH () { 204 }
sub ERR_EXTENT_NUMBER_OUT_OF_RANGE () { 205 }
sub ERR_EA_BAD_DIR_NUM () { 206 }
sub ERR_INVALID_EA_HANDLE () { 207 }
sub ERR_Q_IO_FAILURE () { 208 }
sub ERR_EA_POSITION_OUT_OF_RANGE () { 208 }
sub ERR_EA_ACCESS_DENIED () { 209 }
sub ERR_NO_QUEUE () { 209 }
sub ERR_NO_Q_SERVER () { 210 }
sub ERR_DATA_PAGE_ODD_SIZE () { 210 }
sub ERR_EA_VOLUME_NOT_MOUNTED () { 211 }
sub ERR_NO_Q_RIGHTS () { 211 }
sub ERR_BAD_PAGE_BOUNDARY () { 212 }
sub ERR_Q_FULL () { 212 }
sub ERR_NO_Q_JOB () { 213 }
sub ERR_INSPECT_FAILURE () { 213 }
sub ERR_NO_Q_JOB_RIGHTS () { 214 }
sub ERR_EA_ALREADY_CLAIMED () { 214 }
sub ERR_UNENCRYPTED_NOT_ALLOWED () { 214 }
sub ERR_ODD_BUFFER_SIZE () { 215 }
sub ERR_Q_IN_SERVICE () { 215 }
sub ERR_DUPLICATE_PASSWORD () { 215 }
sub ERR_PASSWORD_TOO_SHORT () { 216 }
sub ERR_NO_SCORECARDS () { 216 }
sub ERR_Q_NOT_ACTIVE () { 216 }
sub ERR_Q_STN_NOT_SERVER () { 217 }
sub ERR_LOGIN_DENIED_NO_CONNECTION () { 217 }
sub ERR_BAD_EDS_SIGNATURE () { 217 }
sub ERR_MAXIMUM_LOGINS_EXCEEDED () { 217 }
sub ERR_BAD_LOGIN_TIME () { 218 }
sub ERR_EA_SPACE_LIMIT () { 218 }
sub ERR_Q_HALTED () { 218 }
sub ERR_EA_KEY_CORRUPT () { 219 }
sub ERR_NODE_ADDRESS_VIOLATION () { 219 }
sub ERR_Q_MAX_SERVERS () { 219 }
sub ERR_EA_KEY_LIMIT () { 220 }
sub ERR_LOG_ACCOUNT_EXPIRED () { 220 }
sub ERR_TALLY_CORRUPT () { 221 }
sub ERR_BAD_PASSWORD () { 222 }
sub ERR_PASSWORD_EXPIRED_NO_GRACE () { 222 }
sub ERR_PASSWORD_EXPIRED () { 223 }
sub ERR_WRITE_TO_GROUP_PROPERTY () { 232 }
sub ERR_NOT_ITEM_PROPERTY () { 232 }
sub ERR_MEMBER_ALREADY_EXISTS () { 233 }
sub ERR_NO_SUCH_MEMBER () { 234 }
sub ERR_PROPERTY_NOT_GROUP () { 235 }
sub ERR_NOT_GROUP_PROPERTY () { 235 }
sub ERR_NO_SUCH_VALUE_SET () { 236 }
sub ERR_TERMINATED_BY_REMOTE_PARTNER () { 236 }
sub ERR_SPX_CONNECTION_TERMINATED () { 236 }
sub ERR_NO_SUCH_SEGMENT () { 236 }
sub ERR_PROPERTY_ALREADY_EXISTS () { 237 }
sub ERR_SPX_NO_ANSWER_FROM_TARGET () { 237 }
sub ERR_SPX_TERMINATED_POORLY () { 237 }
sub ERR_SPX_CONNECTION_FAILED () { 237 }
sub ERR_OBJECT_ALREADY_EXISTS () { 238 }
sub ERR_SPX_INVALID_CONNECTION () { 238 }
sub ERR_INVALID_NAME () { 239 }
sub ERR_SPX_CONNECTION_TABLE_FULL () { 239 }
sub ERR_ILLEGAL_WILDCARD () { 240 }
sub ERR_WILDCARD_NOT_ALLOWED () { 240 }
sub ERR_IPX_NOT_INSTALLED () { 240 }
sub ERR_SOCKET_NOT_OPEN () { 240 }
sub ERR_INVALID_BINDERY_SECURITY () { 241 }
sub ERR_BINDERY_SECURITY () { 241 }
sub ERR_SOCKET_ALREADY_OPEN () { 241 }
sub ERR_NO_OBJECT_READ_RIGHTS () { 242 }
sub ERR_NO_OBJECT_READ_PRIVILEGE () { 242 }
sub ERR_NO_OBJECT_RENAME_PRIVILEGE () { 243 }
sub ERR_NO_OBJECT_RENAME_RIGHTS () { 243 }
sub ERR_NO_OBJECT_DELETE_RIGHTS () { 244 }
sub ERR_NO_OBJECT_DELETE_PRIVILEGE () { 244 }
sub ERR_NO_OBJECT_CREATE_RIGHTS () { 245 }
sub ERR_NO_OBJECT_CREATE_PRIVILEGE () { 245 }
sub ERR_NO_PROPERTY_DELETE_RIGHTS () { 246 }
sub ERR_NO_PROPERTY_DELETE_PRIVILEGE () { 246 }
sub ERR_NO_PROPERTY_CREATE_PRIVILEGE () { 247 }
sub ERR_NO_PROPERTY_CREATE_RIGHTS () { 247 }
sub ERR_NO_PROPERTY_WRITE_PRIVILEGE () { 248 }
sub ERR_NO_PROPERTY_WRITE_RIGHTS () { 248 }
sub ERR_NOT_ATTACHED_TO_SERVER () { 248 }
sub ERR_ALREADY_ATTACHED_TO_SERVER () { 248 }
sub ERR_NO_PROPERTY_READ_RIGHTS () { 249 }
sub ERR_NO_PROPERTY_READ_PRIVILEGE () { 249 }
sub ERR_ECB_CANNOT_BE_CANCELLED () { 249 }
sub ERR_NO_FREE_CONNECTION_SLOTS () { 249 }
sub ERR_NO_MORE_SERVER_SLOTS () { 250 }
sub ERR_NO_LOCAL_TARGET_IDENTIFIED () { 250 }
sub ERR_NO_KNOWN_ROUTE_TO_DESTINATION () { 250 }
sub ERR_TEMP_REMAP () { 250 }
sub ERR_NO_SUCH_PROPERTY () { 251 }
sub ERR_UNKNOWN_REQUEST () { 251 }
sub ERR_INVALID_PARAMETERS () { 251 }
sub ERR_EVENT_CANCELLED () { 252 }
sub ERR_NO_SUCH_BINDERY_OBJECT () { 252 }
sub ERR_UNKNOWN_FILE_SERVER () { 252 }
sub ERR_NCPEXT_SERVICE_PROTOCOL_VIOLATION () { 252 }
sub ERR_SPX_COMMAND_CANCELLED () { 252 }
sub ERR_NO_SUCH_OBJECT () { 252 }
sub ERR_REQUEST_CANCELLED () { 252 }
sub ERR_TARGET_ALREADY_HAS_MESSAGE () { 252 }
sub ERR_MESSAGE_QUEUE_FULL () { 252 }
sub ERR_SPX_SOCKET_CLOSED () { 252 }
sub ERR_INTERNET_PACKET_REQT_CANCELED () { 252 }
sub ERR_BAD_STATION_NUMBER () { 253 }
sub ERR_PACKET_OVERFLOW () { 253 }
sub ERR_FSCOPY_DIFFERENT_NETWORKS () { 253 }
sub ERR_BAD_SERIAL_NUMBER () { 253 }
sub ERR_INVALID_PACKET_LENGTH () { 253 }
sub ERR_TTS_DISABLED () { 253 }
sub ERR_FIELD_ALREADY_LOCKED () { 253 }
sub ERR_DOS_NO_SEARCH_RIGHTS () { 254 }
sub ERR_SPOOL_DIRECTORY_ERROR () { 254 }
sub ERR_NCPEXT_NO_HANDLER () { 254 }
sub ERR_IO_FAILURE () { 254 }
sub ERR_PACKET_NOT_DELIVERABLE () { 254 }
sub ERR_SERVER_BINDERY_LOCKED () { 254 }
sub ERR_SUPERVISOR_HAS_DISABLED_LOGIN () { 254 }
sub ERR_INCORRECT_ACCESS_PRIVILEGES () { 254 }
sub ERR_TRANSACTION_ENDS_RECORDS_LOCKED () { 254 }
sub ERR_BAD_PACKET () { 254 }
sub ERR_INVALID_NAME_LENGTH () { 254 }
sub ERR_IMPLICIT_TRANSACTION_ACTIVE () { 254 }
sub ERR_INVALID_SEMAPHORE_NAME_LENGTH () { 254 }
sub ERR_SOCKET_TABLE_FULL () { 254 }
sub ERR_SPX_MALFORMED_PACKET () { 254 }
sub ERR_BINDERY_LOCKED () { 254 }
sub ERR_TIMEOUT_FAILURE () { 254 }
sub ERR_TRUSTEE_NOT_FOUND () { 254 }
sub ERR_DOS_ACCESS_DENIED () { 254 }
sub ERR_NO_FILES_FOUND () { 255 }
sub ERR_QUEUE_FULL () { 255 }
sub ERR_BAD_RECORD_OFFSET () { 255 }
sub ERR_SPX_SOCKET_NOT_OPENED () { 255 }
sub ERR_BINDERY_FAILURE () { 255 }
sub ERR_FILE_EXTENSION_ERROR () { 255 }
sub ERR_SOCKET_CLOSED () { 255 }
sub ERR_NO_SUCH_OBJECT_OR_BAD_PASSWORD () { 255 }
sub ERR_REQUEST_NOT_OUTSTANDING () { 255 }
sub ERR_INVALID_INITIAL_SEMAPHORE_VALUE () { 255 }
sub ERR_BAD_PARAMETER () { 255 }
sub ERR_NO_EXPLICIT_TRANSACTION_ACTIVE () { 255 }
sub ERR_EXPLICIT_TRANSACTION_ACTIVE () { 255 }
sub ERR_RECORD_ALREADY_LOCKED () { 255 }
sub ERR_NO_RESPONSE_FROM_SERVER () { 255 }
sub ERR_INVALID_SEMAPHORE_HANDLE () { 255 }
sub ERR_SPX_IS_INSTALLED () { 255 }
sub ERR_OPEN_FILES () { 255 }
sub ERR_NO_RECORD_FOUND () { 255 }
sub ERR_PATH_ALREADY_EXISTS () { 255 }
sub ERR_HARD_FAILURE () { 255 }
sub ERR_TARGET_NOT_ACCEPTING_MESSAGES () { 255 }
sub ERR_BAD_SPOOL_PRINTER () { 255 }
sub ERR_ECB_NOT_IN_USE () { 255 }
sub ERR_TARGET_NOT_LOGGED_IN () { 255 }
sub ERR_NO_TRUSTEE_CHANGE_PRIVILEGE () { 255 }
sub ERR_FAILURE () { 255 }
sub ERR_NO_SPOOL_FILE () { 255 }
sub ERR_PATH_NOT_LOCATABLE () { 255 }
sub ERR_TRANSACTION_NOT_YET_WRITTEN () { 255 }
sub ERR_FILE_NOT_OPEN () { 255 }
sub ERR_DOS_FILE_NOT_FOUND () { 255 }
sub ERR_CHECKSUMS_REQUIRED () { 255 }
sub ERR_SERVICE_NOT_LOADED () { 257 }
sub ERR_NO_LIBRARY_CONTEXT () { 1024 }
sub ERROR_INSUFFICIENT_CONTIGUOUS_MEMORY () { 4096 }
sub ERROR_INSUFFICIENT_DISK_SWAP_SPACE () { 4097 }
sub ERROR_INSUFFICIENT_MEMORY () { 4098 }
sub ERROR_INSUFFICIENT_RESOURCES_TO_COMMIT_MEMORY () { 4099 }
sub ERROR_INVALID_ATTRIBUTE_FLAGS () { 4100 }
sub ERROR_INVALID_ADDRESS () { 4101 }
sub ERROR_INVALID_LOCK_FLAGS () { 4102 }
sub ERROR_INVALID_PAGE_COUNT () { 4103 }
sub ERROR_INVALID_PROTECTION_FLAGS () { 4104 }
sub ERROR_NON_SHARED_MEMORY_ADDRESS () { 4105 }
sub ERROR_SHARED_MEMORY_ADDRESS () { 4106 }
sub ERR_INVALID_ADDRESS () { -3 }
sub ERR_HEAP_BLOCK_ALREADY_FREE () { -2 }
sub ERR_HEAP_BAD_PTR () { -1 }

sub TIEHASH { bless [] }

sub FETCH {
    my ($self, $errname) = @_;
    my $proto = prototype("Errno::$errname");
    my $errno = "";
    if (defined($proto) && $proto eq "") {
	no strict 'refs';
	$errno = &$errname;
        $errno = 0 unless $! == $errno;
    }
    return $errno;
}

sub STORE {
    require Carp;
    Carp::confess("ERRNO hash is read only!");
}

*CLEAR = \&STORE;
*DELETE = \&STORE;

sub NEXTKEY {
    my($k,$v);
    while(($k,$v) = each %Errno::) {
	my $proto = prototype("Errno::$k");
	last if (defined($proto) && $proto eq "");
    }
    $k
}

sub FIRSTKEY {
    my $s = scalar keys %Errno::;	# initialize iterator
    goto &NEXTKEY;
}

sub EXISTS {
    my ($self, $errname) = @_;
    my $proto = prototype($errname);
    defined($proto) && $proto eq "";
}

tie %!, __PACKAGE__;

1;
__END__

=head1 NAME

Errno - System errno constants

=head1 SYNOPSIS

    use Errno qw(EINTR EIO :POSIX);

=head1 DESCRIPTION

C<Errno> defines and conditionally exports all the error constants
defined in your system C<errno.h> include file. It has a single export
tag, C<:POSIX>, which will export all POSIX defined error numbers.

C<Errno> also makes C<%!> magic such that each element of C<%!> has a
non-zero value only if C<$!> is set to that value. For example:

    use Errno;

    unless (open(FH, "/fangorn/spouse")) {
        if ($!{ENOENT}) {
            warn "Get a wife!\n";
        } else {
            warn "This path is barred: $!";
        } 
    } 

If a specified constant C<EFOO> does not exist on the system, C<$!{EFOO}>
returns C<"">.  You may use C<exists $!{EFOO}> to check whether the
constant is available on the system.

=head1 CAVEATS

Importing a particular constant may not be very portable, because the
import will fail on platforms that do not have that constant.  A more
portable way to set C<$!> to a valid value is to use:

    if (exists &Errno::EFOO) {
        $! = &Errno::EFOO;
    }

=head1 AUTHOR

Graham Barr <gbarr@pobox.com>

=head1 COPYRIGHT

Copyright (c) 1997-8 Graham Barr. All rights reserved.
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.

=cut

