/* automatically generated by pepsy 8.0 #2 (purplet), do not edit! */

#ifndef	_module_NRS_defined_
#define	_module_NRS_defined_

#ifndef	PEPSY_VERSION
#define	PEPSY_VERSION		2
#endif

#ifndef	PEPYPATH
#include <isode/psap.h>
#include <isode/pepsy.h>
#include <isode/pepsy/UNIV-types.h>
#else
#include "psap.h"
#include "pepsy.h"
#include "UNIV-types.h"
#endif



extern modtyp	_ZNRS_mod;
#define _ZAddress_space_idNRS	1
#define _ZAddressing_infoNRS	3
#define _ZRoute_costNRS	2
#define _ZContextNRS	0
#define _ZNRSInformationNRS	4

#ifndef	lint
#define encode_NRS_Context(pe, top, len, buffer, parm) \
    enc_f(_ZContextNRS, &_ZNRS_mod, pe, top, len, buffer, (char *) parm)

#define decode_NRS_Context(pe, top, len, buffer, parm) \
    dec_f(_ZContextNRS, &_ZNRS_mod, pe, top, len, buffer, (char **) parm)

#define print_NRS_Context(pe, top, len, buffer, parm) \
    prnt_f(_ZContextNRS, &_ZNRS_mod, pe, top, len, buffer)
#define print_NRS_Context_P    _ZContextNRS, &_ZNRS_mod

#define encode_NRS_Address__space__id(pe, top, len, buffer, parm) \
    enc_f(_ZAddress_space_idNRS, &_ZNRS_mod, pe, top, len, buffer, (char *) parm)

#define decode_NRS_Address__space__id(pe, top, len, buffer, parm) \
    dec_f(_ZAddress_space_idNRS, &_ZNRS_mod, pe, top, len, buffer, (char **) parm)

#define print_NRS_Address__space__id(pe, top, len, buffer, parm) \
    prnt_f(_ZAddress_space_idNRS, &_ZNRS_mod, pe, top, len, buffer)
#define print_NRS_Address__space__id_P    _ZAddress_space_idNRS, &_ZNRS_mod

#define encode_NRS_Route__cost(pe, top, len, buffer, parm) \
    enc_f(_ZRoute_costNRS, &_ZNRS_mod, pe, top, len, buffer, (char *) parm)

#define decode_NRS_Route__cost(pe, top, len, buffer, parm) \
    dec_f(_ZRoute_costNRS, &_ZNRS_mod, pe, top, len, buffer, (char **) parm)

#define print_NRS_Route__cost(pe, top, len, buffer, parm) \
    prnt_f(_ZRoute_costNRS, &_ZNRS_mod, pe, top, len, buffer)
#define print_NRS_Route__cost_P    _ZRoute_costNRS, &_ZNRS_mod

#define encode_NRS_Addressing__info(pe, top, len, buffer, parm) \
    enc_f(_ZAddressing_infoNRS, &_ZNRS_mod, pe, top, len, buffer, (char *) parm)

#define decode_NRS_Addressing__info(pe, top, len, buffer, parm) \
    dec_f(_ZAddressing_infoNRS, &_ZNRS_mod, pe, top, len, buffer, (char **) parm)

#define print_NRS_Addressing__info(pe, top, len, buffer, parm) \
    prnt_f(_ZAddressing_infoNRS, &_ZNRS_mod, pe, top, len, buffer)
#define print_NRS_Addressing__info_P    _ZAddressing_infoNRS, &_ZNRS_mod

#define encode_NRS_NRSInformation(pe, top, len, buffer, parm) \
    enc_f(_ZNRSInformationNRS, &_ZNRS_mod, pe, top, len, buffer, (char *) parm)

#define decode_NRS_NRSInformation(pe, top, len, buffer, parm) \
    dec_f(_ZNRSInformationNRS, &_ZNRS_mod, pe, top, len, buffer, (char **) parm)

#define print_NRS_NRSInformation(pe, top, len, buffer, parm) \
    prnt_f(_ZNRSInformationNRS, &_ZNRS_mod, pe, top, len, buffer)
#define print_NRS_NRSInformation_P    _ZNRSInformationNRS, &_ZNRS_mod


#endif   /* lint */
#include "nrs-cdefs.h"

#define	type_NRS_Route__cost	PElement

struct type_NRS_Context {
    integer     parm;
#define	int_NRS_Context_context__unknown	-1
#define	int_NRS_Context_x29	0
#define	int_NRS_Context_ts29	1
#define	int_NRS_Context_niftp	2
#define	int_NRS_Context_mail__niftp	3
#define	int_NRS_Context_not__used	4
#define	int_NRS_Context_mail__telex	5
#define	int_NRS_Context_jtmp	6
#define	int_NRS_Context_jtmp__files	7
#define	int_NRS_Context_jtmp__reg	8
#define	int_NRS_Context_ybts__node	9
#define	int_NRS_Context_ybts	10
#define	int_NRS_Context_ftam	11
#define	int_NRS_Context_jtm	12
#define	int_NRS_Context_jtm__reg	13
#define	int_NRS_Context_vt	14
#define	int_NRS_Context_motis	15
};
#define	free_NRS_Context(parm)\
	(void) fre_obj((char *) parm, _ZNRS_mod.md_dtab[_ZContextNRS], &_ZNRS_mod, 1)

