Annotation of 43BSDReno/contrib/isode-beta/h/psap.h, revision 1.1

1.1     ! root        1: /* psap.h - include file for presentation users (PS-USER) */
        !             2: 
        !             3: /* 
        !             4:  * $Header: /f/osi/h/RCS/psap.h,v 7.3 90/07/27 08:44:43 mrose Exp $
        !             5:  *
        !             6:  *
        !             7:  * $Log:       psap.h,v $
        !             8:  * Revision 7.3  90/07/27  08:44:43  mrose
        !             9:  * update
        !            10:  * 
        !            11:  * Revision 7.2  90/07/01  21:03:50  mrose
        !            12:  * pepsy
        !            13:  * 
        !            14:  * Revision 7.1  90/03/22  08:39:21  mrose
        !            15:  * touch-up
        !            16:  * 
        !            17:  * Revision 7.0  89/11/23  21:55:52  mrose
        !            18:  * Release 6.0
        !            19:  * 
        !            20:  */
        !            21: 
        !            22: /*
        !            23:  *                               NOTICE
        !            24:  *
        !            25:  *    Acquisition, use, and distribution of this module and related
        !            26:  *    materials are subject to the restrictions of a license agreement.
        !            27:  *    Consult the Preface in the User's Manual for the full terms of
        !            28:  *    this agreement.
        !            29:  *
        !            30:  */
        !            31: 
        !            32: 
        !            33: #ifndef        _PSAP_
        !            34: #define        _PSAP_
        !            35: 
        !            36: #ifndef        _MANIFEST_
        !            37: #include "manifest.h"
        !            38: #endif
        !            39: #ifndef        _GENERAL_
        !            40: #include "general.h"
        !            41: #endif
        !            42: #ifndef        OSX
        !            43: #ifndef        BSD42
        !            44: #include <time.h>
        !            45: #else
        !            46: #ifndef        timerisset
        !            47: #include <sys/time.h>
        !            48: #endif
        !            49: #endif
        !            50: #endif
        !            51: #include <math.h>
        !            52: 
        !            53: /*  */
        !            54: 
        !            55: typedef struct OIDentifier {
        !            56:     int            oid_nelem;          /* number of sub-identifiers */
        !            57: 
        !            58:     unsigned int *oid_elements;        /* the (ordered) list of sub-identifiers */
        !            59: }                      OIDentifier, *OID;
        !            60: #define        NULLOID ((OID) 0)
        !            61: 
        !            62: 
        !            63: OID    ode2oid ();
        !            64: int    oid_cmp (), elem_cmp ();
        !            65: OID    oid_cpy ();
        !            66: int    oid_free ();
        !            67: #define        oid2ode(i)      oid2ode_aux ((i), 1)
        !            68: char   *oid2ode_aux ();
        !            69: char   *sprintoid ();
        !            70: OID    str2oid ();
        !            71: 
        !            72: /*  */
        !            73: 
        !            74: typedef        u_char     PElementClass;
        !            75: 
        !            76: typedef        u_char     PElementForm;
        !            77: 
        !            78: typedef u_short    PElementID; /* 0..16383 are meaningful (14 bits) */
        !            79: #define        PE_ID_BITS      14
        !            80: 
        !            81: #define        PE_ID(class,code) \
        !            82:        ((int) ((((code) & 0x3fff) << 2) | ((class) & 0x0003)))
        !            83: 
        !            84: typedef        int        PElementLen;
        !            85: 
        !            86: 
        !            87: typedef u_char   byte, *PElementData;
        !            88: #define        NULLPED ((PElementData) 0)
        !            89: 
        !            90: #define        PEDalloc(s)             ((PElementData) malloc ((unsigned int) (s)))
        !            91: 
        !            92: #define        PEDrealloc(p, s)        ((PElementData) \
        !            93:                                    realloc ((char *) (p), (unsigned int) (s)))
        !            94: 
        !            95: #define        PEDfree(p)              free ((char *) (p))
        !            96: 
        !            97: #define        PEDcmp(b1, b2, length)  \
        !            98:                        bcmp ((char *) (b1), (char *) (b2), (int) (length))
        !            99: 
        !           100: #define        PEDcpy(b1, b2, length)  \
        !           101:                        bcopy ((char *) (b1), (char *) (b2), (int) (length))
        !           102: 
        !           103: /*  */
        !           104: 
        !           105: typedef struct PElement {
        !           106:     int            pe_errno;           /* Error codes */
        !           107: #define        PE_ERR_NONE     0       /*   No error */
        !           108: #define        PE_ERR_OVER     1       /*   Overflow */
        !           109: #define        PE_ERR_NMEM     2       /*   Out of memory */
        !           110: #define        PE_ERR_BIT      3       /*   No such bit */
        !           111: #define        PE_ERR_UTCT     4       /*   Malformed universal timestring */
        !           112: #define        PE_ERR_GENT     5       /*   Malformed generalized timestring */
        !           113: #define        PE_ERR_MBER     6       /*   No such member */
        !           114: #define        PE_ERR_PRIM     7       /*   Not a primitive form */
        !           115: #define        PE_ERR_CONS     8       /*   Not a constructor form */
        !           116: #define        PE_ERR_TYPE     9       /*   Class/ID mismatch in constructor */
        !           117: #define        PE_ERR_OID      10      /*   Malformed object identifier */
        !           118: #define        PE_ERR_BITS     11      /*   Malformed bitstring */
        !           119: #define PE_ERR_NOSUPP  12      /* type not supported */
        !           120: 
        !           121:                                /* for the PSAP */
        !           122:     int            pe_context;         /* indirect reference */
        !           123: #define        PE_DFLT_CTX     0       /*   the default context */
        !           124: 
        !           125: #define        PE_ID_XTND      0x1f    /* distinguished ID for extension bits */
        !           126: #define        PE_ID_MORE      0x80    /* more to come flag */
        !           127: #define        PE_ID_MASK      0x7f    /* value in extension byte */
        !           128: #define        PE_ID_SHIFT     7
        !           129: 
        !           130: #define        PE_CLASS_MASK   0xc0    /* identifier class bits (8-7) */
        !           131: #define        PE_CLASS_SHIFT  6
        !           132: #define        PE_FORM_MASK    0x20    /* identifier form bit (6) */
        !           133: #define        PE_FORM_SHIFT   5
        !           134: #define        PE_CODE_MASK    0x1f    /* identifier code bits (5-1) + ... */
        !           135: #define        PE_CODE_SHIFT   0
        !           136: 
        !           137:     PElementClass      pe_class;
        !           138: #define        PE_CLASS_UNIV   0x0     /*   Universal */
        !           139: #define        PE_CLASS_APPL   0x1     /*   Application-wide */
        !           140: #define        PE_CLASS_CONT   0x2     /*   Context-specific */
        !           141: #define        PE_CLASS_PRIV   0x3     /*   Private-use */
        !           142: 
        !           143:     PElementForm       pe_form;
        !           144: #define        PE_FORM_PRIM    0x0     /*   PRIMitive */
        !           145: #define        PE_FORM_CONS    0x1     /*   CONStructor */
        !           146: #define        PE_FORM_ICONS   0x2     /*   internal: Inline CONStructor */
        !           147: 
        !           148:     PElementID pe_id;          /* should be extensible, 14 bits for now */
        !           149:                                /* Pseudo Types */
        !           150: #define        PE_UNIV_EOC     0x000   /*   End-of-contents */
        !           151: 
        !           152:                                /* Built-in Types */
        !           153: #define        PE_PRIM_BOOL    0x001   /*   Boolean */
        !           154: #define        PE_PRIM_INT     0x002   /*   Integer */
        !           155: #define        PE_PRIM_BITS    0x003   /*   Bitstring */
        !           156: #define        PE_PRIM_OCTS    0x004   /*   Octetstring */
        !           157: #define        PE_PRIM_NULL    0x005   /*   Null */
        !           158: #define        PE_PRIM_OID     0x006   /*   Object identifier */
        !           159: #define        PE_PRIM_ODE     0x007   /*   Object descriptor */
        !           160: #define        PE_CONS_EXTN    0x008   /*   External */
        !           161: #define PE_PRIM_REAL   0x009   /*   Real */
        !           162: #define PE_PRIM_ENUM   0x00a   /*   Enumerated type */
        !           163: #define PE_PRIM_ENCR   0x00b   /*   Encrypted */
        !           164: #define        PE_CONS_SEQ     0x010   /*   Sequence */
        !           165: #define        PE_CONS_SET     0x011   /*   Set */
        !           166: 
        !           167:                                /* Defined Types */
        !           168: #define        PE_DEFN_NUMS    0x012   /*   Numeric String */
        !           169: #define        PE_DEFN_PRTS    0x013   /*   Printable String */
        !           170: #define        PE_DEFN_T61S    0x014   /*   T.61 String */
        !           171: #define        PE_DEFN_VTXS    0x015   /*   Videotex String */
        !           172: #define        PE_DEFN_IA5S    0x016   /*   IA5 String */
        !           173: #define        PE_DEFN_UTCT    0x017   /*   UTC Time */
        !           174: #define        PE_DEFN_GENT    0x018   /*   Generalized Time */
        !           175: #define        PE_DEFN_GFXS    0x019   /*   Graphics string (ISO2375) */
        !           176: #define        PE_DEFN_VISS    0x01a   /*   Visible string */
        !           177: #define        PE_DEFN_GENS    0x01b   /*   General string */
        !           178: #define        PE_DEFN_CHRS    0x01c   /*   Character string */
        !           179: 
        !           180:     PElementLen        pe_len;
        !           181: #define        PE_LEN_XTND     0x80    /* long or indefinite form */
        !           182: #define        PE_LEN_SMAX     127     /* largest short form */
        !           183: #define        PE_LEN_MASK     0x7f    /* mask to get number of bytes in length */
        !           184: #define        PE_LEN_INDF     (-1)    /* indefinite length */
        !           185: 
        !           186:     PElementLen        pe_ilen;
        !           187: 
        !           188:     union {
        !           189:        PElementData     un_pe_prim;    /* PRIMitive value */
        !           190:        struct PElement *un_pe_cons;    /* CONStructor head */
        !           191:     }                       pe_un1;
        !           192: #define        pe_prim pe_un1.un_pe_prim
        !           193: #define        pe_cons pe_un1.un_pe_cons
        !           194: 
        !           195:     union {
        !           196:        int         un_pe_cardinal;     /* cardinality of list */
        !           197:        int         un_pe_nbits;        /* number of bits in string */
        !           198:     }                      pe_un2;
        !           199: #define        pe_cardinal     pe_un2.un_pe_cardinal
        !           200: #define        pe_nbits        pe_un2.un_pe_nbits
        !           201: 
        !           202:     int            pe_inline;          /* for "ultra-efficient" PElements */
        !           203:     char   *pe_realbase;       /*   .. */
        !           204: 
        !           205:     int            pe_offset;          /* offset of element in sequence */
        !           206: 
        !           207:     struct PElement *pe_next;
        !           208: 
        !           209:     int            pe_refcnt;          /* hack for ANYs in pepy */
        !           210: }                      PElement, *PE;
        !           211: #define        NULLPE  ((PE) 0)
        !           212: #define        NULLPEP ((PE *) 0)
        !           213: 
        !           214: #define        pe_seterr(pe, e, v)     ((pe) -> pe_errno = (e), (v))
        !           215: 
        !           216: 
        !           217: PE     pe_alloc ();
        !           218: int    pe_free ();
        !           219: int    pe_cmp ();
        !           220: PE     pe_cpy ();
        !           221: int    pe_pullup ();
        !           222: PE     pe_expunge ();
        !           223: int    pe_extract ();
        !           224: 
        !           225: PE     str2pe ();
        !           226: PE     qb2pe ();
        !           227: 
        !           228: extern int    pe_maxclass;
        !           229: extern char  *pe_classlist[];
        !           230: 
        !           231: extern int    pe_maxuniv;
        !           232: extern char  *pe_univlist[];
        !           233: 
        !           234: extern int    pe_maxappl;
        !           235: extern char **pe_applist;
        !           236: 
        !           237: extern int    pe_maxpriv;
        !           238: extern char **pe_privlist;
        !           239: 
        !           240: /*  */
        !           241: 
        !           242: typedef struct UTCtime {
        !           243:     int            ut_year;
        !           244:     int            ut_mon;
        !           245:     int            ut_mday;
        !           246:     int            ut_hour;
        !           247:     int            ut_min;
        !           248:     int            ut_sec;
        !           249: 
        !           250:     int            ut_usec;
        !           251: 
        !           252:     int            ut_zone;
        !           253: 
        !           254:     int            ut_flags;
        !           255: #define        UT_NULL         0x00
        !           256: #define        UT_ZONE         0x01
        !           257: #define        UT_SEC          0x02
        !           258: #define        UT_USEC         0x04
        !           259: }                      UTCtime, *UTC;
        !           260: #define        NULLUTC ((UTC) 0)
        !           261: 
        !           262: 
        !           263: void   tm2ut ();
        !           264: long   gtime ();
        !           265: struct tm *ut2tm ();
        !           266: 
        !           267: /*  */
        !           268: 
        !           269: extern char *psapversion;
        !           270: 
        !           271: 
        !           272: int    prim2flag ();
        !           273: PE     flag2prim ();
        !           274: #define        bool2prim(b)            flag2prim ((b), PE_CLASS_UNIV, PE_PRIM_BOOL)
        !           275: 
        !           276: int    prim2num ();
        !           277: PE     num2prim ();
        !           278: #define        int2prim(i)             num2prim ((i), PE_CLASS_UNIV, PE_PRIM_INT)
        !           279: 
        !           280: 
        !           281: #define        prim2enum(i)            prim2num((i))
        !           282: #define enum2prim(a,b,c)       num2prim((a), (b), (c))
        !           283: #define enumint2prim(i)                enum2prim ((i), PE_CLASS_UNIV, PE_PRIM_ENUM)
        !           284: 
        !           285: 
        !           286: /* psap REAL parameters - tons of 'em */
        !           287: #define PE_REAL_FLAGS  0300    /* flag bits of real */
        !           288: #define        PE_REAL_BINENC  0200    /* binary encoding */
        !           289: #define        PE_REAL_DECENC  0000    /* decimal encoding */
        !           290: #define        PE_REAL_SPECENC 0100    /* special encoding */
        !           291: 
        !           292: #define PE_REAL_B_S    0100    /* sign bit */
        !           293: #define PE_REAL_B_BASE 0060    /* base bits */
        !           294: #define        PE_REAL_B_B2    0000
        !           295: #define        PE_REAL_B_B8    0020
        !           296: #define        PE_REAL_B_B16   0040
        !           297: 
        !           298: #define PE_REAL_B_F    0014    /* factor bits */
        !           299: #define PE_REAL_B_EXP  0003    /* exponent type bits */
        !           300: #define                PE_REAL_B_EF1   0000
        !           301: #define        PE_REAL_B_EF2   0001
        !           302: #define                PE_REAL_B_EF3   0002
        !           303: #define                PE_REAL_B_EF4   0003
        !           304: 
        !           305: #define        PE_REAL_PLUSINF         0200
        !           306: #define PE_REAL_MINUSINF       0201
        !           307: 
        !           308: #ifndef HUGE
        !           309: #ifdef MAXFLOAT
        !           310: #define PE_REAL_INFINITY       MAXFLOAT
        !           311: #else
        !           312: #define        PE_REAL_INFINITY        99.e99
        !           313: #endif
        !           314: #else
        !           315: #define PE_REAL_INFINITY       HUGE
        !           316: #endif
        !           317: 
        !           318: double prim2real ();
        !           319: PE     real2prim ();
        !           320: #define double2prim(i)         real2prim ((i), PE_CLASS_UNIV, PE_PRIM_REAL)
        !           321: 
        !           322: 
        !           323: char   *prim2str ();
        !           324: PE     str2prim ();
        !           325: struct qbuf *prim2qb ();
        !           326: PE     qb2prim_aux ();         /* really should be qb2pe () */
        !           327: #define        qb2prim(q,c,i)          qb2prim_aux ((q), (c), (i), 0)
        !           328: #define        oct2prim(s,len)         str2prim ((s), (len), \
        !           329:                                            PE_CLASS_UNIV, PE_PRIM_OCTS)
        !           330: #define        ia5s2prim(s,len)        str2prim ((s), (len), \
        !           331:                                            PE_CLASS_UNIV, PE_DEFN_IA5S)
        !           332: #define        nums2prim(s,len)        str2prim ((s), (len), \
        !           333:                                            PE_CLASS_UNIV, PE_DEFN_NUMS)
        !           334: #define        prts2prim(s,len)        str2prim ((s), (len), \
        !           335:                                            PE_CLASS_UNIV, PE_DEFN_PRTS)
        !           336: #define        t61s2prim(s,len)        str2prim ((s), (len), \
        !           337:                                            PE_CLASS_UNIV, PE_DEFN_T61S)
        !           338: #define        vtxs2prim(s,len)        str2prim ((s), (len), \
        !           339:                                            PE_CLASS_UNIV, PE_DEFN_VTXS)
        !           340: #define        gfxs2prim(s,len)        str2prim ((s), (len), \
        !           341:                                            PE_CLASS_UNIV, PE_DEFN_GFXS)
        !           342: #define        viss2prim(s,len)        str2prim ((s), (len), \
        !           343:                                            PE_CLASS_UNIV, PE_DEFN_VISS)
        !           344: #define        gens2prim(s,len)        str2prim ((s), (len), \
        !           345:                                            PE_CLASS_UNIV, PE_DEFN_GENS)
        !           346: #define        chrs2prim(s,len)        str2prim ((s), (len), \
        !           347:                                            PE_CLASS_UNIV, PE_DEFN_CHRS)
        !           348: #define        ode2prim(s,len)         str2prim ((s), (len), \
        !           349:                                            PE_CLASS_UNIV, PE_PRIM_ODE)
        !           350: 
        !           351: PE     prim2bit ();
        !           352: PE     bit2prim ();
        !           353: 
        !           354: int    bit_on (), bit_off ();
        !           355: int    bit_test ();
        !           356: 
        !           357: OID    prim2oid ();
        !           358: PE     obj2prim ();
        !           359: #define        oid2prim(o)             obj2prim ((o), PE_CLASS_UNIV, PE_PRIM_OID)
        !           360: 
        !           361: UTC    prim2time ();
        !           362: #define        prim2utct(pe)           prim2time ((pe), 0)
        !           363: #define        prim2gent(pe)           prim2time ((pe), 1)
        !           364: PE     time2prim ();
        !           365: #define        utct2prim(u)            time2prim ((u), 0, PE_CLASS_UNIV, PE_DEFN_UTCT)
        !           366: #define        gent2prim(u)            time2prim ((u), 1, PE_CLASS_UNIV, PE_DEFN_GENT)
        !           367: char   *time2str ();
        !           368: #define        utct2str(u)             time2str ((u), 0)
        !           369: #define        gent2str(u)             time2str ((u), 1)
        !           370: UTC    str2utct (), str2gent ();
        !           371: 
        !           372: PE     prim2set ();
        !           373: #define        set2prim(pe)            (pe)
        !           374: int    set_add (), set_addon (), set_del ();
        !           375: PE     set_find ();
        !           376: #define        first_member(pe)        ((pe) -> pe_cons)
        !           377: #define        next_member(pe,p)       ((p) -> pe_next)
        !           378: 
        !           379: #define        prim2seq(pe)            (prim2set (pe))
        !           380: #define        seq2prim(pe)            (pe)
        !           381: int    seq_add (), seq_addon (), seq_del ();
        !           382: PE     seq_find ();
        !           383: 
        !           384: 
        !           385: char   *pe_error ();
        !           386: 
        !           387: /*  */
        !           388: 
        !           389: typedef struct {
        !           390:     int            ps_errno;           /* Error codes */
        !           391: #define        PS_ERR_NONE      0      /*   No error */
        !           392: #define        PS_ERR_OVERID    1      /*   Overflow in ID */
        !           393: #define        PS_ERR_OVERLEN   2      /*   Overflow in length */
        !           394: #define        PS_ERR_NMEM      3      /*   Out of memory */
        !           395: #define        PS_ERR_EOF       4      /*   End of file */
        !           396: #define        PS_ERR_EOFID     5      /*   End of file reading extended ID */
        !           397: #define        PS_ERR_EOFLEN    6      /*   End of file reading extended length */
        !           398: #define        PS_ERR_LEN       7      /*   Length mismatch */
        !           399: #define        PS_ERR_TRNC      8      /*   Truncated */
        !           400: #define        PS_ERR_INDF      9      /*   Indefinite length in primitive form */
        !           401: #define        PS_ERR_IO       10      /*   I/O error */
        !           402: #define        PS_ERR_XXX      11      /*   XXX */
        !           403: 
        !           404:     union {
        !           405:        caddr_t un_ps_addr;
        !           406:        struct {
        !           407:            char   *st_ps_base;
        !           408:            int     st_ps_cnt;
        !           409:            char   *st_ps_ptr;
        !           410:            int     st_ps_bufsiz;
        !           411:        }                       un_ps_st;
        !           412:        struct {
        !           413:            struct udvec *uv_ps_head;
        !           414:            struct udvec *uv_ps_cur;
        !           415:            struct udvec *uv_ps_end;
        !           416:            int     uv_ps_elems;
        !           417:            int     uv_ps_slop;
        !           418:            int     uv_ps_cc;
        !           419:        }                       un_ps_uv;
        !           420:     }                       ps_un;
        !           421: #define        ps_addr ps_un.un_ps_addr
        !           422: #define        ps_base ps_un.un_ps_st.st_ps_base
        !           423: #define        ps_cnt  ps_un.un_ps_st.st_ps_cnt
        !           424: #define        ps_ptr  ps_un.un_ps_st.st_ps_ptr
        !           425: #define        ps_bufsiz       ps_un.un_ps_st.st_ps_bufsiz
        !           426: #define        ps_head ps_un.un_ps_uv.uv_ps_head
        !           427: #define        ps_cur  ps_un.un_ps_uv.uv_ps_cur
        !           428: #define        ps_end  ps_un.un_ps_uv.uv_ps_end
        !           429: #define        ps_elems        ps_un.un_ps_uv.uv_ps_elems
        !           430: #define        ps_slop ps_un.un_ps_uv.uv_ps_slop
        !           431: #define        ps_cc   ps_un.un_ps_uv.uv_ps_cc
        !           432: 
        !           433:     caddr_t ps_extra;          /* for George's recursive PStreams */
        !           434: 
        !           435:     int            ps_inline;          /* for "ultra-efficient" PStreams */
        !           436: 
        !           437:     int            ps_scratch;         /* XXX */
        !           438: 
        !           439:     int            ps_byteno;          /* byte position */
        !           440: 
        !           441:     IFP            ps_primeP;
        !           442:     IFP            ps_readP;
        !           443:     IFP            ps_writeP;
        !           444:     IFP            ps_flushP;
        !           445:     IFP            ps_closeP;
        !           446: }                      PStream, *PS;
        !           447: #define        NULLPS  ((PS) 0)
        !           448: 
        !           449: #define        ps_seterr(ps, e, v)     ((ps) -> ps_errno = (e), (v))
        !           450: 
        !           451: 
        !           452: PS     ps_alloc ();
        !           453: void   ps_free ();
        !           454: 
        !           455: int    ps_io ();
        !           456: #define        ps_read(ps, data, cc)   ps_io ((ps), (ps) -> ps_readP, (data), (cc), 0)
        !           457: #define        ps_write(ps, data, cc)  ps_write_aux ((ps), (data), (cc), 0)
        !           458: #define        ps_write_aux(ps, data, cc, inline) \
        !           459:        ps_io ((ps), (ps) -> ps_writeP, (data), (cc), (inline))
        !           460: 
        !           461: int    ps_flush ();
        !           462: 
        !           463: int    std_open ();
        !           464: #define        std_setup(ps, fp)       ((ps) -> ps_addr = (caddr_t) (fp), OK)
        !           465: 
        !           466: int    str_open ();
        !           467: int    str_setup ();
        !           468: 
        !           469: int    dg_open ();
        !           470: int    dg_setup ();
        !           471: 
        !           472: int    fdx_open ();
        !           473: int    fdx_setup ();
        !           474: 
        !           475: int    qbuf_open ();
        !           476: #define        qbuf_setup(ps, qb)      ((ps) -> ps_addr = (caddr_t) (qb), OK)
        !           477: 
        !           478: #define        ts_open dg_open
        !           479: #define        ts_setup(p,f,s)         dg_setup ((p), (f), (s), ts_read, ts_write)
        !           480: int    ts_read (), ts_write ();
        !           481: 
        !           482: int    uvec_open ();
        !           483: int    uvec_setup ();
        !           484: 
        !           485: 
        !           486: #define        ps2pe(ps)               ps2pe_aux ((ps), 1, 1)
        !           487: PE     ps2pe_aux ();
        !           488: #define        pe2ps(ps, pe)           pe2ps_aux ((ps), (pe), 1)
        !           489: int    pe2ps_aux ();
        !           490: 
        !           491: 
        !           492: PE     pl2pe ();
        !           493: int    pe2pl ();
        !           494: 
        !           495: 
        !           496: extern int    ps_len_strategy;
        !           497: #define        PS_LEN_SPAG     0
        !           498: #define        PS_LEN_INDF     1
        !           499: #define        PS_LEN_LONG     2
        !           500: 
        !           501: int    ps_get_abs ();
        !           502: 
        !           503: 
        !           504: char   *ps_error ();
        !           505: 
        !           506: /*  */
        !           507: 
        !           508: struct isobject {
        !           509:     char   *io_descriptor;
        !           510: 
        !           511:     OIDentifier io_identity;
        !           512: };
        !           513: 
        !           514: int    setisobject (), endisobject ();
        !           515: 
        !           516: struct isobject *getisobject ();
        !           517: 
        !           518: struct isobject *getisobjectbyname ();
        !           519: struct isobject *getisobjectbyoid ();
        !           520: 
        !           521: /*  */
        !           522: 
        !           523: PE     qbuf2pe ();
        !           524: char   *qb2str ();
        !           525: struct qbuf *str2qb ();
        !           526: int    qb_free ();
        !           527: 
        !           528: int    pe2ssdu ();
        !           529: PE     ssdu2pe ();
        !           530: 
        !           531: void   pe2text (), text2pe ();
        !           532: 
        !           533: int    pe2uvec ();
        !           534: 
        !           535: char   *int2strb ();
        !           536: int    strb2int ();
        !           537: 
        !           538: PE     strb2bitstr ();
        !           539: char   *bitstr2strb ();
        !           540: 
        !           541: /*  */
        !           542: 
        !           543: extern char PY_pepy[];
        !           544: 
        !           545: void   PY_advise ();
        !           546: int    PY_pp ();
        !           547: 
        !           548: int    testdebug ();
        !           549: 
        !           550: int    vpush (), vpop ();
        !           551: int    vname (), vtag ();
        !           552: int    vprint ();
        !           553: int    vstring (), vunknown ();
        !           554: 
        !           555: char   *bit2str ();
        !           556: 
        !           557: int    vpushfp (), vpopfp ();
        !           558: 
        !           559: int    vpushstr (), vpopstr ();
        !           560: 
        !           561: int    vpushpp (), vpopp ();
        !           562: 
        !           563: #ifdef PEPSY_VERSION
        !           564: /* handle calls to the vunknown print routine */
        !           565: #define vunknown_P     0, ((modtyp *) 0)
        !           566: 
        !           567: /*
        !           568:  * vpdu now comes out of the closet as a real pepsy function "pvpdu" we
        !           569:  * keep the #define for vpdu for backwards compatiability of other peoples'
        !           570:  * code
        !           571:  */
        !           572: #ifdef __STDC__
        !           573: #define        vpdu(lp,fnx,pe,text,rw) \
        !           574: { \
        !           575:     pvpdu ((lp), fnx##_P, (pe), (text), (rw)); \
        !           576: }
        !           577: #else   /* __STDC__ */
        !           578: #define        vpdu(lp,fnx,pe,text,rw) \
        !           579: { \
        !           580:     pvpdu ((lp), fnx/**/_P, (pe), (text), (rw)); \
        !           581: }
        !           582: #endif /* __STDC__ */
        !           583: 
        !           584: #else
        !           585:        /* Backwards compatibility with posy/pepy */
        !           586: #define vpdu(lp,fnx,pe,text,rw) \
        !           587: { \
        !           588:     int    fnx (); \
        !           589:  \
        !           590:     _vpdu ((lp), fnx, (pe), (text), (rw)); \
        !           591: }
        !           592: 
        !           593: int     _vpdu ();
        !           594: #endif
        !           595: 
        !           596: /* pepy string definitions */
        !           597: extern char *pepy_strings[];
        !           598: 
        !           599: #define         PEPY_ERR_BAD                   (pepy_strings[0])
        !           600: #define         PEPY_ERR_BAD_BITS              (pepy_strings[1])
        !           601: #define         PEPY_ERR_BAD_BOOLEAN           (pepy_strings[2])
        !           602: #define         PEPY_ERR_BAD_CLASS             (pepy_strings[3])
        !           603: #define         PEPY_ERR_BAD_CLASS_FORM_ID     (pepy_strings[4])
        !           604: #define         PEPY_ERR_BAD_FORM              (pepy_strings[5])
        !           605: #define         PEPY_ERR_BAD_INTEGER           (pepy_strings[6])
        !           606: #define         PEPY_ERR_BAD_OID               (pepy_strings[7])
        !           607: #define         PEPY_ERR_BAD_OCTET             (pepy_strings[8])
        !           608: #define         PEPY_ERR_BAD_REAL              (pepy_strings[9])
        !           609: #define         PEPY_ERR_BAD_SEQ               (pepy_strings[10])
        !           610: #define         PEPY_ERR_BAD_SET               (pepy_strings[11])
        !           611: #define         PEPY_ERR_TOO_MANY_BITS         (pepy_strings[12])
        !           612: #define         PEPY_ERR_TOO_MANY_ELEMENTS     (pepy_strings[13])
        !           613: #define         PEPY_ERR_UNKNOWN_CHOICE        (pepy_strings[14])
        !           614: #define         PEPY_ERR_UNK_COMP              (pepy_strings[15])
        !           615: #define         PEPY_ERR_INIT_FAILED           (pepy_strings[16])
        !           616: #define         PEPY_ERR_INVALID_CHOICE        (pepy_strings[17])
        !           617: #define         PEPY_ERR_MISSING               (pepy_strings[18])
        !           618: #define         PEPY_ERR_NOMEM                 (pepy_strings[19])
        !           619: #define         PEPY_ERR_TOO_MANY_TAGGED       (pepy_strings[20])
        !           620: #define         PEPY_ERR_EXTRA_MEMBERS         (pepy_strings[21])
        !           621: 
        !           622: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.