xref: /illumos-gate/usr/src/lib/libdwarf/common/pro_dnames.c (revision 4d9fdb46b215739778ebc12079842c9905586999)
1*4d9fdb46SRobert Mustacchi /*
2*4d9fdb46SRobert Mustacchi   Copyright 2018-2018 David Anderson.  All Rights Reserved.
3*4d9fdb46SRobert Mustacchi 
4*4d9fdb46SRobert Mustacchi   This program is free software; you can redistribute it
5*4d9fdb46SRobert Mustacchi   and/or modify it under the terms of version 2.1 of the
6*4d9fdb46SRobert Mustacchi   GNU Lesser General Public License as published by the Free
7*4d9fdb46SRobert Mustacchi   Software Foundation.
8*4d9fdb46SRobert Mustacchi 
9*4d9fdb46SRobert Mustacchi   This program is distributed in the hope that it would be
10*4d9fdb46SRobert Mustacchi   useful, but WITHOUT ANY WARRANTY; without even the implied
11*4d9fdb46SRobert Mustacchi   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12*4d9fdb46SRobert Mustacchi   PURPOSE.
13*4d9fdb46SRobert Mustacchi 
14*4d9fdb46SRobert Mustacchi   Further, this software is distributed without any warranty
15*4d9fdb46SRobert Mustacchi   that it is free of the rightful claim of any third person
16*4d9fdb46SRobert Mustacchi   regarding infringement or the like.  Any license provided
17*4d9fdb46SRobert Mustacchi   herein, whether implied or otherwise, applies only to this
18*4d9fdb46SRobert Mustacchi   software file.  Patent licenses, if any, provided herein
19*4d9fdb46SRobert Mustacchi   do not apply to combinations of this program with other
20*4d9fdb46SRobert Mustacchi   software, or any other product whatsoever.
21*4d9fdb46SRobert Mustacchi 
22*4d9fdb46SRobert Mustacchi   You should have received a copy of the GNU Lesser General
23*4d9fdb46SRobert Mustacchi   Public License along with this program; if not, write the
24*4d9fdb46SRobert Mustacchi   Free Software Foundation, Inc., 51 Franklin Street - Fifth
25*4d9fdb46SRobert Mustacchi   Floor, Boston MA 02110-1301, USA.
26*4d9fdb46SRobert Mustacchi 
27*4d9fdb46SRobert Mustacchi */
28*4d9fdb46SRobert Mustacchi 
29*4d9fdb46SRobert Mustacchi #include "config.h"
30*4d9fdb46SRobert Mustacchi #include "libdwarfdefs.h"
31*4d9fdb46SRobert Mustacchi #include <stdio.h>
32*4d9fdb46SRobert Mustacchi #include <string.h>
33*4d9fdb46SRobert Mustacchi #ifdef HAVE_ELFACCESS_H
34*4d9fdb46SRobert Mustacchi #include <elfaccess.h>
35*4d9fdb46SRobert Mustacchi #endif
36*4d9fdb46SRobert Mustacchi #include "pro_incl.h"
37*4d9fdb46SRobert Mustacchi #include <stddef.h>
38*4d9fdb46SRobert Mustacchi #include "dwarf.h"
39*4d9fdb46SRobert Mustacchi #include "libdwarf.h"
40*4d9fdb46SRobert Mustacchi #include "pro_opaque.h"
41*4d9fdb46SRobert Mustacchi #include "pro_error.h"
42*4d9fdb46SRobert Mustacchi #include "pro_alloc.h"
43*4d9fdb46SRobert Mustacchi #include "pro_arange.h"
44*4d9fdb46SRobert Mustacchi #include "pro_section.h"
45*4d9fdb46SRobert Mustacchi #include "pro_reloc.h"
46*4d9fdb46SRobert Mustacchi #include "pro_dnames.h"
47*4d9fdb46SRobert Mustacchi 
48*4d9fdb46SRobert Mustacchi #define FALSE 0
49*4d9fdb46SRobert Mustacchi #define TRUE  1
50*4d9fdb46SRobert Mustacchi 
51*4d9fdb46SRobert Mustacchi 
52*4d9fdb46SRobert Mustacchi int
dwarf_force_debug_names(Dwarf_P_Debug dbg,Dwarf_Error * error)53*4d9fdb46SRobert Mustacchi dwarf_force_debug_names(Dwarf_P_Debug dbg,
54*4d9fdb46SRobert Mustacchi     Dwarf_Error * error)
55*4d9fdb46SRobert Mustacchi {
56*4d9fdb46SRobert Mustacchi 
57*4d9fdb46SRobert Mustacchi     Dwarf_P_Dnames dn;
58*4d9fdb46SRobert Mustacchi 
59*4d9fdb46SRobert Mustacchi     if (dbg == NULL) {
60*4d9fdb46SRobert Mustacchi         _dwarf_p_error(NULL, error, DW_DLE_DBG_NULL);
61*4d9fdb46SRobert Mustacchi         return DW_DLV_ERROR;
62*4d9fdb46SRobert Mustacchi     }
63*4d9fdb46SRobert Mustacchi 
64*4d9fdb46SRobert Mustacchi     dn = (Dwarf_P_Dnames)
65*4d9fdb46SRobert Mustacchi         _dwarf_p_get_alloc(dbg, sizeof(struct Dwarf_P_Dnames_s));
66*4d9fdb46SRobert Mustacchi     if (dn == NULL) {
67*4d9fdb46SRobert Mustacchi         _dwarf_p_error(dbg, error, DW_DLE_ALLOC_FAIL);
68*4d9fdb46SRobert Mustacchi         return DW_DLV_ERROR;
69*4d9fdb46SRobert Mustacchi     }
70*4d9fdb46SRobert Mustacchi     if (!dbg->de_dnames) {
71*4d9fdb46SRobert Mustacchi         dbg->de_dnames = dn;
72*4d9fdb46SRobert Mustacchi     }
73*4d9fdb46SRobert Mustacchi     dn->dn_create_section = TRUE;
74*4d9fdb46SRobert Mustacchi 
75*4d9fdb46SRobert Mustacchi     return DW_DLV_OK;
76*4d9fdb46SRobert Mustacchi }
77