4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
23 * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
24 * Use is subject to license terms.
35 * Print out the dynamic section entries.
38 Elf_dyn_title(Lm_list
*lml
)
40 dbg_print(lml
, MSG_INTL(MSG_DYN_TITLE
));
44 Elf_dyn_entry(Lm_list
*lml
, Dyn
*dyn
, int ndx
, const char *name
,
45 uchar_t osabi
, Half mach
)
47 Conv_inv_buf_t inv_buf
;
48 char index
[INDEX_STR_SIZE
];
50 (void) snprintf(index
, sizeof (index
), MSG_ORIG(MSG_FMT_INDEX
), ndx
);
51 dbg_print(lml
, MSG_INTL(MSG_DYN_ENTRY
), index
,
52 conv_dyn_tag(dyn
->d_tag
, osabi
, mach
, 0, &inv_buf
),
53 EC_XWORD(dyn
->d_un
.d_val
), name
);
57 * Variant of Elf_dyn_entry() specifically for DT_NULL. Handles the
58 * case of multiple adjacent DT_NULL entries by displaying them on
59 * a single line using an index range instead of a single index.
62 Elf_dyn_null_entry(Lm_list
*lml
, Dyn
*dyn
, int start_ndx
, int end_ndx
)
64 Conv_inv_buf_t inv_buf
;
65 char index
[2 * INDEX_STR_SIZE
];
67 if (start_ndx
== end_ndx
) {
68 Elf_dyn_entry(lml
, dyn
, start_ndx
, MSG_ORIG(MSG_STR_EMPTY
),
71 (void) snprintf(index
, sizeof (index
),
72 MSG_ORIG(MSG_FMT_INDEX_RANGE
), start_ndx
, end_ndx
);
73 dbg_print(lml
, MSG_INTL(MSG_DYN_ENTRY
), index
,
74 conv_dyn_tag(DT_NULL
, ELFOSABI_NONE
, 0, 0, &inv_buf
),
75 EC_XWORD(dyn
->d_un
.d_val
), MSG_ORIG(MSG_STR_EMPTY
));