2 * Copyright (c) 1996 Barton P. Miller
4 * We provide the Paradyn Parallel Performance Tools (below
5 * described as Paradyn") on an AS IS basis, and do not warrant its
6 * validity or performance. We reserve the right to update, modify,
7 * or discontinue this software at any time. We shall have no
8 * obligation to supply such updates or modifications or any other
9 * form of support to you.
11 * This license is for research uses. For such uses, there is no
12 * charge. We define "research use" to mean you may freely use it
13 * inside your organization for whatever purposes you see fit. But you
14 * may not re-distribute Paradyn or parts of Paradyn, in any form
15 * source or binary (including derivatives), electronic or otherwise,
16 * to any other organization or entity without our permission.
18 * (for other uses, please contact us at paradyn@cs.wisc.edu)
20 * All warranties, including without limitation, any warranty of
21 * merchantability or fitness for a particular purpose, are hereby
24 * By your use of Paradyn, you understand and agree that we (or any
25 * other person or entity with proprietary rights in Paradyn) are
26 * under no obligation to provide either maintenance services,
27 * update services, notices of latent defects, or correction of
28 * defects for Paradyn.
30 * Even if advised of the possibility of such damages, under no
31 * circumstances shall we (or any other person or entity with
32 * proprietary rights in the software licensed hereunder) be liable
33 * to you or any third party for direct, indirect, or consequential
34 * damages of any character regardless of type of action, including,
35 * without limitation, loss of profits, loss of use, loss of good
36 * will, or computer failure or malfunction. You agree to indemnify
37 * us (and any other person or entity with proprietary rights in the
38 * software licensed hereunder) for any and all liability it may
39 * incur to third parties resulting from your use of Paradyn.
42 #if !defined(solaris_dl_hdr)
43 #define solaris_dl_hdr
45 #include "util/h/Vector.h"
46 #include "paradynd/src/sharedobject.h"
50 // All platform specific dynamic linking info. is in this class
51 // each version of this class must have the following funcitons:
52 // findDynamicLinkingInfo, getSharedObjects, addSharedObject,
55 class dynamic_linking {
59 dynamic_linking(){ link_map_addr = 0; dynlinked = false; }
62 // findDynamicLinkingInfo: This routine is called on exit point of
63 // of the exec system call. It checks if the a.out is dynamically linked,
64 // and if so, it inserts any initial instrumentation that is necessary
65 // for collecting run-time linking info.
66 bool findDynamicLinkingInfo(process *p);
68 // getSharedObjects: This routine is called before main() to get and
69 // process all shared objects that have been mapped into the process's
72 vector< shared_object *> *getSharedObjects(process *p);
74 // addASharedObject: This routine is called whenever a new shared object
75 // has been loaded by the run-time linker
76 // It processes the image, creates new resources
77 // Currently, this is not implemented, because we are not handleing
78 // adding shared objects after the executable starts executing main()
79 shared_object *addSharedObject(process *){ return 0;}
81 // returns true if the executable is dynamically linked
82 bool isDynamic(){ return(dynlinked);}