Annotation of researchv9/jerq/sgs/inc/ldfcn.h, revision 1.1.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.