
/* This file was automatically generated by pclu.*/

#include "pclu_err.h"
#include "pclu_sys.h"


extern struct dbg_info* dbg_info__erstr;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG _erstr_TRACE
int _erstr_TRACE;
extern struct OPS *int_ops;
static Vlist1 owns__erstr = {0, 1,{ {0, 2, "_init", &int_ops}
}
};
extern errcode sequenceOPfetch();
extern errcode stringOPconcat();
extern errcode intOPunparse();
extern OWN_req string_ownreqs;
extern struct OPS *string_ops;
extern struct REQS *sequence_of_t_reqs;
extern OWN_req sequence_ownreqs;
extern struct OPS *sequence_ops;
struct OPS *sequence_of_string_table;
struct OPS *sequence_of_string_ops;
struct OPS *sequence_of_string_ops;
OWNPTR sequence_of_string_owns;
CLUREF STR_not_040owner;
CLUREF STR_no_040such_040file_040or_040directory;
CLUREF STR_no_040such_040process;
CLUREF STR_interrupted_040system_040call;
CLUREF STR_i_057o_040error;
CLUREF STR_no_040such_040device_040or_040address;
CLUREF STR_arg_040list_040too_040long;
CLUREF STR_exec_040format_040error;
CLUREF STR_bad_040file_040number;
CLUREF STR_no_040children;
CLUREF STR_no_040more_040processes;
CLUREF STR_not_040enough_040core;
CLUREF STR_permission_040denied;
CLUREF STR_bad_040address;
CLUREF STR_block_040device_040required;
CLUREF STR_mount_040device_040busy;
CLUREF STR_file_040exists;
CLUREF STR_cross_055device_040link;
CLUREF STR_no_040such_040device;
CLUREF STR_not_040a_040directory;
CLUREF STR_is_040a_040directory;
CLUREF STR_invalid_040argument;
CLUREF STR_file_040table_040overflow;
CLUREF STR_too_040many_040open_040files;
CLUREF STR_not_040a_040typewriter;
CLUREF STR_text_040file_040busy;
CLUREF STR_file_040too_040large;
CLUREF STR_no_040space_040left_040on_040device;
CLUREF STR_illegal_040seek;
CLUREF STR_read_055only_040file_040system;
CLUREF STR_too_040many_040links;
CLUREF STR_broken_040pipe;
CLUREF STR_math_040argument;
CLUREF STR_result_040too_040large;
CLUREF STR_operation_040would_040block;
CLUREF STR_operation_040now_040in_040progress;
CLUREF STR_operation_040already_040in_040progress;
CLUREF STR_socket_040operation_040on_040non_055socket;
CLUREF STR_destination_040address_040required;
CLUREF STR_message_040too_040long;
CLUREF STR_protocol_040wrong_040type_040for_040socket;
CLUREF STR_bad_040protocol_040option;
CLUREF STR_protocol_040not_040supported;
CLUREF STR_socket_040type_040not_040supported;
CLUREF STR_operation_040not_040supported_040on_040socket;
CLUREF STR_protocol_040family_040not_040supported;
CLUREF STR_address_040family_040not_040supported_040by_040protocol_040family;
CLUREF STR_address_040already_040in_040use;
CLUREF STR_cannot_040assign_040requested_040address;
CLUREF STR_network_040is_040down;
CLUREF STR_network_040is_040unreachable;
CLUREF STR_network_040dropped_040connection_040on_040reset;
CLUREF STR_software_040caused_040connection_040abort;
CLUREF STR_connection_040reset_040by_040peer;
CLUREF STR_no_040buffer_040space_040available;
CLUREF STR_socket_040is_040already_040connected;
CLUREF STR_socket_040is_040not_040connected;
CLUREF STR_cannot_040send_040after_040socket_040shutdown;
CLUREF STR_error_04059;
CLUREF STR_connection_040timed_040out;
CLUREF STR_connection_040refused;
CLUREF STR_too_040many_040levels_040of_040symbols_040links;
CLUREF STR_file_040name_040too_040long;
CLUREF STR_directory_040not_040empty;
CLUREF STR_error_040;
static int _erstr_own_init = 0;

/**** BEGIN PROCEDURE _erstr ****/

