aboutsummaryrefslogtreecommitdiffstats
path: root/lib/hipe/llvm/elf_format.hrl
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2016-05-26 14:36:52 +0200
committerSverker Eriksson <[email protected]>2016-05-26 14:36:52 +0200
commit89adc0eec23c1a3ac552650004863de4cf82422e (patch)
tree141a582f3f52290cb07cfd797d8295fc2f094d58 /lib/hipe/llvm/elf_format.hrl
parent4d7b24dcb8f10ea8ddaa002601916fb389f0e87e (diff)
parent8914b835d26cc3b513eaef0a19cd9b39d1d2ccae (diff)
downloadotp-89adc0eec23c1a3ac552650004863de4cf82422e.tar.gz
otp-89adc0eec23c1a3ac552650004863de4cf82422e.tar.bz2
otp-89adc0eec23c1a3ac552650004863de4cf82422e.zip
Merge branch 'margnus1/llvm-compatibility/PR-1057/OTP-13626'
Diffstat (limited to 'lib/hipe/llvm/elf_format.hrl')
-rw-r--r--lib/hipe/llvm/elf_format.hrl40
1 files changed, 40 insertions, 0 deletions
diff --git a/lib/hipe/llvm/elf_format.hrl b/lib/hipe/llvm/elf_format.hrl
index 7a3cdfead6..57a36f0c3e 100644
--- a/lib/hipe/llvm/elf_format.hrl
+++ b/lib/hipe/llvm/elf_format.hrl
@@ -486,3 +486,43 @@
%% Misc.
%%------------------------------------------------------------------------------
-define(bits(Bytes), ((Bytes) bsl 3)).
+
+%%------------------------------------------------------------------------------
+%% Exported record and type declarations for 'elf_format' module
+%%------------------------------------------------------------------------------
+
+%% Section header entries
+-record(elf_shdr,
+ {name :: elf_format:name() % Section name
+ ,type :: elf_format:shdr_type() % Section type
+ ,flags :: elf_format:bitflags() % Section attributes
+ ,addr :: elf_format:offset() % Virtual address in memory
+ ,offset :: elf_format:offset() % Offset in file
+ ,size :: elf_format:size() % Size of section
+ ,link :: non_neg_integer() % Link to other section
+ ,info :: non_neg_integer() % Miscellaneous information
+ ,addralign :: elf_format:size() % Address align boundary
+ ,entsize :: elf_format:size() % Size of entries, if section has
+ % table
+ }).
+-type elf_shdr() :: #elf_shdr{}.
+
+%% Symbol table entries
+-record(elf_sym,
+ {name :: elf_format:name() % Symbol name
+ ,bind :: elf_format:sym_bind() % Symbol binding
+ ,type :: elf_format:sym_type() % Symbol type
+ ,value :: elf_format:valueoff() % Symbol value
+ ,size :: elf_format:size() % Size of object
+ ,section :: undefined | abs | elf_shdr()
+ }).
+-type elf_sym() :: #elf_sym{}.
+
+%% Relocations
+-record(elf_rel,
+ {offset :: elf_format:offset()
+ ,type :: elf_format:reloc_type()
+ ,addend :: elf_format:addend()
+ ,symbol :: elf_sym()
+ }).
+-type elf_rel() :: #elf_rel{}.