Blob Blame History Raw
#ifndef PERK_EDEFS_H
#define PERK_EDEFS_H

/***************************************************/
/* perk_edefs.h: PE backend extended definitions.  */
/***************************************************/

/* symbol attributes (tulips) */
#define PE_SYM_ATTR_TYPE_NOTYPE             (0)
#define PE_SYM_ATTR_TYPE_FILE               (1 << 0)
#define PE_SYM_ATTR_TYPE_OBJECT             (1 << 1)
#define PE_SYM_ATTR_TYPE_SECTION            (1 << 2)
#define PE_SYM_ATTR_TYPE_FUNCTION           (1 << 3)
#define PE_SYM_ATTR_TYPE_STRING             (1 << 4)
#define PE_SYM_ATTR_TYPE_COMMON             (1 << 5)
#define PE_SYM_ATTR_TYPE_STACK              (1 << 6)
#define PE_SYM_ATTR_TYPE_RDATA              (1 << 7)
#define PE_SYM_ATTR_TYPE_BSS                (1 << 8)
#define PE_SYM_ATTR_TYPE_TLS                (1 << 9)
#define PE_SYM_ATTR_TYPE_GOT                (1 << 10)
#define PE_SYM_ATTR_TYPE_PLT                (1 << 11)
#define PE_SYM_ATTR_TYPE_DSO                (1 << 12)
#define PE_SYM_ATTR_TYPE_REF                (1 << 13)

#define PE_SYM_ATTR_TYPE_IFUNC              (1 << 14)
#define PE_SYM_ATTR_TYPE_DEBUG              (1 << 15)
#define PE_SYM_ATTR_TYPE_PDATA              (1 << 16)
#define PE_SYM_ATTR_TYPE_XDATA              (1 << 17)
#define PE_SYM_ATTR_TYPE_XATTR              (1 << 18)
#define PE_SYM_ATTR_TYPE_RELOC              (1 << 19)
#define PE_SYM_ATTR_TYPE_RSRC               (1 << 20)

#define PE_SYM_ATTR_BIND_LOCAL              (1 << 21)
#define PE_SYM_ATTR_BIND_GLOBAL             (1 << 22)
#define PE_SYM_ATTR_BIND_UNIQUE             (1 << 23)
#define PE_SYM_ATTR_BIND_PENDING            (1 << 24)
#define PE_SYM_ATTR_BIND_WEAK_ALIAS         (1 << 25)
#define PE_SYM_ATTR_BIND_WEAK_EXTERN        (1 << 26)
#define PE_SYM_ATTR_BIND_WEAK_SYMBOL        (1 << 27)

#define PE_SYM_ATTR_VISIBILITY_DEFAULT      (1 << 28)
#define PE_SYM_ATTR_VISIBILITY_PROTECTED    (1 << 29)
#define PE_SYM_ATTR_VISIBILITY_HIDDEN       (1 << 30)
#define PE_SYM_ATTR_VISIBILITY_INTERNAL     (1 << 31)

#endif