ftp.nice.ch/pub/next/developer/languages/T/T.3.1.N.bs.tar.gz#/T3.1/tsystem/dynload.c

This is dynload.c in view mode; [Download] [Up]

/*
 *			D Y N L O A D . C 
 *
 * This file contains functions to help dynamically load foreign UNIX files
 * into a running T process.
 *
 * written by Dorab Patel <dorab@neptune.cs.ucla.edu>
 * December 24, 1986
 * Copyright Dorab Patel (C) 1986
 * Permission is given to distribute this software free to anyone
 * using it for a non-commercial purpose. Comments/bug reports/fixes
 * are encouraged.
 *
 * $Revision: 1.1 $
 *
 * $Log:	dynload.c,v $
 * Revision 1.1  86/12/24  18:20:44  dorab
 * Broken Revision
 * 
 */

#include <nlist.h>
#define N_TEXT 0x4

int loadhelp(objFile, relocFile, tmpFile, libString, otherString)
char *objFile, *relocFile, *tmpFile, *libString, *otherString;
{
  return -1;			/* Always return error. */
}

/*
 * return the address of the function functionName in the namelist 
 * of the file fileName.
 * the calling procedure had better make sure that fileName exists.
 */
unsigned long
nlistone(fileName,functionName)
char *fileName, *functionName;
{
  struct nlist nl[2];
  int rc;

  nl[1].n_un.n_name = '\0';	/* terminate the name list */
  nl[0].n_un.n_name = functionName; /* put the function name in */
  rc = nlist(fileName,nl);	/* call nlist */
  if (rc < 0 || (nl[0].n_type == (unsigned char) 0 /* check for errors */
		 && nl[0].n_value == (unsigned long) 0))
    return ((unsigned long) 0);
  if (nl[0].n_type & N_TEXT)	/* if it is in the text segment i.e. is a function */
    return(nl[0].n_value);	/* return the address */
  else
    return ((unsigned long) 0); /* not a function */
}

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.