summaryrefslogtreecommitdiff
path: root/usr/src/cmd/sgs/include
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/cmd/sgs/include')
-rw-r--r--usr/src/cmd/sgs/include/conv.h6
-rw-r--r--usr/src/cmd/sgs/include/dwarf.h24
-rw-r--r--usr/src/cmd/sgs/include/i386/machdep_x86.h27
-rw-r--r--usr/src/cmd/sgs/include/libld.h5
-rw-r--r--usr/src/cmd/sgs/include/sparc/machdep_sparc.h24
5 files changed, 39 insertions, 47 deletions
diff --git a/usr/src/cmd/sgs/include/conv.h b/usr/src/cmd/sgs/include/conv.h
index d9fccb6a62..1facea96d1 100644
--- a/usr/src/cmd/sgs/include/conv.h
+++ b/usr/src/cmd/sgs/include/conv.h
@@ -23,7 +23,7 @@
* Copyright (c) 1988 AT&T
* All Rights Reserved
*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -860,7 +860,11 @@ extern const char *conv_demangle_name(const char *);
extern const char *conv_dl_flag(int, Conv_fmt_flags_t,
Conv_dl_flag_buf_t *);
extern const char *conv_dl_mode(int, int, Conv_dl_mode_buf_t *);
+extern const char *conv_dwarf_cfa(uchar_t, Conv_fmt_flags_t,
+ Conv_inv_buf_t *);
extern const char *conv_dwarf_ehe(uint_t, Conv_dwarf_ehe_buf_t *);
+extern const char *conv_dwarf_regname(Half, Word, Conv_fmt_flags_t,
+ int *, Conv_inv_buf_t *);
extern const char *conv_elfdata_type(Elf_Type, Conv_inv_buf_t *);
extern const char *conv_grphdl_flags(uint_t, Conv_grphdl_flags_buf_t *);
extern const char *conv_grpdesc_flags(uint_t, Conv_grpdesc_flags_buf_t *);
diff --git a/usr/src/cmd/sgs/include/dwarf.h b/usr/src/cmd/sgs/include/dwarf.h
index 980d059934..31c295d17c 100644
--- a/usr/src/cmd/sgs/include/dwarf.h
+++ b/usr/src/cmd/sgs/include/dwarf.h
@@ -2,9 +2,8 @@
* 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.
+ * Common Development and Distribution License (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
* or http://www.opensolaris.org/os/licensing.
@@ -24,15 +23,13 @@
/*
- * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _DWARF_H
#define _DWARF_H
-#pragma ident "%Z%%M% %I% %E% SMI"
-
#include <sys/types.h>
@@ -254,20 +251,7 @@ typedef enum _LANG {
extern uint64_t uleb_extract(unsigned char *, uint64_t *);
extern int64_t sleb_extract(unsigned char *, uint64_t *);
extern uint64_t dwarf_ehe_extract(unsigned char *, uint64_t *,
- uint_t, unsigned char *, uint64_t);
-
-/*
- * LSB32EXTRACT()
- *
- * Extract a LSB encoded int which may or may not be
- * aligned on a 4 byte boundary. This macro will work
- * on either a MSB or LSB based system.
- */
-#define LSB32EXTRACT(lsbptr) ((unsigned int)(\
- ((unsigned const char *)(lsbptr))[0] + \
- (((unsigned const char *)(lsbptr))[1] << 8) + \
- (((unsigned const char *)(lsbptr))[2] << 16) + \
- (((unsigned const char *)(lsbptr))[3] << 24)))
+ uint_t, unsigned char *, uint64_t, uint64_t);
#ifdef __cplusplus
}
diff --git a/usr/src/cmd/sgs/include/i386/machdep_x86.h b/usr/src/cmd/sgs/include/i386/machdep_x86.h
index eee31216c4..9904a8d7c6 100644
--- a/usr/src/cmd/sgs/include/i386/machdep_x86.h
+++ b/usr/src/cmd/sgs/include/i386/machdep_x86.h
@@ -267,24 +267,25 @@ extern "C" {
#define M_ID_INTERP 0x03 /* SHF_ALLOC */
#define M_ID_CAP 0x04
-#define M_ID_UNWINDHDR 0x05
-#define M_ID_UNWIND 0x06
-#define M_ID_SYMINFO 0x07
-#define M_ID_HASH 0x08
-#define M_ID_LDYNSYM 0x09 /* always right before DYNSYM */
-#define M_ID_DYNSYM 0x0a
-#define M_ID_DYNSTR 0x0b
-#define M_ID_VERSION 0x0c
-#define M_ID_DYNSORT 0x0d
-#define M_ID_REL 0x0e
-#define M_ID_PLT 0x0f /* SHF_ALLOC + SHF_EXECISNTR */
-#define M_ID_TEXT 0x10
+#define M_ID_UNWINDHDR 0x06
+#define M_ID_UNWIND 0x07
+#define M_ID_SYMINFO 0x08
+#define M_ID_HASH 0x09
+#define M_ID_LDYNSYM 0x0a /* always right before DYNSYM */
+#define M_ID_DYNSYM 0x0b
+#define M_ID_DYNSTR 0x0c
+#define M_ID_VERSION 0x0d
+#define M_ID_DYNSORT 0x0e
+#define M_ID_REL 0x0f
+#define M_ID_PLT 0x10 /* SHF_ALLOC + SHF_EXECISNTR */
+#define M_ID_TEXT 0x11
#define M_ID_DATA 0x20
-/* M_ID_USER 0x02 dual entry - listed above */
+/* M_ID_USER 0x01 dual entry - listed above */
#define M_ID_GOT 0x03 /* SHF_ALLOC + SHF_WRITE */
#define M_ID_DYNAMIC 0x05
#define M_ID_ARRAY 0x06
+/* M_ID_UNWIND 0x07 dual entry - listed above */
#define M_ID_UNKNOWN 0xfb /* just before TLS */
diff --git a/usr/src/cmd/sgs/include/libld.h b/usr/src/cmd/sgs/include/libld.h
index 2f7980e4ab..2403c1abdb 100644
--- a/usr/src/cmd/sgs/include/libld.h
+++ b/usr/src/cmd/sgs/include/libld.h
@@ -201,10 +201,8 @@ struct ofl_desc {
List ofl_rtldinfo; /* list of rtldinfo syms */
List ofl_osgroups; /* list of output GROUP sections */
List ofl_ostlsseg; /* pointer to sections in TLS segment */
-#if defined(_ELF64) /* for amd64 target only */
- List ofl_unwind; /* list of unwind output sections */
+ APlist *ofl_unwind; /* list of unwind output sections */
Os_desc *ofl_unwindhdr; /* Unwind hdr */
-#endif
avl_tree_t ofl_symavl; /* pointer to head of Syms AVL tree */
Sym_desc **ofl_regsyms; /* array of potential register */
Word ofl_regsymsno; /* symbols and array count */
@@ -607,6 +605,7 @@ struct is_desc { /* input section descriptor */
#define FLG_IS_GROUPS 0x0200 /* section has groups to process */
#define FLG_IS_PLACE 0x0400 /* section requires to be placed */
#define FLG_IS_COMDAT 0x0800 /* section is COMDAT */
+#define FLG_IS_EHFRAME 0x1000 /* section is .eh_frame */
/*
* Map file and output file processing structures
diff --git a/usr/src/cmd/sgs/include/sparc/machdep_sparc.h b/usr/src/cmd/sgs/include/sparc/machdep_sparc.h
index 2fc05ca4f5..22c8f512c6 100644
--- a/usr/src/cmd/sgs/include/sparc/machdep_sparc.h
+++ b/usr/src/cmd/sgs/include/sparc/machdep_sparc.h
@@ -271,16 +271,19 @@ extern "C" {
#define M_ID_INTERP 0x02 /* SHF_ALLOC */
#define M_ID_CAP 0x03
-#define M_ID_SYMINFO 0x04
-#define M_ID_HASH 0x05
-#define M_ID_LDYNSYM 0x06 /* always right before DYNSYM */
-#define M_ID_DYNSYM 0x07
-#define M_ID_DYNSTR 0x08
-#define M_ID_VERSION 0x09
-#define M_ID_DYNSORT 0x0a
-#define M_ID_REL 0x0b
-#define M_ID_TEXT 0x0c /* SHF_ALLOC + SHF_EXECINSTR */
-#define M_ID_DATA 0x0d
+#define M_ID_UNWINDHDR 0x06
+#define M_ID_UNWIND 0x07
+
+#define M_ID_SYMINFO 0x08
+#define M_ID_HASH 0x09
+#define M_ID_LDYNSYM 0x0a /* always right before DYNSYM */
+#define M_ID_DYNSYM 0x0b
+#define M_ID_DYNSTR 0x0c
+#define M_ID_VERSION 0x0d
+#define M_ID_DYNSORT 0x0e
+#define M_ID_REL 0x0f
+#define M_ID_TEXT 0x10 /* SHF_ALLOC + SHF_EXECINSTR */
+#define M_ID_DATA 0x20
/* M_ID_USER 0x01 dual entry - listed above */
#define M_ID_GOTDATA 0x02 /* SHF_ALLOC + SHF_WRITE */
@@ -288,6 +291,7 @@ extern "C" {
#define M_ID_PLT 0x04
#define M_ID_DYNAMIC 0x05
#define M_ID_ARRAY 0x06
+/* M_ID_UNWIND 0x07 dual entry - listed above */
#define M_ID_UNKNOWN 0xfc /* just before TLS */