aboutsummaryrefslogtreecommitdiffstats
path: root/ortho/mcode/elfdumper.ads
diff options
context:
space:
mode:
Diffstat (limited to 'ortho/mcode/elfdumper.ads')
-rw-r--r--ortho/mcode/elfdumper.ads164
1 files changed, 0 insertions, 164 deletions
diff --git a/ortho/mcode/elfdumper.ads b/ortho/mcode/elfdumper.ads
deleted file mode 100644
index 0227f0f41..000000000
--- a/ortho/mcode/elfdumper.ads
+++ /dev/null
@@ -1,164 +0,0 @@
--- ELF dumper (library).
--- Copyright (C) 2006 Tristan Gingold
---
--- GHDL 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 2, or (at your option) any later
--- version.
---
--- GHDL 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 GCC; see the file COPYING. If not, write to the Free
--- Software Foundation, 59 Temple Place - Suite 330, Boston, MA
--- 02111-1307, USA.
-with System; use System;
-with Elf_Common; use Elf_Common;
-with Elf_Arch; use Elf_Arch;
-with Ada.Unchecked_Conversion;
-
-package Elfdumper is
- procedure Disp_Ehdr (Ehdr : Elf_Ehdr);
-
- type Strtab_Fat_Type is array (Elf_Size) of Character;
- type Strtab_Fat_Acc is access all Strtab_Fat_Type;
-
- type Strtab_Type is record
- Base : Strtab_Fat_Acc;
- Length : Elf_Size;
- end record;
-
- Null_Strtab : constant Strtab_Type := (null, 0);
-
- Nul : constant Character := Character'Val (0);
-
- function Get_String (Strtab : Strtab_Type; N : Elf_Size)
- return String;
-
- procedure Disp_Shdr (Shdr : Elf_Shdr; Sh_Strtab : Strtab_Type);
-
- type Elf_Shdr_Array is array (Elf_Half range <>) of Elf_Shdr;
-
- type Elf_File is limited private;
- type Elf_File_Status is
- (
- -- No error.
- Status_Ok,
-
- -- Cannot open file.
- Status_Open_Failure,
-
- Status_Bad_File,
- Status_Memory,
- Status_Read_Error,
- Status_Bad_Magic,
- Status_Bad_Class
- );
-
- procedure Open_File (File : out Elf_File; Filename : String);
-
- function Get_Status (File : Elf_File) return Elf_File_Status;
-
- type Elf_Ehdr_Acc is access all Elf_Ehdr;
-
- function Get_Ehdr (File : Elf_File) return Elf_Ehdr_Acc;
-
- procedure Load_Shdr (File : in out Elf_File);
-
- type Elf_Shdr_Acc is access all Elf_Shdr;
-
- function Get_Shdr (File : Elf_File; Index : Elf_Half)
- return Elf_Shdr_Acc;
-
- function Get_Shdr_Type_Name (Stype : Elf_Word) return String;
-
- procedure Load_Phdr (File : in out Elf_File);
-
- type Elf_Phdr_Acc is access all Elf_Phdr;
-
- function Get_Phdr (File : Elf_File; Index : Elf_Half)
- return Elf_Phdr_Acc;
-
- function Get_Segment_Base (File : Elf_File; Index : Elf_Half)
- return Address;
-
- function Get_Sh_Strtab (File : Elf_File) return Strtab_Type;
-
- procedure Disp_Sym (File : Elf_File;
- Sym : Elf_Sym;
- Strtab : Strtab_Type);
-
- procedure Disp_Symtab (File : Elf_File; Index : Elf_Half);
- procedure Disp_Strtab (File : Elf_File; Index : Elf_Half);
-
- function Get_Section_Name (File : Elf_File; Index : Elf_Half)
- return String;
-
- function Get_Section_By_Name (File : Elf_File; Name : String)
- return Elf_Half;
-
- procedure Disp_Debug_Abbrev (File : Elf_File; Index : Elf_Half);
- procedure Disp_Debug_Info (File : Elf_File; Index : Elf_Half);
- procedure Disp_Debug_Pubnames (File : Elf_File; Index : Elf_Half);
- procedure Disp_Debug_Aranges (File : Elf_File; Index : Elf_Half);
- procedure Disp_Debug_Line (File : Elf_File; Index : Elf_Half);
- procedure Disp_Debug_Frame (File : Elf_File; Index : Elf_Half);
- procedure Disp_Eh_Frame_Hdr (File : Elf_File; Index : Elf_Half);
-
- procedure Disp_Phdr (Phdr : Elf_Phdr);
-
- procedure Disp_Segment_Note (File : Elf_File; Index : Elf_Half);
- procedure Disp_Section_Note (File : Elf_File; Index : Elf_Half);
-
- procedure Disp_Dynamic (File : Elf_File; Index : Elf_Half);
-private
- use System;
-
- function To_Strtab_Fat_Acc is new Ada.Unchecked_Conversion
- (Address, Strtab_Fat_Acc);
-
- type String_Acc is access String;
-
- function To_Elf_Ehdr_Acc is new Ada.Unchecked_Conversion
- (Address, Elf_Ehdr_Acc);
-
- function To_Elf_Phdr_Acc is new Ada.Unchecked_Conversion
- (Address, Elf_Phdr_Acc);
-
- function To_Elf_Shdr_Acc is new Ada.Unchecked_Conversion
- (Address, Elf_Shdr_Acc);
-
- type Elf_Sym_Acc is access all Elf_Sym;
- function To_Elf_Sym_Acc is new Ada.Unchecked_Conversion
- (Address, Elf_Sym_Acc);
-
- type Elf_Shdr_Arr is array (Elf_Half) of Elf_Shdr;
-
- type Elf_Shdr_Arr_Acc is access all Elf_Shdr_Arr;
- function To_Elf_Shdr_Arr_Acc is new Ada.Unchecked_Conversion
- (Address, Elf_Shdr_Arr_Acc);
-
- type Elf_File is record
- -- Name of the file.
- Filename : String_Acc;
-
- -- Status, used to report errors.
- Status : Elf_File_Status;
-
- -- Length of the file.
- Length : Elf_Off;
-
- -- File contents.
- Base : Address;
-
- Ehdr : Elf_Ehdr_Acc;
-
- Shdr_Base : Address;
- Sh_Strtab : Strtab_Type;
-
- Phdr_Base : Address;
- end record;
-end Elfdumper;