Annotation of researchv10dc/630/3binc/ldfcn.h, revision 1.1.1.1

1.1       root        1: #ident "@(#)/usr/include/ldfcn.h.sl 1.2 4.1 09/02/86 39906 AT&T-SF"
                      2: 
                      3: #ifndef LDFILE
                      4: struct ldfile {
                      5:        int     _fnum_;         /* so each instance of an LDFILE is unique */
                      6:        FILE    *ioptr;         /* system I/O pointer value */
                      7:        long    offset;         /* absolute offset to the start of the file */
                      8:        FILHDR  header;         /* the file header of the opened file */
                      9:        unsigned short  type;           /* indicator of the type of the file */
                     10: };
                     11: 
                     12: 
                     13: /*
                     14:        provide a structure "type" definition, and the associated
                     15:        "attributes"
                     16: */
                     17: 
                     18: #define        LDFILE          struct ldfile
                     19: #define IOPTR(x)       x->ioptr
                     20: #define OFFSET(x)      x->offset
                     21: #define TYPE(x)                x->type
                     22: #define        HEADER(x)       x->header
                     23: #define LDFSZ          sizeof(LDFILE)
                     24: 
                     25: /*
                     26:        define various values of TYPE(ldptr)
                     27: */
                     28: 
                     29: #define ARTYPE         0177545
                     30: 
                     31: /*
                     32:        define symbolic positioning information for FSEEK (and fseek)
                     33: */
                     34: 
                     35: #define BEGINNING      0
                     36: #define CURRENT                1
                     37: #define END            2
                     38: 
                     39: /*
                     40:        define a structure "type" for an archive header
                     41: */
                     42: 
                     43: typedef struct
                     44: {
                     45:        char ar_name[16];
                     46:        long ar_date;
                     47:        int ar_uid;
                     48:        int ar_gid;
                     49:        long ar_mode;
                     50:        long ar_size;
                     51: } archdr;
                     52: 
                     53: #define        ARCHDR  archdr
                     54: #define ARCHSZ sizeof(ARCHDR)
                     55: 
                     56: 
                     57: /*
                     58:        define some useful symbolic constants
                     59: */
                     60: 
                     61: #define SYMTBL 0       /* section nnumber and/or section name of the Symbol Table */
                     62: 
                     63: #define        SUCCESS  1
                     64: #define        CLOSED   1
                     65: #define        FAILURE  0
                     66: #define        NOCLOSE  0
                     67: #define        BADINDEX        -1L
                     68: 
                     69: #define        OKFSEEK 0
                     70: 
                     71: /*
                     72:        define macros to permit the direct use of LDFILE pointers with the
                     73:        standard I/O library procedures
                     74: */
                     75: 
                     76: LDFILE *ldopen();
                     77: LDFILE *ldaopen();
                     78: 
                     79: #define GETC(ldptr)    getc(IOPTR(ldptr))
                     80: #define GETW(ldptr)    getw(IOPTR(ldptr))
                     81: #define FEOF(ldptr)    feof(IOPTR(ldptr))
                     82: #define FERROR(ldptr)  ferror(IOPTR(ldptr))
                     83: #define FGETC(ldptr)   fgetc(IOPTR(ldptr))
                     84: #define FGETS(s,n,ldptr)       fgets(s,n,IOPTR(ldptr))
                     85: #define FILENO(ldptr)  fileno(IOPTR(ldptr))
                     86: #define FREAD(p,s,n,ldptr)     fread(p,s,n,IOPTR(ldptr))
                     87: #define FSEEK(ldptr,o,p)       fseek(IOPTR(ldptr),(p==BEGINNING)?(OFFSET(ldptr)+o):o,p)
                     88: #define FTELL(ldptr)   ftell(IOPTR(ldptr))
                     89: #define FWRITE(p,s,n,ldptr)       fwrite(p,s,n,IOPTR(ldptr))
                     90: #define REWIND(ldptr)  rewind(IOPTR(ldptr))
                     91: #define SETBUF(ldptr,b)        setbuf(IOPTR(ldptr),b)
                     92: #define UNGETC(c,ldptr)                ungetc(c,IOPTR(ldptr))
                     93: #define STROFFSET(ldptr)       (HEADER(ldptr).f_symptr + HEADER(ldptr).f_nsyms * 18) /* 18 == SYMESZ */
                     94: #endif

unix.superglobalmegacorp.com

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