[Errors]
// Note: Be sure to update the errmsg_xstrings and errmsg_indices arrays in
//  errors.lib and add an error code in errno.h whenever you add an error code
//  and message to this file. This ensures correct operation of the
//  error_message function and makes the error code available to source code.

// No error; generally the return code should be zero
  0=Program terminated

// Unix/Posix-compatible codes...
  1=Operation not permitted
  2=No such file or directory */
  5=I/O error
  6=No such device or address
  7=Arg list too long, or something else is too big like a string parameter
  9=Bad file number
 11=Operation would block, try again
 12=Out of memory
 13=Permission denied
 14=Bad address
 15=Block device required
 16=Device or resource busy
 17=File exists
 19=No such device
 20=Not a directory
 21=Is a directory
 22=Invalid argument
 23=File table overflow
 24=Too many open files
 27=File too large
 28=No space left on device
 30=Read-only file system
 36=File name too long
 38=Function not implemented
 39=Directory not empty
 41=End of file or directory
 61=No data available
 62=Timer expired
 64=Machine is not on the network
 67=Link has been severed
 70=Communication error on send
 71=Protocol error
 72=Multihop attempted
 74=Not a data message
 75=Value too large for defined data type
 76=Name not unique on network
 77=File descriptor in bad state
 84=Illegal byte sequence
 85=Interrupted system call should be restarted
 87=Too many users
 88=Socket operation on non-socket
 89=Destination address required
 90=Message too long
 91=Protocol wrong type for socket
 92=Protocol not available
 93=Protocol not supported
 94=Socket type not supported
 95=Operation not supported on transport endpoint
 96=Protocol family not supported
 97=Address family not supported by protocol
 98=Address already in use
 99=Cannot assign requested address
100=Network is down
101=Network is unreachable
102=Network dropped connection because of reset
103=Software caused connection abort
104=Connection reset by peer
105=No buffer space available
106=Transport endpoint is already connected
107=Transport endpoint is not connected
108=Cannot send after transport endpoint shutdown
109=Too many references: cannot splice
110=Connection timed out
111=Connection refused
112=Host is down
113=No route to host
114=Operation already in progress
115=Operation now in progress
122=Quota exceeded
123=No medium found
124=Wrong medium type
// Values up to and including 200 reserved

// Codes specific to Dynamic C Filesystem Mk II...
201=Bad sequence number in file
202=Unexpected end-of-chain in file
203=Not a data block (B-block)
204=Bad file number in file

// Codes specific to Dynamic C driver level libraries
240=Shared port is not available

// Codes specific to Dynamic C function blocks (costatements, cofunctions)
243=CoData structure checksum error

// Codes specific to FAT filesystem...
300=FAT mutex error
301=Root directory full
302=Not partitioned
303=Partition bad or unrecognized
304=Partition or volume not formatted
305=Bad type
306=Bad file/dir path string
307=Block marked bad on the device
308=Error detected in read data
309=Driver level is busy, new write not started
310=Cannot flush enough entries from cache to perform next read.  There are pending dirty cache entries from a previous boot.  Register all devices and this may go away.  If not, there are dirty entries for a removable medium, which is not mounted.  In this case, call fatwtc_flushdev with the unregister flag.
311=Parameter mismatch when registering a device. The device had outstanding cache entries from previous boot, but the caller is attempting to change the cusize or removable status.
312=Device not registered when _fatwtc_devwrite called.
313=Not writing full physical sector in _fatwtc_devwrite.
314=Rollback journal overflow.  Transaction requires too much data to be stored.  Either increase FAT_MAXRJ in the BIOS, or review calling code to make sure transactions are terminated at the right time and do not journal unnecessary data.
315=fatrj_transtart() called with transaction already open.
316=Internal error: a tied cache group is in an inconsistent state.
317=fatrj_setchk() called without transaction being open.
318=Transaction cannot contain both checkpoint and marker data.
319=File is in an invalid state.  Probably because the FATfile structure was not zero when opened for the first time.
320=Partition is in an invalid state.  This occurs if you are trying to delete a file when another file is being allocated, or vice versa
321=FAT filesystem appears to be corrupted


