elfkit/
error.rs

1use types;
2use section::SectionContent;
3
4#[derive(Debug)]
5pub enum Error {
6    Io(::std::io::Error),
7    InvalidMagic,
8    InvalidIdentClass(u8),
9    InvalidEndianness(u8),
10    InvalidIdentVersion(u8),
11    InvalidVersion(u32),
12    InvalidAbi(u8),
13    InvalidElfType(u16),
14    InvalidMachineType(u16),
15    InvalidHeaderFlags(u32),
16    InvalidSectionFlags(u64),
17    InvalidSegmentType(u32),
18    InvalidSectionType(u32),
19    UnsupportedMachineTypeForRelocation(types::Machine),
20    InvalidSymbolType(u8),
21    InvalidSymbolBind(u8),
22    InvalidSymbolVis(u8),
23    InvalidDynamicType(u64),
24    MissingShstrtabSection,
25    LinkedSectionIsNotStrtab{
26        during: &'static str,
27        link:  Option<SectionContent>,
28    },
29    InvalidDynamicFlags1(u64),
30    FirstSectionOffsetCanNotBeLargerThanAddress,
31    MissingSymtabSection,
32    LinkedSectionIsNotSymtab,
33    UnexpectedSectionContent,
34    InvalidSymbolShndx(String, u16),
35    DynsymInStaticLibrary,
36    SymbolSectionIndexExtendedCannotBeWritten,
37    WritingNotSynced,
38    SyncingUnloadedSection,
39    WritingUnloadedSection,
40    NoSymbolsInObject,
41    MultipleSymbolSections,
42    ConflictingSymbol{
43        sym:        String,
44        obj1_name:  String,
45        obj2_name:  String,
46        obj1_hash:  String,
47        obj2_hash:  String,
48    },
49    UndefinedReference{
50        sym:    String,
51        obj:    String,
52    },
53    MovingLockedSection{
54        sec:        String,
55        old_addr:   u64,
56        new_addr:   u64,
57        cause:      String,
58    }
59}
60
61impl From<::std::io::Error> for Error {
62    fn from(error: ::std::io::Error) -> Self {
63        Error::Io(error)
64    }
65}