📄 psap.h
字号:
PE str2prim ();struct qbuf *prim2qb ();PE qb2prim_aux (); /* really should be qb2pe () */#define qb2prim(q,c,i) qb2prim_aux ((q), (c), (i), 0)#define oct2prim(s,len) str2prim ((s), (len), \ PE_CLASS_UNIV, PE_PRIM_OCTS)#define ia5s2prim(s,len) str2prim ((s), (len), \ PE_CLASS_UNIV, PE_DEFN_IA5S)#define nums2prim(s,len) str2prim ((s), (len), \ PE_CLASS_UNIV, PE_DEFN_NUMS)#define prts2prim(s,len) str2prim ((s), (len), \ PE_CLASS_UNIV, PE_DEFN_PRTS)#define t61s2prim(s,len) str2prim ((s), (len), \ PE_CLASS_UNIV, PE_DEFN_T61S)#define vtxs2prim(s,len) str2prim ((s), (len), \ PE_CLASS_UNIV, PE_DEFN_VTXS)#define gfxs2prim(s,len) str2prim ((s), (len), \ PE_CLASS_UNIV, PE_DEFN_GFXS)#define viss2prim(s,len) str2prim ((s), (len), \ PE_CLASS_UNIV, PE_DEFN_VISS)#define gens2prim(s,len) str2prim ((s), (len), \ PE_CLASS_UNIV, PE_DEFN_GENS)#define chrs2prim(s,len) str2prim ((s), (len), \ PE_CLASS_UNIV, PE_DEFN_CHRS)#define ode2prim(s,len) str2prim ((s), (len), \ PE_CLASS_UNIV, PE_PRIM_ODE)PE prim2bit ();PE bit2prim ();int bit_on (), bit_off ();int bit_test ();OID prim2oid ();PE obj2prim ();#define oid2prim(o) obj2prim ((o), PE_CLASS_UNIV, PE_PRIM_OID)UTC prim2time ();#define prim2utct(pe) prim2time ((pe), 0)#define prim2gent(pe) prim2time ((pe), 1)PE time2prim ();#define utct2prim(u) time2prim ((u), 0, PE_CLASS_UNIV, PE_DEFN_UTCT)#define gent2prim(u) time2prim ((u), 1, PE_CLASS_UNIV, PE_DEFN_GENT)char *time2str ();#define utct2str(u) time2str ((u), 0)#define gent2str(u) time2str ((u), 1)UTC str2utct (), str2gent ();PE prim2set ();#define set2prim(pe) (pe)int set_add (), set_addon (), set_del ();PE set_find ();#define first_member(pe) ((pe) -> pe_cons)#define next_member(pe,p) ((p) -> pe_next)#define prim2seq(pe) (prim2set (pe))#define seq2prim(pe) (pe)int seq_add (), seq_addon (), seq_del ();PE seq_find ();char *pe_error ();/* */#ifdef SVR4_UCB#ifdef PS /* ucb define PS in sys/sparc/reg.h for "portability" !?! */#undef PS#endif#endiftypedef struct { int ps_errno; /* Error codes */#define PS_ERR_NONE 0 /* No error */#define PS_ERR_OVERID 1 /* Overflow in ID */#define PS_ERR_OVERLEN 2 /* Overflow in length */#define PS_ERR_NMEM 3 /* Out of memory */#define PS_ERR_EOF 4 /* End of file */#define PS_ERR_EOFID 5 /* End of file reading extended ID */#define PS_ERR_EOFLEN 6 /* End of file reading extended length */#define PS_ERR_LEN 7 /* Length mismatch */#define PS_ERR_TRNC 8 /* Truncated */#define PS_ERR_INDF 9 /* Indefinite length in primitive form */#define PS_ERR_IO 10 /* I/O error */#define PS_ERR_EXTRA 11 /* Extraneous octets */#define PS_ERR_XXX 12 /* XXX */ union { caddr_t un_ps_addr; struct { char *st_ps_base; int st_ps_cnt; char *st_ps_ptr; int st_ps_bufsiz; } un_ps_st; struct { struct udvec *uv_ps_head; struct udvec *uv_ps_cur; struct udvec *uv_ps_end; int uv_ps_elems; int uv_ps_slop; int uv_ps_cc; } un_ps_uv; } ps_un;#define ps_addr ps_un.un_ps_addr#define ps_base ps_un.un_ps_st.st_ps_base#define ps_cnt ps_un.un_ps_st.st_ps_cnt#define ps_ptr ps_un.un_ps_st.st_ps_ptr#define ps_bufsiz ps_un.un_ps_st.st_ps_bufsiz#define ps_head ps_un.un_ps_uv.uv_ps_head#define ps_cur ps_un.un_ps_uv.uv_ps_cur#define ps_end ps_un.un_ps_uv.uv_ps_end#define ps_elems ps_un.un_ps_uv.uv_ps_elems#define ps_slop ps_un.un_ps_uv.uv_ps_slop#define ps_cc ps_un.un_ps_uv.uv_ps_cc caddr_t ps_extra; /* for George's recursive PStreams */ int ps_inline; /* for "ultra-efficient" PStreams */ int ps_scratch; /* XXX */ int ps_byteno; /* byte position */ IFP ps_primeP; IFP ps_readP; IFP ps_writeP; IFP ps_flushP; IFP ps_closeP;} PStream, *PS;#define NULLPS ((PS) 0)#define ps_seterr(ps, e, v) ((ps) -> ps_errno = (e), (v))PS ps_alloc ();void ps_free ();int ps_io ();#define ps_read(ps, data, cc) ps_io ((ps), (ps) -> ps_readP, (data), (cc), 0)#define ps_write(ps, data, cc) ps_write_aux ((ps), (data), (cc), 0)#define ps_write_aux(ps, data, cc, in_line) \ ps_io ((ps), (ps) -> ps_writeP, (data), (cc), (in_line))int ps_flush ();int std_open ();#define std_setup(ps, fp) ((ps) -> ps_addr = (caddr_t) (fp), OK)int str_open ();int str_setup ();int dg_open ();int dg_setup ();int fdx_open ();int fdx_setup ();int qbuf_open ();#define qbuf_setup(ps, qb) ((ps) -> ps_addr = (caddr_t) (qb), OK)#define ts_open dg_open#define ts_setup(p,f,s) dg_setup ((p), (f), (s), ts_read, ts_write)int ts_read (), ts_write ();int uvec_open ();int uvec_setup ();#define ps2pe(ps) ps2pe_aux ((ps), 1, 1)PE ps2pe_aux ();#define pe2ps(ps, pe) pe2ps_aux ((ps), (pe), 1)int pe2ps_aux ();PE pl2pe ();int pe2pl ();extern int ps_len_strategy;#define PS_LEN_SPAG 0#define PS_LEN_INDF 1#define PS_LEN_LONG 2int ps_get_abs ();char *ps_error ();/* */struct isobject { char *io_descriptor; OIDentifier io_identity;};int setisobject (), endisobject ();struct isobject *getisobject ();struct isobject *getisobjectbyname ();struct isobject *getisobjectbyoid ();/* */extern int Len;extern char *Qcp;extern char *Ecp;int pe2qb_f ();extern int Byteno;extern int Qbrefs;extern struct qbuf *Hqb;extern struct qbuf *Fqb;extern struct qbuf *Qb;#define qbuf2pe(qb, len, result) (Byteno = 0, Hqb = qb, \ Fqb = (Qb = (qb) -> qb_forw), \ qbuf2pe_f (result))PE qbuf2pe_f ();char *qb2str ();struct qbuf *str2qb ();int qb_free ();int pe2ssdu ();PE ssdu2pe ();void pe2text (), text2pe ();int pe2uvec ();char *int2strb ();int strb2int ();PE strb2bitstr ();char *bitstr2strb ();/* */extern char PY_pepy[];void PY_advise ();int PY_pp ();int testdebug ();int vpush (), vpop ();int vname (), vtag ();int vprint ();int vstring (), vunknown ();char *bit2str ();int vpushfp (), vpopfp ();int vpushstr (), vpopstr ();int vpushpp (), vpopp ();#ifdef PEPSY_VERSION/* handle calls to the vunknown print routine */#define vunknown_P 0, ((modtyp *) 0)/* * vpdu now comes out of the closet as a real pepsy function "pvpdu" we * keep the #define for vpdu for backwards compatiability of other peoples' * code */#ifdef __STDC__#define vpdu(lp,fnx,pe,text,rw) \{ \ pvpdu ((lp), fnx##_P, (pe), (text), (rw)); \}#else /* __STDC__ */#define vpdu(lp,fnx,pe,text,rw) \{ \ pvpdu ((lp), fnx/**/_P, (pe), (text), (rw)); \}#endif /* __STDC__ */#else /* Backwards compatibility with posy/pepy */#define vpdu(lp,fnx,pe,text,rw) \{ \ int fnx (); \ \ _vpdu ((lp), fnx, (pe), (text), (rw)); \}int _vpdu ();#endif/* pepy string definitions */extern char *pepy_strings[];#define PEPY_ERR_BAD (pepy_strings[0])#define PEPY_ERR_BAD_BITS (pepy_strings[1])#define PEPY_ERR_BAD_BOOLEAN (pepy_strings[2])#define PEPY_ERR_BAD_CLASS (pepy_strings[3])#define PEPY_ERR_BAD_CLASS_FORM_ID (pepy_strings[4])#define PEPY_ERR_BAD_FORM (pepy_strings[5])#define PEPY_ERR_BAD_INTEGER (pepy_strings[6])#define PEPY_ERR_BAD_OID (pepy_strings[7])#define PEPY_ERR_BAD_OCTET (pepy_strings[8])#define PEPY_ERR_BAD_REAL (pepy_strings[9])#define PEPY_ERR_BAD_SEQ (pepy_strings[10])#define PEPY_ERR_BAD_SET (pepy_strings[11])#define PEPY_ERR_TOO_MANY_BITS (pepy_strings[12])#define PEPY_ERR_TOO_MANY_ELEMENTS (pepy_strings[13])#define PEPY_ERR_UNKNOWN_CHOICE (pepy_strings[14])#define PEPY_ERR_UNK_COMP (pepy_strings[15])#define PEPY_ERR_INIT_FAILED (pepy_strings[16])#define PEPY_ERR_INVALID_CHOICE (pepy_strings[17])#define PEPY_ERR_MISSING (pepy_strings[18])#define PEPY_ERR_NOMEM (pepy_strings[19])#define PEPY_ERR_TOO_MANY_TAGGED (pepy_strings[20])#define PEPY_ERR_EXTRA_MEMBERS (pepy_strings[21])#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -