diff options
Diffstat (limited to 'arch/sh/include/asm/dwarf.h')
| -rw-r--r-- | arch/sh/include/asm/dwarf.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/arch/sh/include/asm/dwarf.h b/arch/sh/include/asm/dwarf.h index ced6795891a6..bdccbbfdc0bd 100644 --- a/arch/sh/include/asm/dwarf.h +++ b/arch/sh/include/asm/dwarf.h | |||
| @@ -194,6 +194,12 @@ | |||
| 194 | #define DWARF_ARCH_RA_REG 17 | 194 | #define DWARF_ARCH_RA_REG 17 |
| 195 | 195 | ||
| 196 | #ifndef __ASSEMBLY__ | 196 | #ifndef __ASSEMBLY__ |
| 197 | |||
| 198 | #include <linux/compiler.h> | ||
| 199 | #include <linux/bug.h> | ||
| 200 | #include <linux/list.h> | ||
| 201 | #include <linux/module.h> | ||
| 202 | |||
| 197 | /* | 203 | /* |
| 198 | * Read either the frame pointer (r14) or the stack pointer (r15). | 204 | * Read either the frame pointer (r14) or the stack pointer (r15). |
| 199 | * NOTE: this MUST be inlined. | 205 | * NOTE: this MUST be inlined. |
| @@ -241,6 +247,12 @@ struct dwarf_cie { | |||
| 241 | 247 | ||
| 242 | unsigned long flags; | 248 | unsigned long flags; |
| 243 | #define DWARF_CIE_Z_AUGMENTATION (1 << 0) | 249 | #define DWARF_CIE_Z_AUGMENTATION (1 << 0) |
| 250 | |||
| 251 | /* | ||
| 252 | * 'mod' will be non-NULL if this CIE came from a module's | ||
| 253 | * .eh_frame section. | ||
| 254 | */ | ||
| 255 | struct module *mod; | ||
| 244 | }; | 256 | }; |
| 245 | 257 | ||
| 246 | /** | 258 | /** |
| @@ -255,6 +267,12 @@ struct dwarf_fde { | |||
| 255 | unsigned char *instructions; | 267 | unsigned char *instructions; |
| 256 | unsigned char *end; | 268 | unsigned char *end; |
| 257 | struct list_head link; | 269 | struct list_head link; |
| 270 | |||
| 271 | /* | ||
| 272 | * 'mod' will be non-NULL if this FDE came from a module's | ||
| 273 | * .eh_frame section. | ||
| 274 | */ | ||
| 275 | struct module *mod; | ||
| 258 | }; | 276 | }; |
| 259 | 277 | ||
| 260 | /** | 278 | /** |
| @@ -364,6 +382,12 @@ static inline unsigned int DW_CFA_operand(unsigned long insn) | |||
| 364 | 382 | ||
| 365 | extern struct dwarf_frame *dwarf_unwind_stack(unsigned long, | 383 | extern struct dwarf_frame *dwarf_unwind_stack(unsigned long, |
| 366 | struct dwarf_frame *); | 384 | struct dwarf_frame *); |
| 385 | extern void dwarf_free_frame(struct dwarf_frame *); | ||
| 386 | |||
| 387 | extern int module_dwarf_finalize(const Elf_Ehdr *, const Elf_Shdr *, | ||
| 388 | struct module *); | ||
| 389 | extern void module_dwarf_cleanup(struct module *); | ||
| 390 | |||
| 367 | #endif /* !__ASSEMBLY__ */ | 391 | #endif /* !__ASSEMBLY__ */ |
| 368 | 392 | ||
| 369 | #define CFI_STARTPROC .cfi_startproc | 393 | #define CFI_STARTPROC .cfi_startproc |
| @@ -391,6 +415,10 @@ extern struct dwarf_frame *dwarf_unwind_stack(unsigned long, | |||
| 391 | static inline void dwarf_unwinder_init(void) | 415 | static inline void dwarf_unwinder_init(void) |
| 392 | { | 416 | { |
| 393 | } | 417 | } |
| 418 | |||
| 419 | #define module_dwarf_finalize(hdr, sechdrs, me) (0) | ||
| 420 | #define module_dwarf_cleanup(mod) do { } while (0) | ||
| 421 | |||
| 394 | #endif | 422 | #endif |
| 395 | 423 | ||
| 396 | #endif /* CONFIG_DWARF_UNWINDER */ | 424 | #endif /* CONFIG_DWARF_UNWINDER */ |