errcode _erstr(num, ret_1)
CLUREF num;
CLUREF *ret_1;
    {
    struct {
        struct dbg_info *DBG_INFO;
        int DBG_LINE;
        errcode err;
        errcode ecode2;
        CLUREF num;
        } locals;
    locals.num.num = UNINIT;
    locals.DBG_INFO = dbg_info__erstr;
    locals.num = num;
        if (_erstr_own_init == 0) {
        add_parm_info_type(0, string_ops, sequence_of_t_reqs);
        find_type_instance(sequence_ops, 1, &sequence_ownreqs, &(sequence_of_string_ops));
        stringOPcons("not owner", CLU_1, CLU_9, &STR_not_040owner);
        stringOPcons("no such file or directory", CLU_1, CLU_25, &STR_no_040such_040file_040or_040directory);
        stringOPcons("no such process", CLU_1, CLU_15, &STR_no_040such_040process);
        stringOPcons("interrupted system call", CLU_1, CLU_23, &STR_interrupted_040system_040call);
        stringOPcons("i/o error", CLU_1, CLU_9, &STR_i_057o_040error);
        stringOPcons("no such device or address", CLU_1, CLU_25, &STR_no_040such_040device_040or_040address);
        stringOPcons("arg list too long", CLU_1, CLU_17, &STR_arg_040list_040too_040long);
        stringOPcons("exec format error", CLU_1, CLU_17, &STR_exec_040format_040error);
        stringOPcons("bad file number", CLU_1, CLU_15, &STR_bad_040file_040number);
        stringOPcons("no children", CLU_1, CLU_11, &STR_no_040children);
        stringOPcons("no more processes", CLU_1, CLU_17, &STR_no_040more_040processes);
        stringOPcons("not enough core", CLU_1, CLU_15, &STR_not_040enough_040core);
        stringOPcons("permission denied", CLU_1, CLU_17, &STR_permission_040denied);
        stringOPcons("bad address", CLU_1, CLU_11, &STR_bad_040address);
        stringOPcons("block device required", CLU_1, CLU_21, &STR_block_040device_040required);
        stringOPcons("mount device busy", CLU_1, CLU_17, &STR_mount_040device_040busy);
        stringOPcons("file exists", CLU_1, CLU_11, &STR_file_040exists);
        stringOPcons("cross-device link", CLU_1, CLU_17, &STR_cross_055device_040link);
        stringOPcons("no such device", CLU_1, CLU_14, &STR_no_040such_040device);
        stringOPcons("not a directory", CLU_1, CLU_15, &STR_not_040a_040directory);
        stringOPcons("is a directory", CLU_1, CLU_14, &STR_is_040a_040directory);
        stringOPcons("invalid argument", CLU_1, CLU_16, &STR_invalid_040argument);
        stringOPcons("file table overflow", CLU_1, CLU_19, &STR_file_040table_040overflow);
        stringOPcons("too many open files", CLU_1, CLU_19, &STR_too_040many_040open_040files);
        stringOPcons("not a typewriter", CLU_1, CLU_16, &STR_not_040a_040typewriter);
        stringOPcons("text file busy", CLU_1, CLU_14, &STR_text_040file_040busy);
        stringOPcons("file too large", CLU_1, CLU_14, &STR_file_040too_040large);
        stringOPcons("no space left on device", CLU_1, CLU_23, &STR_no_040space_040left_040on_040device);
        stringOPcons("illegal seek", CLU_1, CLU_12, &STR_illegal_040seek);
        stringOPcons("read-only file system", CLU_1, CLU_21, &STR_read_055only_040file_040system);
        stringOPcons("too many links", CLU_1, CLU_14, &STR_too_040many_040links);
        stringOPcons("broken pipe", CLU_1, CLU_11, &STR_broken_040pipe);
        stringOPcons("math argument", CLU_1, CLU_13, &STR_math_040argument);
        stringOPcons("result too large", CLU_1, CLU_16, &STR_result_040too_040large);
        stringOPcons("operation would block", CLU_1, CLU_21, &STR_operation_040would_040block);
        stringOPcons("operation now in progress", CLU_1, CLU_25, &STR_operation_040now_040in_040progress);
        stringOPcons("operation already in progress", CLU_1, CLU_29, &STR_operation_040already_040in_040progress);
        stringOPcons("socket operation on non-socket", CLU_1, CLU_30, &STR_socket_040operation_040on_040non_055socket);
        stringOPcons("destination address required", CLU_1, CLU_28, &STR_destination_040address_040required);
        stringOPcons("message too long", CLU_1, CLU_16, &STR_message_040too_040long);
        stringOPcons("protocol wrong type for socket", CLU_1, CLU_30, &STR_protocol_040wrong_040type_040for_040socket);
        stringOPcons("bad protocol option", CLU_1, CLU_19, &STR_bad_040protocol_040option);
        stringOPcons("protocol not supported", CLU_1, CLU_22, &STR_protocol_040not_040supported);
        stringOPcons("socket type not supported", CLU_1, CLU_25, &STR_socket_040type_040not_040supported);
        stringOPcons("operation not supported on socket", CLU_1, CLU_33, &STR_operation_040not_040supported_040on_040socket);
        stringOPcons("protocol family not supported", CLU_1, CLU_29, &STR_protocol_040family_040not_040supported);
        stringOPcons("address family not supported by protocol family", CLU_1, CLU_47, &STR_address_040family_040not_040supported_040by_040protocol_040family);
        stringOPcons("address already in use", CLU_1, CLU_22, &STR_address_040already_040in_040use);
        stringOPcons("cannot assign requested address", CLU_1, CLU_31, &STR_cannot_040assign_040requested_040address);
        stringOPcons("network is down", CLU_1, CLU_15, &STR_network_040is_040down);
        stringOPcons("network is unreachable", CLU_1, CLU_22, &STR_network_040is_040unreachable);
        stringOPcons("network dropped connection on reset", CLU_1, CLU_35, &STR_network_040dropped_040connection_040on_040reset);
        stringOPcons("software caused connection abort", CLU_1, CLU_32, &STR_software_040caused_040connection_040abort);
        stringOPcons("connection reset by peer", CLU_1, CLU_24, &STR_connection_040reset_040by_040peer);
        stringOPcons("no buffer space available", CLU_1, CLU_25, &STR_no_040buffer_040space_040available);
        stringOPcons("socket is already connected", CLU_1, CLU_27, &STR_socket_040is_040already_040connected);
        stringOPcons("socket is not connected", CLU_1, CLU_23, &STR_socket_040is_040not_040connected);
        stringOPcons("cannot send after socket shutdown", CLU_1, CLU_33, &STR_cannot_040send_040after_040socket_040shutdown);
        stringOPcons("error 59", CLU_1, CLU_8, &STR_error_04059);
        stringOPcons("connection timed out", CLU_1, CLU_20, &STR_connection_040timed_040out);
        stringOPcons("connection refused", CLU_1, CLU_18, &STR_connection_040refused);
        stringOPcons("too many levels of symbols links", CLU_1, CLU_32, &STR_too_040many_040levels_040of_040symbols_040links);
        stringOPcons("file name too long", CLU_1, CLU_18, &STR_file_040name_040too_040long);
        stringOPcons("directory not empty", CLU_1, CLU_19, &STR_directory_040not_040empty);
        stringOPcons("error ", CLU_1, CLU_6, &STR_error_040);
        _erstr_own_init = 1;
    }
    enter_proc(69);

  LINE(70);
    {
    {
    CLUREF T_2_1;
    CLUREF T_2_2;
    CLUREF T_2_3;
    T_2_2.num = 64;
    sequenceOPnew2(T_2_2, &T_2_1);
    T_2_1.vec->data[0] = STR_not_040owner.num;
    T_2_1.vec->data[1] = STR_no_040such_040file_040or_040directory.num;
    T_2_1.vec->data[2] = STR_no_040such_040process.num;
    T_2_1.vec->data[3] = STR_interrupted_040system_040call.num;
    T_2_1.vec->data[4] = STR_i_057o_040error.num;
    T_2_1.vec->data[5] = STR_no_040such_040device_040or_040address.num;
    T_2_1.vec->data[6] = STR_arg_040list_040too_040long.num;
    T_2_1.vec->data[7] = STR_exec_040format_040error.num;
    T_2_1.vec->data[8] = STR_bad_040file_040number.num;
    T_2_1.vec->data[9] = STR_no_040children.num;
    T_2_1.vec->data[10] = STR_no_040more_040processes.num;
    T_2_1.vec->data[11] = STR_not_040enough_040core.num;
    T_2_1.vec->data[12] = STR_permission_040denied.num;
    T_2_1.vec->data[13] = STR_bad_040address.num;
    T_2_1.vec->data[14] = STR_block_040device_040required.num;
    T_2_1.vec->data[15] = STR_mount_040device_040busy.num;
    T_2_1.vec->data[16] = STR_file_040exists.num;
    T_2_1.vec->data[17] = STR_cross_055device_040link.num;
    T_2_1.vec->data[18] = STR_no_040such_040device.num;
    T_2_1.vec->data[19] = STR_not_040a_040directory.num;
    T_2_1.vec->data[20] = STR_is_040a_040directory.num;
    T_2_1.vec->data[21] = STR_invalid_040argument.num;
    T_2_1.vec->data[22] = STR_file_040table_040overflow.num;
    T_2_1.vec->data[23] = STR_too_040many_040open_040files.num;
    T_2_1.vec->data[24] = STR_not_040a_040typewriter.num;
    T_2_1.vec->data[25] = STR_text_040file_040busy.num;
    T_2_1.vec->data[26] = STR_file_040too_040large.num;
    T_2_1.vec->data[27] = STR_no_040space_040left_040on_040device.num;
    T_2_1.vec->data[28] = STR_illegal_040seek.num;
    T_2_1.vec->data[29] = STR_read_055only_040file_040system.num;
    T_2_1.vec->data[30] = STR_too_040many_040links.num;
    T_2_1.vec->data[31] = STR_broken_040pipe.num;
    T_2_1.vec->data[32] = STR_math_040argument.num;
    T_2_1.vec->data[33] = STR_result_040too_040large.num;
    T_2_1.vec->data[34] = STR_operation_040would_040block.num;
    T_2_1.vec->data[35] = STR_operation_040now_040in_040progress.num;
    T_2_1.vec->data[36] = STR_operation_040already_040in_040progress.num;
    T_2_1.vec->data[37] = STR_socket_040operation_040on_040non_055socket.num;
    T_2_1.vec->data[38] = STR_destination_040address_040required.num;
    T_2_1.vec->data[39] = STR_message_040too_040long.num;
    T_2_1.vec->data[40] = STR_protocol_040wrong_040type_040for_040socket.num;
    T_2_1.vec->data[41] = STR_bad_040protocol_040option.num;
    T_2_1.vec->data[42] = STR_protocol_040not_040supported.num;
    T_2_1.vec->data[43] = STR_socket_040type_040not_040supported.num;
    T_2_1.vec->data[44] = STR_operation_040not_040supported_040on_040socket.num;
    T_2_1.vec->data[45] = STR_protocol_040family_040not_040supported.num;
    T_2_1.vec->data[46] = STR_address_040family_040not_040supported_040by_040protocol_040family.num;
    T_2_1.vec->data[47] = STR_address_040already_040in_040use.num;
    T_2_1.vec->data[48] = STR_cannot_040assign_040requested_040address.num;
    T_2_1.vec->data[49] = STR_network_040is_040down.num;
    T_2_1.vec->data[50] = STR_network_040is_040unreachable.num;
    T_2_1.vec->data[51] = STR_network_040dropped_040connection_040on_040reset.num;
    T_2_1.vec->data[52] = STR_software_040caused_040connection_040abort.num;
    T_2_1.vec->data[53] = STR_connection_040reset_040by_040peer.num;
    T_2_1.vec->data[54] = STR_no_040buffer_040space_040available.num;
    T_2_1.vec->data[55] = STR_socket_040is_040already_040connected.num;
    T_2_1.vec->data[56] = STR_socket_040is_040not_040connected.num;
    T_2_1.vec->data[57] = STR_cannot_040send_040after_040socket_040shutdown.num;
    T_2_1.vec->data[58] = STR_error_04059.num;
    T_2_1.vec->data[59] = STR_connection_040timed_040out.num;
    T_2_1.vec->data[60] = STR_connection_040refused.num;
    T_2_1.vec->data[61] = STR_too_040many_040levels_040of_040symbols_040links.num;
    T_2_1.vec->data[62] = STR_file_040name_040too_040long.num;
    T_2_1.vec->data[63] = STR_directory_040not_040empty.num;
    locals.err = sequenceOPfetch(T_2_1, locals.num, &T_2_3);
    if (locals.err != ERR_ok) goto ex_1;
    ret_1->num = T_2_3.num;
    }
    {signal (ERR_ok);}}
        goto end_1;
        ex_1:
            if ((locals.err == ERR_bounds)) {
            }
            else {
                goto ex_0;
            }
        end_1:;

  LINE(72);
    {
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    locals.err = intOPunparse(locals.num, &T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    locals.err = stringOPconcat(STR_error_040, T_1_1, &T_1_2);
    if (locals.err != ERR_ok) goto ex_0;
    ret_1->num = T_1_2.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (locals.err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(locals.err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE _erstr ****/

typedef struct {
    int hdr;
    int count;
    char *name;
    char *fname;
    bool is_iter;
    int is_parmd;
    int addr;
    int nargs;
    Vlist1 *vals;
    siglist0 *sigs;
    Vlist3 *locals;
    Vlist1 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info__erstr_actual;
static Vlist1 vals__erstr = {0, 1, { {0, 2, "", &string_ops}}
};
static siglist0 sigs__erstr = {0, 0};
static Vlist3 locals__erstr = {0, 3,{ {0, 2, "err", &int_ops},  {0, 2, "ecode2", &int_ops},  {0, 2, "num", &int_ops}}
};
static Vlist0 popowns__erstr = {0, 0};
Slist0 tformals__erstr = {0, 0};
Slist0 opformals__erstr = {0, 0};
dbg_info__erstr_actual dbg_info__erstr_data = {0, 12, 
    "_erstr", "/common/pub/dcurtis-temp/pclu/sys/clu/_erstr", 0, 0, (int)_erstr, 1, 
    &vals__erstr, &sigs__erstr, &locals__erstr, &owns__erstr, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info__erstr = (struct dbg_info*)&dbg_info__erstr_data;

extern struct dbg_info* dbg_info__ernum;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG _ernum_TRACE
int _ernum_TRACE;
static Vlist1 owns__ernum = {0, 1,{ {0, 2, "_init", &int_ops}
}
};
extern errcode _ernum_IB_1();
extern errcode sequenceOPindexes();
extern errcode stringOPequal();
struct OPS *sequence_of_string_table;
struct OPS *sequence_of_string_ops;
struct OPS *sequence_of_string_ops;
OWNPTR sequence_of_string_owns;
static int _ernum_own_init = 0;

/**** BEGIN PROCEDURE _ernum ****/

errcode _ernum(msg, ret_1)
CLUREF msg;
CLUREF *ret_1;
    {
    struct {
        struct dbg_info *DBG_INFO;
        int DBG_LINE;
        errcode err;
        errcode ecode2;
        CLUREF i;
        CLUREF msg;
        } locals;
    locals.i.num = UNINIT;
    locals.msg.num = UNINIT;
    locals.DBG_INFO = dbg_info__ernum;
    locals.msg = msg;
        if (_ernum_own_init == 0) {
        add_parm_info_type(0, string_ops, sequence_of_t_reqs);
        find_type_instance(sequence_ops, 1, &sequence_ownreqs, &(sequence_of_string_ops));
        stringOPcons("not owner", CLU_1, CLU_9, &STR_not_040owner);
        stringOPcons("no such file or directory", CLU_1, CLU_25, &STR_no_040such_040file_040or_040directory);
        stringOPcons("no such process", CLU_1, CLU_15, &STR_no_040such_040process);
        stringOPcons("interrupted system call", CLU_1, CLU_23, &STR_interrupted_040system_040call);
        stringOPcons("i/o error", CLU_1, CLU_9, &STR_i_057o_040error);
        stringOPcons("no such device or address", CLU_1, CLU_25, &STR_no_040such_040device_040or_040address);
        stringOPcons("arg list too long", CLU_1, CLU_17, &STR_arg_040list_040too_040long);
        stringOPcons("exec format error", CLU_1, CLU_17, &STR_exec_040format_040error);
        stringOPcons("bad file number", CLU_1, CLU_15, &STR_bad_040file_040number);
        stringOPcons("no children", CLU_1, CLU_11, &STR_no_040children);
        stringOPcons("no more processes", CLU_1, CLU_17, &STR_no_040more_040processes);
        stringOPcons("not enough core", CLU_1, CLU_15, &STR_not_040enough_040core);
        stringOPcons("permission denied", CLU_1, CLU_17, &STR_permission_040denied);
        stringOPcons("bad address", CLU_1, CLU_11, &STR_bad_040address);
        stringOPcons("block device required", CLU_1, CLU_21, &STR_block_040device_040required);
        stringOPcons("mount device busy", CLU_1, CLU_17, &STR_mount_040device_040busy);
        stringOPcons("file exists", CLU_1, CLU_11, &STR_file_040exists);
        stringOPcons("cross-device link", CLU_1, CLU_17, &STR_cross_055device_040link);
        stringOPcons("no such device", CLU_1, CLU_14, &STR_no_040such_040device);
        stringOPcons("not a directory", CLU_1, CLU_15, &STR_not_040a_040directory);
        stringOPcons("is a directory", CLU_1, CLU_14, &STR_is_040a_040directory);
        stringOPcons("invalid argument", CLU_1, CLU_16, &STR_invalid_040argument);
        stringOPcons("file table overflow", CLU_1, CLU_19, &STR_file_040table_040overflow);
        stringOPcons("too many open files", CLU_1, CLU_19, &STR_too_040many_040open_040files);
        stringOPcons("not a typewriter", CLU_1, CLU_16, &STR_not_040a_040typewriter);
        stringOPcons("text file busy", CLU_1, CLU_14, &STR_text_040file_040busy);
        stringOPcons("file too large", CLU_1, CLU_14, &STR_file_040too_040large);
        stringOPcons("no space left on device", CLU_1, CLU_23, &STR_no_040space_040left_040on_040device);
        stringOPcons("illegal seek", CLU_1, CLU_12, &STR_illegal_040seek);
        stringOPcons("read-only file system", CLU_1, CLU_21, &STR_read_055only_040file_040system);
        stringOPcons("too many links", CLU_1, CLU_14, &STR_too_040many_040links);
        stringOPcons("broken pipe", CLU_1, CLU_11, &STR_broken_040pipe);
        stringOPcons("math argument", CLU_1, CLU_13, &STR_math_040argument);
        stringOPcons("result too large", CLU_1, CLU_16, &STR_result_040too_040large);
        stringOPcons("operation would block", CLU_1, CLU_21, &STR_operation_040would_040block);
        stringOPcons("operation now in progress", CLU_1, CLU_25, &STR_operation_040now_040in_040progress);
        stringOPcons("operation already in progress", CLU_1, CLU_29, &STR_operation_040already_040in_040progress);
        stringOPcons("socket operation on non-socket", CLU_1, CLU_30, &STR_socket_040operation_040on_040non_055socket);
        stringOPcons("destination address required", CLU_1, CLU_28, &STR_destination_040address_040required);
        stringOPcons("message too long", CLU_1, CLU_16, &STR_message_040too_040long);
        stringOPcons("protocol wrong type for socket", CLU_1, CLU_30, &STR_protocol_040wrong_040type_040for_040socket);
        stringOPcons("bad protocol option", CLU_1, CLU_19, &STR_bad_040protocol_040option);
        stringOPcons("protocol not supported", CLU_1, CLU_22, &STR_protocol_040not_040supported);
        stringOPcons("socket type not supported", CLU_1, CLU_25, &STR_socket_040type_040not_040supported);
        stringOPcons("operation not supported on socket", CLU_1, CLU_33, &STR_operation_040not_040supported_040on_040socket);
        stringOPcons("protocol family not supported", CLU_1, CLU_29, &STR_protocol_040family_040not_040supported);
        stringOPcons("address family not supported by protocol family", CLU_1, CLU_47, &STR_address_040family_040not_040supported_040by_040protocol_040family);
        stringOPcons("address already in use", CLU_1, CLU_22, &STR_address_040already_040in_040use);
        stringOPcons("cannot assign requested address", CLU_1, CLU_31, &STR_cannot_040assign_040requested_040address);
        stringOPcons("network is down", CLU_1, CLU_15, &STR_network_040is_040down);
        stringOPcons("network is unreachable", CLU_1, CLU_22, &STR_network_040is_040unreachable);
        stringOPcons("network dropped connection on reset", CLU_1, CLU_35, &STR_network_040dropped_040connection_040on_040reset);
        stringOPcons("software caused connection abort", CLU_1, CLU_32, &STR_software_040caused_040connection_040abort);
        stringOPcons("connection reset by peer", CLU_1, CLU_24, &STR_connection_040reset_040by_040peer);
        stringOPcons("no buffer space available", CLU_1, CLU_25, &STR_no_040buffer_040space_040available);
        stringOPcons("socket is already connected", CLU_1, CLU_27, &STR_socket_040is_040already_040connected);
        stringOPcons("socket is not connected", CLU_1, CLU_23, &STR_socket_040is_040not_040connected);
        stringOPcons("cannot send after socket shutdown", CLU_1, CLU_33, &STR_cannot_040send_040after_040socket_040shutdown);
        stringOPcons("error 59", CLU_1, CLU_8, &STR_error_04059);
        stringOPcons("connection timed out", CLU_1, CLU_20, &STR_connection_040timed_040out);
        stringOPcons("connection refused", CLU_1, CLU_18, &STR_connection_040refused);
        stringOPcons("too many levels of symbols links", CLU_1, CLU_32, &STR_too_040many_040levels_040of_040symbols_040links);
        stringOPcons("file name too long", CLU_1, CLU_18, &STR_file_040name_040too_040long);
        stringOPcons("directory not empty", CLU_1, CLU_19, &STR_directory_040not_040empty);
        _ernum_own_init = 1;
    }
    enter_proc(75);

  LINE(76);
    {
        CLUREF T_1_1;
        CLUREF T_1_2;
        T_1_2.num = 64;
        sequenceOPnew2(T_1_2, &T_1_1);
        T_1_1.vec->data[0] = STR_not_040owner.num;
        T_1_1.vec->data[1] = STR_no_040such_040file_040or_040directory.num;
        T_1_1.vec->data[2] = STR_no_040such_040process.num;
        T_1_1.vec->data[3] = STR_interrupted_040system_040call.num;
        T_1_1.vec->data[4] = STR_i_057o_040error.num;
        T_1_1.vec->data[5] = STR_no_040such_040device_040or_040address.num;
        T_1_1.vec->data[6] = STR_arg_040list_040too_040long.num;
        T_1_1.vec->data[7] = STR_exec_040format_040error.num;
        T_1_1.vec->data[8] = STR_bad_040file_040number.num;
        T_1_1.vec->data[9] = STR_no_040children.num;
        T_1_1.vec->data[10] = STR_no_040more_040processes.num;
        T_1_1.vec->data[11] = STR_not_040enough_040core.num;
        T_1_1.vec->data[12] = STR_permission_040denied.num;
        T_1_1.vec->data[13] = STR_bad_040address.num;
        T_1_1.vec->data[14] = STR_block_040device_040required.num;
        T_1_1.vec->data[15] = STR_mount_040device_040busy.num;
        T_1_1.vec->data[16] = STR_file_040exists.num;
        T_1_1.vec->data[17] = STR_cross_055device_040link.num;
        T_1_1.vec->data[18] = STR_no_040such_040device.num;
        T_1_1.vec->data[19] = STR_not_040a_040directory.num;
        T_1_1.vec->data[20] = STR_is_040a_040directory.num;
        T_1_1.vec->data[21] = STR_invalid_040argument.num;
        T_1_1.vec->data[22] = STR_file_040table_040overflow.num;
        T_1_1.vec->data[23] = STR_too_040many_040open_040files.num;
        T_1_1.vec->data[24] = STR_not_040a_040typewriter.num;
        T_1_1.vec->data[25] = STR_text_040file_040busy.num;
        T_1_1.vec->data[26] = STR_file_040too_040large.num;
        T_1_1.vec->data[27] = STR_no_040space_040left_040on_040device.num;
        T_1_1.vec->data[28] = STR_illegal_040seek.num;
        T_1_1.vec->data[29] = STR_read_055only_040file_040system.num;
        T_1_1.vec->data[30] = STR_too_040many_040links.num;
        T_1_1.vec->data[31] = STR_broken_040pipe.num;
        T_1_1.vec->data[32] = STR_math_040argument.num;
        T_1_1.vec->data[33] = STR_result_040too_040large.num;
        T_1_1.vec->data[34] = STR_operation_040would_040block.num;
        T_1_1.vec->data[35] = STR_operation_040now_040in_040progress.num;
        T_1_1.vec->data[36] = STR_operation_040already_040in_040progress.num;
        T_1_1.vec->data[37] = STR_socket_040operation_040on_040non_055socket.num;
        T_1_1.vec->data[38] = STR_destination_040address_040required.num;
        T_1_1.vec->data[39] = STR_message_040too_040long.num;
        T_1_1.vec->data[40] = STR_protocol_040wrong_040type_040for_040socket.num;
        T_1_1.vec->data[41] = STR_bad_040protocol_040option.num;
        T_1_1.vec->data[42] = STR_protocol_040not_040supported.num;
        T_1_1.vec->data[43] = STR_socket_040type_040not_040supported.num;
        T_1_1.vec->data[44] = STR_operation_040not_040supported_040on_040socket.num;
        T_1_1.vec->data[45] = STR_protocol_040family_040not_040supported.num;
        T_1_1.vec->data[46] = STR_address_040family_040not_040supported_040by_040protocol_040family.num;
        T_1_1.vec->data[47] = STR_address_040already_040in_040use.num;
        T_1_1.vec->data[48] = STR_cannot_040assign_040requested_040address.num;
        T_1_1.vec->data[49] = STR_network_040is_040down.num;
        T_1_1.vec->data[50] = STR_network_040is_040unreachable.num;
        T_1_1.vec->data[51] = STR_network_040dropped_040connection_040on_040reset.num;
        T_1_1.vec->data[52] = STR_software_040caused_040connection_040abort.num;
        T_1_1.vec->data[53] = STR_connection_040reset_040by_040peer.num;
        T_1_1.vec->data[54] = STR_no_040buffer_040space_040available.num;
        T_1_1.vec->data[55] = STR_socket_040is_040already_040connected.num;
        T_1_1.vec->data[56] = STR_socket_040is_040not_040connected.num;
        T_1_1.vec->data[57] = STR_cannot_040send_040after_040socket_040shutdown.num;
        T_1_1.vec->data[58] = STR_error_04059.num;
        T_1_1.vec->data[59] = STR_connection_040timed_040out.num;
        T_1_1.vec->data[60] = STR_connection_040refused.num;
        T_1_1.vec->data[61] = STR_too_040many_040levels_040of_040symbols_040links.num;
        T_1_1.vec->data[62] = STR_file_040name_040too_040long.num;
        T_1_1.vec->data[63] = STR_directory_040not_040empty.num;
        locals.err = sequenceOPindexes(T_1_1, _ernum_IB_1, &locals, &locals.ecode2);
        if (locals.err == ERR_iterbodyreturn) {
        ret_1->num = elist[0].num;
        signal(ERR_ok);}
        if (locals.err == ERR_iterbodysignal) {signal(locals.ecode2);}
        if (locals.err == ERR_break) locals.err = ERR_ok;
        if (locals.err == ERR_iterbodyexit) locals.err = locals.ecode2;
        if (locals.err != ERR_ok) goto ex_0;
        }

  LINE(79);
    {
    {signal (ERR_not_found);}}
    goto end_0;
    ex_0:
        {
            if (locals.err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(locals.err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE _ernum ****/

typedef struct {
    int hdr;
    int count;
    char *name;
    char *fname;
    bool is_iter;
    int is_parmd;
    int addr;
    int nargs;
    Vlist1 *vals;
    siglist1 *sigs;
    Vlist4 *locals;
    Vlist1 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info__ernum_actual;
static Vlist1 vals__ernum = {0, 1, { {0, 2, "", &int_ops}}
};
static sig_desc0 sig__ernum_1 = {0, 3, "not_found", {0, 0
}};
static siglist1 sigs__ernum = {0, 1, (sig_desc*)&sig__ernum_1};
static Vlist4 locals__ernum = {0, 4,{ {0, 2, "err", &int_ops},  {0, 2, "ecode2", &int_ops},  {0, 2, "i", &int_ops},  {0, 2, "msg", &string_ops}}
};
static Vlist0 popowns__ernum = {0, 0};
Slist0 tformals__ernum = {0, 0};
Slist0 opformals__ernum = {0, 0};
dbg_info__ernum_actual dbg_info__ernum_data = {0, 12, 
    "_ernum", "/common/pub/dcurtis-temp/pclu/sys/clu/_erstr", 0, 0, (int)_ernum, 1, 
    &vals__ernum, &sigs__ernum, &locals__ernum, &owns__ernum, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info__ernum = (struct dbg_info*)&dbg_info__ernum_data;

/**** BEGIN ITERATOR BODIES for _ernum ****/

errcode _ernum_IB_1(iv_1, locals, iecode)
errcode *iecode;
CLUREF iv_1;
struct {
    struct dbg_info *DBG_INFO;
    int DBG_LINE;
    errcode err;
    errcode ecode2;
    CLUREF i;
    CLUREF msg;
    } *locals;
{
    locals->i.num = iv_1.num;
    enter_iter_body_proc(77);

  FB_LINE(77);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
    T_1_2.num = 64;
    sequenceOPnew2(T_1_2, &T_1_1);
    T_1_1.vec->data[0] = STR_not_040owner.num;
    T_1_1.vec->data[1] = STR_no_040such_040file_040or_040directory.num;
    T_1_1.vec->data[2] = STR_no_040such_040process.num;
    T_1_1.vec->data[3] = STR_interrupted_040system_040call.num;
    T_1_1.vec->data[4] = STR_i_057o_040error.num;
    T_1_1.vec->data[5] = STR_no_040such_040device_040or_040address.num;
    T_1_1.vec->data[6] = STR_arg_040list_040too_040long.num;
    T_1_1.vec->data[7] = STR_exec_040format_040error.num;
    T_1_1.vec->data[8] = STR_bad_040file_040number.num;
    T_1_1.vec->data[9] = STR_no_040children.num;
    T_1_1.vec->data[10] = STR_no_040more_040processes.num;
    T_1_1.vec->data[11] = STR_not_040enough_040core.num;
    T_1_1.vec->data[12] = STR_permission_040denied.num;
    T_1_1.vec->data[13] = STR_bad_040address.num;
    T_1_1.vec->data[14] = STR_block_040device_040required.num;
    T_1_1.vec->data[15] = STR_mount_040device_040busy.num;
    T_1_1.vec->data[16] = STR_file_040exists.num;
    T_1_1.vec->data[17] = STR_cross_055device_040link.num;
    T_1_1.vec->data[18] = STR_no_040such_040device.num;
    T_1_1.vec->data[19] = STR_not_040a_040directory.num;
    T_1_1.vec->data[20] = STR_is_040a_040directory.num;
    T_1_1.vec->data[21] = STR_invalid_040argument.num;
    T_1_1.vec->data[22] = STR_file_040table_040overflow.num;
    T_1_1.vec->data[23] = STR_too_040many_040open_040files.num;
    T_1_1.vec->data[24] = STR_not_040a_040typewriter.num;
    T_1_1.vec->data[25] = STR_text_040file_040busy.num;
    T_1_1.vec->data[26] = STR_file_040too_040large.num;
    T_1_1.vec->data[27] = STR_no_040space_040left_040on_040device.num;
    T_1_1.vec->data[28] = STR_illegal_040seek.num;
    T_1_1.vec->data[29] = STR_read_055only_040file_040system.num;
    T_1_1.vec->data[30] = STR_too_040many_040links.num;
    T_1_1.vec->data[31] = STR_broken_040pipe.num;
    T_1_1.vec->data[32] = STR_math_040argument.num;
    T_1_1.vec->data[33] = STR_result_040too_040large.num;
    T_1_1.vec->data[34] = STR_operation_040would_040block.num;
    T_1_1.vec->data[35] = STR_operation_040now_040in_040progress.num;
    T_1_1.vec->data[36] = STR_operation_040already_040in_040progress.num;
    T_1_1.vec->data[37] = STR_socket_040operation_040on_040non_055socket.num;
    T_1_1.vec->data[38] = STR_destination_040address_040required.num;
    T_1_1.vec->data[39] = STR_message_040too_040long.num;
    T_1_1.vec->data[40] = STR_protocol_040wrong_040type_040for_040socket.num;
    T_1_1.vec->data[41] = STR_bad_040protocol_040option.num;
    T_1_1.vec->data[42] = STR_protocol_040not_040supported.num;
    T_1_1.vec->data[43] = STR_socket_040type_040not_040supported.num;
    T_1_1.vec->data[44] = STR_operation_040not_040supported_040on_040socket.num;
    T_1_1.vec->data[45] = STR_protocol_040family_040not_040supported.num;
    T_1_1.vec->data[46] = STR_address_040family_040not_040supported_040by_040protocol_040family.num;
    T_1_1.vec->data[47] = STR_address_040already_040in_040use.num;
    T_1_1.vec->data[48] = STR_cannot_040assign_040requested_040address.num;
    T_1_1.vec->data[49] = STR_network_040is_040down.num;
    T_1_1.vec->data[50] = STR_network_040is_040unreachable.num;
    T_1_1.vec->data[51] = STR_network_040dropped_040connection_040on_040reset.num;
    T_1_1.vec->data[52] = STR_software_040caused_040connection_040abort.num;
    T_1_1.vec->data[53] = STR_connection_040reset_040by_040peer.num;
    T_1_1.vec->data[54] = STR_no_040buffer_040space_040available.num;
    T_1_1.vec->data[55] = STR_socket_040is_040already_040connected.num;
    T_1_1.vec->data[56] = STR_socket_040is_040not_040connected.num;
    T_1_1.vec->data[57] = STR_cannot_040send_040after_040socket_040shutdown.num;
    T_1_1.vec->data[58] = STR_error_04059.num;
    T_1_1.vec->data[59] = STR_connection_040timed_040out.num;
    T_1_1.vec->data[60] = STR_connection_040refused.num;
    T_1_1.vec->data[61] = STR_too_040many_040levels_040of_040symbols_040links.num;
    T_1_1.vec->data[62] = STR_file_040name_040too_040long.num;
    T_1_1.vec->data[63] = STR_directory_040not_040empty.num;
    locals->err = sequenceOPfetch(T_1_1, locals->i, &T_1_3);
    if (locals->err != ERR_ok) goto ex_0;
    locals->err = stringOPequal(locals->msg, T_1_3, &T_1_4);
    if (locals->err != ERR_ok) goto ex_0;
    if (T_1_4.num == true) {
        {
        {
        elist[0] = locals->i;
        }
        *iecode = ERR_ok;
        {signal(ERR_iterbodyreturn);}
        }
        }
        }/* end if */
    {signal(ERR_ok);}
    ex_0:
        {
            *iecode = locals->err;
            {signal(ERR_iterbodyexit);}}
    end_0: {signal(ERR_ok);}
    }/* end _ernum_IB_1 */

/**** END ITERATOR BODIES for _ernum ****/

