_libld.h revision 141040e8a310da49386b596573e5dde5580572ec
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright (c) 1988 AT&T
* All Rights Reserved
*
* Copyright 2006 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
/*
* Local include file for ld library.
*/
#ifndef _LIBLD_DOT_H
#define _LIBLD_DOT_H
#pragma ident "%Z%%M% %I% %E% SMI"
#include <libld.h>
#include <conv.h>
#include <msg.h>
#ifdef __cplusplus
extern "C" {
#endif
/*
* Types of segment index.
*/
typedef enum {
#endif
#endif
} Segment_ndx;
/*
* Types of bss sections
*/
typedef enum {
} Bss_Type;
/*
* Structure to manage the update of weak symbols from their associated alias.
*/
typedef struct wk_desc {
} Wk_desc;
/*
* Structure to manage the support library interfaces.
*/
typedef struct func_list {
const char *fl_obj; /* name of support object */
/* function is from */
void (*fl_fptr)(); /* function pointer */
} Func_list;
typedef struct support_list {
const char *sup_name; /* ld_support function name */
} Support_list;
/*
* Structure to manage a sorted output relocation list.
*
* rl_key1 -> pointer to needed ndx
* rl_key2 -> pointer to symbol relocation is against
* rl_key3 -> virtual offset of relocation
*/
typedef struct reloc_list {
} Reloc_list;
typedef struct sym_s_list {
} Sym_s_list;
/*
* ld heap management structure
*/
struct _ld_heap {
void *lh_free;
void *lh_end;
};
/*
* Dynamic per-symbol filtee string table descriptor. This associates filtee
* strings that will be created in the .dynstr, with .dynamic entries.
*/
typedef struct {
char *dft_str; /* dynstr string */
} Dfltr_desc;
#define AL_CNT_DFLTR 4
#define AL_CNT_GROUP 20
/*
* Per-symbol filtee descriptor. This associates symbol definitions with
* their filtees.
*/
typedef struct {
} Sfltr_desc;
#define AL_CNT_SFLTR 20
/*
* Return codes for {tls|got}_fixups() routines
*/
typedef enum {
FIX_ERROR, /* fatal error - time to punt */
FIX_DONE, /* relocation done - no further processing required */
FIX_RELOC /* do_reloc() relocation processing required */
} Fixupret;
#ifndef FILENAME_MAX
#endif
/*
* Relocation buckets are sized based on the number of input relocations and
* the following constants.
*/
extern char *Plibpath;
extern char *Llibdir;
extern char *Ulibdir;
extern List lib_support;
extern int Verbose;
/*
*/
extern int dz_fd;
/*
* Local functions.
*/
#if defined(sparc)
#endif
extern int dbg_setup(const char *);
extern const char *demangle(const char *);
extern int ldexit(void);
extern void init();
const char *, Word *);
Ofl_desc *);
Ofl_desc *);
Is_desc *, const char *);
Ofl_desc *);
extern int sym_avl_comp(const void *, const void *);
extern int vers_verify(Ofl_desc *);
/*
* AMD64 - 64-bit specific functions
*/
#endif
#ifdef __cplusplus
}
#endif
#endif /* _LIBLD_DOT_H */