aboutsummaryrefslogtreecommitdiff
path: root/bfd/elfxx-kvx.h
diff options
context:
space:
mode:
authorPaul Iannetta <piannetta@kalrayinc.com>2023-08-16 14:22:28 +0100
committerNick Clifton <nickc@redhat.com>2023-08-16 14:22:54 +0100
commit6e712424f5cb1f01acf41c21f8721ee028c2a20c (patch)
treee385426177cc05115d8f5d69df67c6933ddfe6c3 /bfd/elfxx-kvx.h
parent7d6a2e34ee8eb061cf73014efefefaa074b499db (diff)
downloadbinutils-6e712424f5cb1f01acf41c21f8721ee028c2a20c.zip
binutils-6e712424f5cb1f01acf41c21f8721ee028c2a20c.tar.gz
binutils-6e712424f5cb1f01acf41c21f8721ee028c2a20c.tar.bz2
kvx: New port.
Diffstat (limited to 'bfd/elfxx-kvx.h')
-rw-r--r--bfd/elfxx-kvx.h71
1 files changed, 71 insertions, 0 deletions
diff --git a/bfd/elfxx-kvx.h b/bfd/elfxx-kvx.h
new file mode 100644
index 0000000..06ddc3c
--- /dev/null
+++ b/bfd/elfxx-kvx.h
@@ -0,0 +1,71 @@
+/* KVX-specific backend routines.
+ Copyright (C) 2009-2023 Free Software Foundation, Inc.
+ Contributed by Kalray SA.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; see the file COPYING3. If not,
+ see <http://www.gnu.org/licenses/>. */
+
+#include "bfd.h"
+#include "elf-bfd.h"
+#include "stdint.h"
+
+
+/* KVX stub generation support for ELF64. Called from the linker. */
+extern int elf64_kvx_setup_section_lists
+ (bfd *, struct bfd_link_info *);
+extern void elf64_kvx_next_input_section
+ (struct bfd_link_info *, struct bfd_section *);
+extern bool elf64_kvx_size_stubs
+ (bfd *, bfd *, struct bfd_link_info *, bfd_signed_vma,
+ struct bfd_section * (*) (const char *, struct bfd_section *),
+ void (*) (void));
+extern bool elf64_kvx_build_stubs
+ (struct bfd_link_info *);
+/* Kvx stub generation support for ELF32. Called from the linker. */
+extern int elf32_kvx_setup_section_lists
+ (bfd *, struct bfd_link_info *);
+extern void elf32_kvx_next_input_section
+ (struct bfd_link_info *, struct bfd_section *);
+extern bool elf32_kvx_size_stubs
+ (bfd *, bfd *, struct bfd_link_info *, bfd_signed_vma,
+ struct bfd_section * (*) (const char *, struct bfd_section *),
+ void (*) (void));
+extern bool elf32_kvx_build_stubs
+ (struct bfd_link_info *);
+
+
+extern bfd_reloc_status_type
+_bfd_kvx_elf_put_addend (bfd *, bfd_byte *, bfd_reloc_code_real_type,
+ reloc_howto_type *, bfd_signed_vma);
+
+bfd_vma
+_bfd_kvx_elf_resolve_relocation (bfd_reloc_code_real_type r_type,
+ bfd_vma place, bfd_vma value,
+ bfd_vma addend, bool weak_undef_p);
+
+bool
+kvx_elf32_init_stub_bfd (struct bfd_link_info *info,
+ bfd *stub_bfd);
+bool
+kvx_elf64_init_stub_bfd (struct bfd_link_info *info,
+ bfd *stub_bfd);
+
+bool _bfd_kvx_elf_grok_prstatus (bfd *abfd, Elf_Internal_Note *note);
+
+bool _bfd_kvx_elf_grok_psinfo (bfd *abfd, Elf_Internal_Note *note);
+
+#define elf_backend_grok_prstatus _bfd_kvx_elf_grok_prstatus
+#define elf_backend_grok_psinfo _bfd_kvx_elf_grok_psinfo