struct type_NRS_Address__space__id {
    integer     parm;
#define	int_NRS_Address__space__id_pss	0
#define	int_NRS_Address__space__id_janet	1
#define	int_NRS_Address__space__id_telex	2
#define	int_NRS_Address__space__id_osi__cons	3
};
#define	free_NRS_Address__space__id(parm)\
	(void) fre_obj((char *) parm, _ZNRS_mod.md_dtab[_ZAddress_space_idNRS], &_ZNRS_mod, 1)

struct type_NRS_Addressing__info {
    int         offset;
#define	type_NRS_Addressing__info_dte__only	1
#define	type_NRS_Addressing__info_dte__appli__info	2
#define	type_NRS_Addressing__info_dte__cudf	3
#define	type_NRS_Addressing__info_dte__cudf__applic__info	4
#define	type_NRS_Addressing__info_dte__ybts	5
#define	type_NRS_Addressing__info_dte__ybts__applic__info	6
#define	type_NRS_Addressing__info_dte__ybts__appli__relays	7
#define	type_NRS_Addressing__info_none__needed	8
#define	type_NRS_Addressing__info_osi__addressing	9
#define	type_NRS_Addressing__info_osi__nsap__only	10
#define	type_NRS_Addressing__info_osi__nsap__applic__info	11
#define	type_NRS_Addressing__info_osi__nsap__applic__relays	12
#define	type_NRS_Addressing__info_dte__ybts__osi__addressing	13

    union {
        struct	qbuf	*dte__only;

        struct element_NRS_0 {
            struct	qbuf	*dte__number;

            struct element_NRS_1 {
                struct	qbuf	*element_NRS_2;

                struct element_NRS_1 *next;
            } *applic__info;
        } *dte__appli__info;

        struct element_NRS_3 {
            struct	qbuf	*dte__number;

            struct qbuf *cudf;
        } *dte__cudf;

        struct element_NRS_4 {
            struct	qbuf	*dte__number;

            struct qbuf *cudf;

            struct element_NRS_5 {
                struct	qbuf	*element_NRS_6;

                struct element_NRS_5 *next;
            } *applic__info;
        } *dte__cudf__applic__info;

        struct element_NRS_7 {
            struct	qbuf	*dte__number;

            struct	qbuf	*ybts__string;
        } *dte__ybts;

        struct element_NRS_8 {
            struct	qbuf	*dte__number;

            struct	qbuf	*ybts__string;

            struct element_NRS_9 {
                struct	qbuf	*element_NRS_10;

                struct element_NRS_9 *next;
            } *applic__info;
        } *dte__ybts__applic__info;

        struct element_NRS_11 {
            struct	qbuf	*dte__number;

            struct	qbuf	*ybts__string;

            struct element_NRS_12 {
                struct	qbuf	*element_NRS_13;

                struct element_NRS_12 *next;
            } *applic__relay;
        } *dte__ybts__appli__relays;

        char    none__needed;

        struct element_NRS_14 {
            struct	qbuf	*nsap;

            struct qbuf *tselector;

            struct qbuf *sselector;

            struct qbuf *pselector;

            PE      place__holder;

            PE      application__title;

            PE      per__application__context__info;
        } *osi__addressing;

        struct	qbuf	*osi__nsap__only;

        struct element_NRS_15 {
            struct	qbuf	*nsap;

            struct element_NRS_16 {
                struct	qbuf	*element_NRS_17;

                struct element_NRS_16 *next;
            } *applic__info;
        } *osi__nsap__applic__info;

        struct element_NRS_18 {
            struct	qbuf	*nsap;

            struct element_NRS_19 {
                struct	qbuf	*element_NRS_20;

                struct element_NRS_19 *next;
            } *applic__relay;
        } *osi__nsap__applic__relays;

        struct element_NRS_21 {
            struct	qbuf	*dte__number;

            struct	qbuf	*ybts__string;

            struct qbuf *tselector;

            struct qbuf *sselector;

            struct qbuf *pselector;

            PE      place__holder;

            PE      application__title;

            PE      per__application__context__info;
        } *dte__ybts__osi__addressing;
    }       un;
};
#define	free_NRS_Addressing__info(parm)\
	(void) fre_obj((char *) parm, _ZNRS_mod.md_dtab[_ZAddressing_infoNRS], &_ZNRS_mod, 1)

struct type_NRS_NRSInformation {
    struct type_NRS_Context *member_NRS_0;

    struct type_NRS_Address__space__id *member_NRS_1;

    struct element_NRS_22 {
        struct element_NRS_24 {
            struct type_NRS_Route__cost *element_NRS_25;

            struct type_NRS_Addressing__info *element_NRS_26;
        } *element_NRS_23;

        struct element_NRS_22 *next;
    } *routes;
};
#define	free_NRS_NRSInformation(parm)\
	(void) fre_obj((char *) parm, _ZNRS_mod.md_dtab[_ZNRSInformationNRS], &_ZNRS_mod, 1)
#endif
