DwarfEncoding.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. /*
  2. * Copyright (C) 2016 The Android Open Source Project
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. #ifndef _LIBUNWINDSTACK_DWARF_ENCODING_H
  17. #define _LIBUNWINDSTACK_DWARF_ENCODING_H
  18. #include <stdint.h>
  19. namespace unwindstack {
  20. enum DwarfEncoding : uint8_t {
  21. DW_EH_PE_omit = 0xff,
  22. DW_EH_PE_absptr = 0x00,
  23. DW_EH_PE_uleb128 = 0x01,
  24. DW_EH_PE_udata2 = 0x02,
  25. DW_EH_PE_udata4 = 0x03,
  26. DW_EH_PE_udata8 = 0x04,
  27. DW_EH_PE_sleb128 = 0x09,
  28. DW_EH_PE_sdata2 = 0x0a,
  29. DW_EH_PE_sdata4 = 0x0b,
  30. DW_EH_PE_sdata8 = 0x0c,
  31. DW_EH_PE_pcrel = 0x10,
  32. DW_EH_PE_textrel = 0x20,
  33. DW_EH_PE_datarel = 0x30,
  34. DW_EH_PE_funcrel = 0x40,
  35. DW_EH_PE_aligned = 0x50,
  36. // The following are special values used to encode CFA and OP operands.
  37. DW_EH_PE_udata1 = 0x0d,
  38. DW_EH_PE_sdata1 = 0x0e,
  39. DW_EH_PE_block = 0x0f,
  40. };
  41. } // namespace unwindstack
  42. #endif // _LIBUNWINDSTACK_DWARF_ENCODING_H