Annotation of researchv9/jerq/sgs/inc/ldfcn.h, revision 1.1

1.1     ! root        1: /*
        !             2:  * static char ID_ldfcnh[] = "@(#) ldfcn.h: 1.3 5/1/83";
        !             3:  */
        !             4: 
        !             5: /*
        !             6:  *     The following two declarations appear in the IH versions of
        !             7:  *     "stdio.h" but do not appear in the normal 1.2 versions.
        !             8:  */
        !             9: 
        !            10: long ftell();
        !            11: char *fgets();
        !            12: 
        !            13: #ifndef LDFILE
        !            14: struct ldfile {
        !            15:        int     _fnum_;         /* so each instance of an LDFILE is unique */
        !            16:        FILE    *ioptr;         /* system I/O pointer value */
        !            17:        long    offset;         /* absolute offset to the start of the file */
        !            18:        FILHDR  header;         /* the file header of the opened file */
        !            19:        unsigned short  type;           /* indicator of the type of the file */
        !            20: };
        !            21: 
        !            22: 
        !            23: /*
        !            24:        provide a structure "type" definition, and the associated
        !            25:        "attributes"
        !            26: */
        !            27: 
        !            28: #define        LDFILE          struct ldfile
        !            29: #define IOPTR(x)       x->ioptr
        !            30: #define OFFSET(x)      x->offset
        !            31: #define TYPE(x)                x->type
        !            32: #define        HEADER(x)       x->header
        !            33: #define LDFSZ          sizeof(LDFILE)
        !            34: 
        !            35: /*
        !            36:        define various values of TYPE(ldptr)
        !            37: */
        !            38: 
        !            39: #define LDTYPE B16MAGIC    /* defined in terms of the filehdr.h include file */
        !            40: #define TVTYPE TVMAGIC         /* ditto */
        !            41: #if u3b5
        !            42: #define USH_ARTYPE     ARTYPE
        !            43: #else
        !            44: #define USH_ARTYPE     (unsigned short) ARTYPE
        !            45: #endif
        !            46: #if defined(PORTAR) || defined(PORT5AR)
        !            47: #define ARTYPE         0177545
        !            48: #else
        !            49: #define ARTYPE ARMAG
        !            50: #endif
        !            51: 
        !            52: /*
        !            53:        define symbolic positioning information for FSEEK (and fseek)
        !            54: */
        !            55: 
        !            56: #define BEGINNING      0
        !            57: #define CURRENT                1
        !            58: #define END            2
        !            59: 
        !            60: /*
        !            61:        define a structure "type" for an archive header
        !            62: */
        !            63: 
        !            64: #if defined(PORTAR) || defined(PORT5AR)
        !            65: typedef struct
        !            66: {
        !            67:        char ar_name[16];
        !            68:        long ar_date;
        !            69:        int ar_uid;
        !            70:        int ar_gid;
        !            71:        long ar_mode;
        !            72:        long ar_size;
        !            73: } archdr;
        !            74: 
        !            75: #define        ARCHDR  archdr
        !            76: #else
        !            77: #define        ARCHDR  struct ar_hdr   /* ARCHIVE is defined in ts.h */
        !            78: #endif
        !            79: #define ARCHSZ sizeof(ARCHDR)
        !            80: 
        !            81: 
        !            82: /*
        !            83:        define some useful symbolic constants
        !            84: */
        !            85: 
        !            86: #define SYMTBL 0       /* section nnumber and/or section name of the Symbol Table */
        !            87: 
        !            88: #define        SUCCESS  1
        !            89: #define        CLOSED   1
        !            90: #define        FAILURE  0
        !            91: #define        NOCLOSE  0
        !            92: #define        BADINDEX        -1L
        !            93: 
        !            94: #define        OKFSEEK 0
        !            95: 
        !            96: /*
        !            97:        define macros to permit the direct use of LDFILE pointers with the
        !            98:        standard I/O library procedures
        !            99: */
        !           100: 
        !           101: LDFILE *ldopen();
        !           102: LDFILE *ldaopen();
        !           103: 
        !           104: #define GETC(ldptr)    getc(IOPTR(ldptr))
        !           105: #define GETW(ldptr)    getw(IOPTR(ldptr))
        !           106: #define FEOF(ldptr)    feof(IOPTR(ldptr))
        !           107: #define FERROR(ldptr)  ferror(IOPTR(ldptr))
        !           108: #define FGETC(ldptr)   fgetc(IOPTR(ldptr))
        !           109: #define FGETS(s,n,ldptr)       fgets(s,n,IOPTR(ldptr))
        !           110: #define FILENO(ldptr)  fileno(IOPTR(ldptr))
        !           111: #define FREAD(p,s,n,ldptr)     fread(p,s,n,IOPTR(ldptr))
        !           112: #define FSEEK(ldptr,o,p)       fseek(IOPTR(ldptr),(p==BEGINNING)?(OFFSET(ldptr)+o):o,p)
        !           113: #define FTELL(ldptr)   ftell(IOPTR(ldptr))
        !           114: #define FWRITE(p,s,n,ldptr)       fwrite(p,s,n,IOPTR(ldptr))
        !           115: #define REWIND(ldptr)  rewind(IOPTR(ldptr))
        !           116: #define SETBUF(ldptr,b)        setbuf(IOPTR(ldptr),b)
        !           117: #define UNGETC(c,ldptr)                ungetc(c,IOPTR(ldptr))
        !           118: #define STROFFSET(ldptr)       (HEADER(ldptr).f_symptr + HEADER(ldptr).f_nsyms * 18) /* 18 == SYMESZ */
        !           119: #endif

unix.superglobalmegacorp.com

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