XEmacs 21.2.15 "Sakuragawa".
[chise/xemacs-chise.git.1] / dynodump / _dynodump.h
1 /*
2  *      Copyright (c) 1995 by Sun Microsystems, Inc.
3  *      All rights reserved.
4  *
5  * This source code is a product of Sun Microsystems, Inc. and is provided
6  * for unrestricted use provided that this legend is included on all tape
7  * media and as a part of the software program in whole or part.  Users
8  * may copy or modify this source code without charge, but are not authorized
9  * to license or distribute it to anyone else except as part of a product or
10  * program developed by the user.
11  *
12  * THIS PROGRAM CONTAINS SOURCE CODE COPYRIGHTED BY SUN MICROSYSTEMS, INC.
13  * SUN MICROSYSTEMS, INC., MAKES NO REPRESENTATIONS ABOUT THE SUITABLITY
14  * OF SUCH SOURCE CODE FOR ANY PURPOSE.  IT IS PROVIDED "AS IS" WITHOUT
15  * EXPRESS OR IMPLIED WARRANTY OF ANY KIND.  SUN MICROSYSTEMS, INC. DISCLAIMS
16  * ALL WARRANTIES WITH REGARD TO SUCH SOURCE CODE, INCLUDING ALL IMPLIED
17  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  IN
18  * NO EVENT SHALL SUN MICROSYSTEMS, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT,
19  * INCIDENTAL, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
20  * FROM USE OF SUCH SOURCE CODE, REGARDLESS OF THE THEORY OF LIABILITY.
21  * 
22  * This source code is provided with no support and without any obligation on
23  * the part of Sun Microsystems, Inc. to assist in its use, correction, 
24  * modification or enhancement.
25  *
26  * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
27  * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY THIS
28  * SOURCE CODE OR ANY PART THEREOF.
29  *
30  * Sun Microsystems, Inc.
31  * 2550 Garcia Avenue
32  * Mountain View, California 94043
33  */
34
35 #pragma ident   "@(#) $Id: _dynodump.h,v 1.5 1996/05/23 18:39:07 georgn Exp $ - SMI"
36
37 #ifndef _DYNODUMP_DOT_H
38 #define _DYNODUMP_DOT_H
39
40 #include        <libelf.h>
41 #include        "machdep.h"
42
43 /* General rounding macro */
44 #define S_ROUND(x, a)   (((int)(x) + (((int)(a) ? (int)(a) : 1) - 1)) & \
45                          ~(((int)(a) ? (int)(a) : 1) - 1))
46
47 /*
48  * Define a cache structure that is used to retain all elf section information.
49  */
50 typedef struct cache {
51     Elf_Scn *c_scn;
52     Shdr *c_shdr;
53     Elf_Data *c_data;
54     char *c_name;
55 } Cache;
56
57 /*
58  * Define any local prototypes.
59  */
60 extern void update_dynamic(Cache *);
61 extern void update_reloc(Cache *, Cache *, Cache *, Cache *, Half shnum);
62 extern void update_sym(Cache *, Cache *, Addr);
63 extern void dynodump_uninit(void);
64
65 #endif