{ DECK: DFC$ESM_DRIVER_ERROR_CODES
{ Error condition codes reported by File Server ESM PP driver.
{ Changes in this deck should be reflected in changes to deck
{ DUM$DISPLAY_ESM_ERROR or possibly CMH$LSP_FAILURE_DATA_DOC.
{
{  The first set of errors indicate hardware errors and are logged to the
{  engineering log.

  CONST
    dfc$function_timeout = 1,
    dfc$iou_channel_parity_error = 2,
    dfc$esm_channel_parity_error = 3,
    dfc$esm_double_bit_parity_error = 4,
    dfc$esm_address_parity_error = 5,
    dfc$esm_flag_operation_abort = 6,
    dfc$adp_uncorrected_cm_error = 7,
    dfc$adp_cm_reject = 8,
    dfc$adp_invalid_cm_response = 9,
    dfc$adp_cm_response_parity_err = 10,
    dfc$adp_cmi_read_parity_err = 11,
    dfc$adp_clock_fault = 12,
    dfc$adp_input_buffer_overflow = 13,
    dfc$adp_input_data_parity_error = 14,
    dfc$adp_12_16_conversion_error = 15,
    dfc$adp_jy_data_parity_error = 16,
    dfc$adp_kx_pp_data_parity_error = 17,
    dfc$adp_kz_board_detected_error = 18,
    dfc$adp_jy_board_detected_error = 19,
    dfc$adp_kx_board_detected_error = 20,
    dfc$esm_address_overflow = 21,
    dfc$channel_inactive_error = 22,
    dfc$dma_xfer_halted_early = 23,
    dfc$lsp_deadman_timeout = 24,
    dfc$unused_reserved_25 = 25,
    dfc$unused_reserved_26 = 26,
    dfc$unused_reserved_27 = 27,
    dfc$unused_reserved_28 = 28,
    dfc$unused_reserved_29 = 29,

{ The following error codes usually indicate software errors caused by
{ improper interface procedures/code between File Server and File Server's
{ PP driver (ESMD).
{ Any error coming from the file server will be displayed in the critical
{ window in HEX and prefaced with  the string  ' Server error response '
{ or ' Server interface error'.
{ For example ' Server error response 0000000000000025'
{ would be displayed and 25 hex is 37 decimal which is
{ dfc$no_held_info_in_queue_entry is the below list.
{ If setsa file_server_debug_enabled 1 is set the
{ system will crash when some of these errors are detected.

    dfc$invalid_command_code = 30,
    {  The PP request command code is not supported by ESMD PP driver.
    {   Only PP request command codes 0 = ACKNOWLEDGE, 1 = STOP UNIT,
    {   4 = IDLE, and 5 = RESUME are supported.

    dfc$invalid_length_in_command = 31,
    {  Something is wrong with page data indirect address list length field:
    {    a. indirect list length is not multiple of 8 bytes.
    {    b. indirect list length is zero.
    {    c. Indirect list length greater than allowed by ESMD PP driver.

    dfc$invalid_address_in_command = 32,
    { Something is wrong with buffer address or data indirect list address :
    {    a. RMA is zero.
    {    b. RMA not on CM word boundry.

    dfc$invalid_length_in_ind_list = 33,
    { Something is wrong with data indirect RMA list entries :
    {    a. RMA length is not multiple of 8 bytes.
    {    b. RMA length is zero.
    {    c. RMA length greater than allowed by ESMD PP driver.

    dfc$invalid_address_in_ind_list = 34,
    { Data indirect RMA list entry has entry with RMA not on CM word boundry.

    dfc$reserved_field_not_zero = 35,
    { Data indirect RMA list entry has non zero reserved field of RMA.

    dfc$pit_lockword_error = 36,
    { THIS ERROR CODE NEVER USED OR REPORTED BY DRIVER

    dfc$no_held_info_in_queue_entry = 37,
    { The send_ready_for_data command flag was set for driver processing when
    {  no page data was available or when page data has already been read.
    {  specifically - driver queue entry HELD_INFO field is zero.
    {  Possible Cause:
    {    1. The indirect list length field in the driver queue entry was
    {       non zero when the message and data was detected in STORNET so that
    {       the page data was already moved to the specified CM locations.
    {    2. The buffer data eroniously indicates page data when in fact there
    {       is non to be delivered by the PP driver.

    dfc$invalid_queue_index = 38,
    { The queue index specified in request buffer or read from STORNET
    {  is zero or greater than number of queues.

    dfc$invalid_queue_entry_index = 39,
    { The queue entry index specified in request buffer or read from STORNET
    {  is zero or greater than number of queue entries.

    dfc$insufficient_length_spec = 40,
    { The size of the command buffer or the total size of page data buffer
    {  is less than the length of the command or page data to be read from
    {  STORNET.

    dfc$driver_action_flag_not_set = 41,
    {  Request buffer entry points to driver queue entry with driver_action
    {  flag clear.

    dfc$destination_machine_down = 42,
    {  The STORNET 4 bit flag register allocated to the destination
    {  mainframe to indicate its status does not contain the mainframe ID
    {  number.
    {  Possible Cause:
    {    1. The ESMD PP driver on the destination mainframe has either
    {       been IDLED or File Server has not been activated.

    dfc$queue_idle = 43,
    {  Request buffer entry points to driver queue with driver queue header
    {  "queue idle" flag set true.
    {  Possible Cause:
    {    1. File Server deactivation or termination proceding without first
    {       idling or unloading the PP driver.

    dfc$inactive_queue_entry = 44,
    {  Request buffer entry points to driver queue entry with active queue
    {  entry flag set false.
    {  Possible Cause:
    {    1. Once entry is placed in request buffer only the PP driver can
    {       remove it, this code does not necessarily indicate an error.
    {       The queue entry was released while PP driver is still
    {       processing requests.

    dfc$invalid_driver_queue_rma = 45,
    { The queue index specified in request buffer or read from STORNET
    {  indexes a zero entry in the PP driver's queue directory table.
    {  This table is constructed by the PP driver at PP activation time by
    {  reading the CM queue interface directory and converting the CM RMAs
    {  to PP RMAs.
    {  Possible Cause:
    {    1. Creating a new queue and allowing File Server processing without
    {       re-activating the PP driver.

    dfc$unused_reserved_46 = 46,
    dfc$unused_reserved_47 = 47,
    dfc$unused_reserved_48 = 48,
    dfc$unused_reserved_49 = 49;