// Following network-specific codes moved from old NETERRNO.LIB.  The original
// code has 400 added so that the codes are globally unique.  Note that when
// stored in the socket error message queue, 400 is subtracted so that codes
// 1..37 correspond to these error codes.  If unix-style error codes are stored,
// then after subtraction of 400 and modulo 256, the resulting codes are in the
// range 113 to 236, which are still distinct.  Error codes in the 2xx or 3xx
// range are never stored in network sockets.
400=No network error
401=Local host not reachable (ARP could not resolve)
402=Host not reachable (Router not resolved)
403=Host refused connection
404=Timout on open or close
405=Connection timed out (keepalive etc.)
406=Active abort sent from this peer
407=Timed out due to inactivity
408=DHCP lease expired
409=ICMP reported trouble
410=Protocol error e.g. bad ack number for TCP
411=Remote peer reset connection
412=ICMP error
413=ICMP error
414=ICMP error
415=ICMP error
416=ICMP error
417=ICMP error
418=ICMP error
419=ICMP error
420=ICMP error
421=ICMP error
422=ICMP error
423=ICMP error
424=ICMP error
425=ICMP error
426=ICMP error
427=ICMP error
428=ICMP error
429=ICMP error
430=ICMP error
431=ICMP error
432=ICMP error
433=ICMP error
434=IP address changed
435=No memory for buffer
436=IP address conflict detected
437=Interface down or deactivated
438=Timeout sending email
439=Invalid response from SMTP server
440=HTTP client: too many redirects
450=Could not open network socket
451=Cannot resolve hostname
452=data handler aborted
453=unable to attempt SMTP authentication
454=SMTP authentication failed

// These codes returned by aton2()...  (No neterror_strings entry!)
501=aton2() encountered non-digit in IP address
502=aton2() encountered decimal field outside 0-255
503=aton2() encountered delimiter not '.' or ','.
504=aton2() did not find ']' for '['.
505=aton2() port number out of range.

// These codes are specific to RABBITSYS
601=watch log full
602=state machine has invalid state
603=user program ended
604=no handles available. Close something
605=Stack limit violation occurred in user mode
606=Processor attempted to execute system code while running in user mode
607=Write protection violation occurred in user mode
608=User syscall is undefined
609=No shadow register is associated with the I/O register being accessed
610=No more tcp or udp sockets are available

// Traditional run-time Dynamic C errors
701=Secondary watchdog timeout
702=Assertion failure
703=Input compression buffer pool overflow
704=Output compression buffer pool overflow
705=Erroneous pointer assignment
706=Array index out of bounds
707=Stack corrupted
708=Stack overflow
709=Auxiliary stack overflow
710=Domain error
711=Range error
712=Floating point overflow
713=Long divide by zero
714=Long zero modulus error
715=Bad parameter passed to I/O function
716=Integer divide by zero
717=Unexpected interrupt
718=CoData structure trashed
719=Virtual watchdog timeout
720=Xmem allocation failed (out of memory).
721=Stack allocation failed (out of free stacks or size requested too large).
722=Stack deallocation failed (Stack address invalid).
723=Xmem allocation initialization failed
724=No virtual watchdog timers available
725=No valid MAC address for board
726=Invalid cofunction instance
727=Socket must be class 'static', not 'auto'
728=Attempt to switch to an invalid stack address

729=An RST 10 occurred, but the RST 10 vector is uninitialized
730=A syscall occurred, but the syscall vector is uninitialized
731=An RST 38 occurred, but the RST 38 vector is uninitialized
732=A slave port interrupt occurred, but the slave port vector is uninitialized
733=A write protect violation occurred, but the write protect violation vector is uninitialized
734=A timer A interrupt occurred, but the timer A interrupt vector is uninitialized
735=A timer B interrupt occurred, but the timer B interrupt vector is uninitialized
736=An interrupt for serial port B occurred, but the serial port B vector is uninitialized
737=An interrupt for serial port C occurred, but the serial port C vector is uninitialized
738=An interrupt for serial port D occurred, but the serial port D vector is uninitialized
739=An external interrupt 0 occurred, but the external interrupt 0 vector is uninitialized
740=An external interrupt 1 occurred, but the external interrupt 1 vector is uninitialized
741=A pulse width modulation interrupt occurred, but the pulse width modulation vector is uninitialized
742=A system mode violation interrupt occurred, but the system mode violation vector is uninitialized
743=A quadrature decoder interrupt occurred, but the quadrature decoder vector is uninitialized
744=An input capture interrupt occurred, but the input capture vector is uninitialized
745=A stack violation interrupt occurred, but the stack violation vector is uninitialized
746=An interrupt for serial port E occurred, but the serial port E vector is uninitialized
747=An interrupt for serial port F occurred, but the serial port F vector is uninitialized
748=The preloaded parallel flash driver made an unknown resource request
749=Initialization function not called
750=Library written for a different clock speed

