home *** CD-ROM | disk | FTP | other *** search
/ Total Destruction / Total_Destruction.iso / addons / Lccwin32.exe / Lccwin32 / lccpub / src / sym.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-11-11  |  2.6 KB  |  72 lines

  1. /*
  2.  
  3. Type Representation
  4.  
  5. The Type field of a symbol table entry contains two bytes,
  6.  
  7. each byte representing type information.
  8.  
  9. The least-significant byte represents simple (base) data 
  10.  
  11. type, and the most-significant byte represents complex type, if any:
  12.  
  13. MSB            LSB
  14.  
  15. Complex type: none,    Base type: integer, floating-point, etc.
  16.  
  17. pointer, function, array    
  18.  
  19.  
  20.  
  21. The following values are defined for base type, although 
  22.  
  23. Microsoft tools generally do not use this field, setting 
  24.  
  25. the least-significant byte to 0. Instead, CodeView 
  26.  
  27. information is used to indicate types. The
  28.  
  29. possible COFF values are :
  30.  
  31. Constant    Value    
  32.  
  33.     Description
  34.  
  35. */
  36.  
  37. #define IMAGE_SYM_TYPE_NULL    0
  38.  
  39.     /* No type information, or unknown base type. 
  40.  
  41.     Microsoft tools use this setting. */
  42.  
  43. #define IMAGE_SYM_TYPE_VOID    1
  44.  
  45.     /* No valid type; used with void pointers 
  46.  
  47.     and functions. */
  48.  
  49. #define IMAGE_SYM_TYPE_CHAR    2
  50.  
  51.     /* Character (signed byte). */
  52.  
  53. #define IMAGE_SYM_TYPE_SHORT    3
  54.  
  55.     /* Two-byte signed integer. */
  56.  
  57. #define IMAGE_SYM_TYPE_INT    4
  58.  
  59.     /* Natural integer type (normally four bytes in NT). */
  60.  
  61. #define IMAGE_SYM_TYPE_LONG    5
  62.  
  63.     /* Four-byte signed integer. */
  64.  
  65. #define IMAGE_SYM_TYPE_FLOAT    6
  66.  
  67.     /* Four-byte floating-point number. */
  68.  
  69. #define IMAGE_SYM_TYPE_DOUBLE    7
  70.  
  71.     /* Eight-byte floating-point number. */
  72.  
  73. #define IMAGE_SYM_TYPE_STRUCT    8
  74.  
  75.     /* Structure. */
  76.  
  77. #define IMAGE_SYM_TYPE_UNION    9
  78.  
  79.     /* Union. */
  80.  
  81. #define IMAGE_SYM_TYPE_ENUM    10
  82.  
  83.     /* Enumerated type. */
  84.  
  85. #define IMAGE_SYM_TYPE_MOE    11
  86.  
  87.     /* Member of enumeration (a specific value). */
  88.  
  89. #define IMAGE_SYM_TYPE_BYTE    12
  90.  
  91.     /* Byte; unsigned one-byte integer. */
  92.  
  93. #define IMAGE_SYM_TYPE_WORD    13
  94.  
  95.     /* Word; unsigned two-byte integer. */
  96.  
  97. #define IMAGE_SYM_TYPE_UINT    14
  98.  
  99.     /* Unsigned integer of natural size (normally, four bytes). */
  100.  
  101. #define IMAGE_SYM_TYPE_DWORD    15
  102.  
  103.     /* Unsigned four-byte integer. */
  104.  
  105. /*
  106.  
  107. The  most significant byte specifies whether the symbol 
  108.  
  109. is a pointer to, function returning, or array of the base 
  110.  
  111. type specified in the least significant byte. Microsoft tools 
  112.  
  113. use this field only to indicate whether or not the symbol is 
  114.  
  115. a function, so that the only two resulting values are 0x0 
  116.  
  117. and 0x20 for the Type field. However, other tools can use 
  118.  
  119. this field to communicate more information.
  120.  
  121.  
  122.  
  123. Constant    Value    Description
  124.  
  125. */
  126.  
  127. #define IMAGE_SYM_DTYPE_NULL    0
  128.  
  129.     /* No derived type; the symbol is a simple scalar variable. */
  130.  
  131. #define IMAGE_SYM_DTYPE_POINTER    1
  132.  
  133.     /* Pointer to base type. */
  134.  
  135. #define IMAGE_SYM_DTYPE_FUNCTION    2
  136.  
  137.     /* Function returning base type. */
  138.  
  139. #define IMAGE_SYM_DTYPE_ARRAY    3    
  140.  
  141.     /* Array of base type. */
  142.  
  143.