Annotation of researchv9/jerq/sgs/libld/ldaopen.c, revision 1.1.1.1

1.1       root        1: #include    <stdio.h>
                      2: #include    "filehdr.h"
                      3: #include    "ldfcn.h"
                      4: 
                      5: LDFILE *
                      6: ldaopen(filename, oldptr)
                      7:        char *filename;
                      8:        LDFILE *oldptr; 
                      9: {
                     10:        extern FILE *fopen();
                     11:        extern int vldldptr();
                     12:        extern LDFILE *allocldptr();
                     13:        extern int freeldptr();
                     14:        FILE *ioptr;
                     15:        LDFILE *nldptr;
                     16: 
                     17:        if (vldldptr(oldptr) == FAILURE || (nldptr = allocldptr()) == NULL)
                     18:                return (NULL);
                     19:        if ((ioptr = fopen(filename, "r")) == NULL)
                     20:        {
                     21:                freeldptr(nldptr);
                     22:                return (NULL);
                     23:        }
                     24:        IOPTR(nldptr) = ioptr;
                     25:        OFFSET(nldptr) = OFFSET(oldptr);
                     26:        TYPE(nldptr) = TYPE(oldptr);
                     27:        hdrassign(oldptr, nldptr);
                     28:        nldptr->_fnum_ = oldptr->_fnum_;        /* use same string table */
                     29:        return (nldptr);
                     30: }
                     31: 
                     32: 
                     33: 
                     34: static int
                     35: hdrassign(oldptr, nldptr)
                     36:        LDFILE *oldptr;
                     37:        LDFILE *nldptr;
                     38: {
                     39:        (HEADER(nldptr)).f_magic = (HEADER(oldptr)).f_magic;
                     40:        (HEADER(nldptr)).f_nscns = (HEADER(oldptr)).f_nscns;
                     41:        (HEADER(nldptr)).f_timdat = (HEADER(oldptr)).f_timdat;
                     42:        (HEADER(nldptr)).f_symptr = (HEADER(oldptr)).f_symptr;
                     43:        (HEADER(nldptr)).f_nsyms = (HEADER(oldptr)).f_nsyms;
                     44:        (HEADER(nldptr)).f_opthdr = (HEADER(oldptr)).f_opthdr;
                     45:        (HEADER(nldptr)).f_flags = (HEADER(oldptr)).f_flags;
                     46:        return;
                     47: }
                     48: 
                     49: static char ID[] = "@(#) ldaopen.c: 1.2 2/16/83";

unix.superglobalmegacorp.com

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