home *** CD-ROM | disk | FTP | other *** search
/ Power Programming / powerprogramming1994.iso / progtool / pgmutl / val_link.arc / TYPES.H < prev    next >
Text File  |  1989-02-18  |  19KB  |  516 lines

  1. /*                                 TYPES.H                                 */
  2.  
  3. Type
  4.  Structure acbp_struct                       acbp_type;
  5. Type acbp_type                              *acbp_ptr;
  6. Type
  7.  Structure bit_16_switch_struct              bit_16_switch_type;
  8. Type bit_16_switch_type                     *bit_16_switch_ptr;
  9. Type
  10.  Structure boolean_switch_struct             boolean_switch_type;
  11. Type boolean_switch_type                    *boolean_switch_ptr;
  12. Type
  13.  Enumeration combine_enum                    combine_type;
  14. Type
  15.  Structure communal_entry_struct             communal_entry_type;
  16. Type
  17.  Structure DTA_struct                        DTA_type;
  18. Type DTA_type far                           *DTA_ptr;
  19. Type
  20.  Union entry_information_union               entry_information_type;
  21. Type
  22.  Structure EXE_header_struct                 EXE_header_type;
  23. Type EXE_header_type far                    *EXE_header_ptr;
  24. Type
  25.  Structure external_entry_struct             external_entry_type;
  26. Type
  27.  Structure file_info_struct                  file_info_type;
  28. Type file_info_type far                     *file_info_ptr;
  29. Type
  30.  Structure file_struct                       file_type;
  31. Type file_type                              *file_ptr;
  32. Type
  33.  Structure FIX_DAT_struct                    FIX_DAT_type;
  34. Type FIX_DAT_type                           *FIX_DAT_ptr;
  35. Type
  36.  Structure fixup_struct                      fixup_type;
  37. Type
  38.  Structure group_entry_struct                group_entry_type;
  39. Type group_entry_type far                   *group_entry_ptr;
  40. Type group_entry_ptr far                    *group_entry_ptr_array;
  41. Type
  42.  Structure internal_entry_struct             internal_entry_type;
  43. Type
  44.  Structure library_directory_struct          library_directory_type;
  45. Type library_directory_type                 *library_directory_ptr;
  46. Type
  47.  Structure library_entry_struct              library_entry_type;
  48. Type
  49.  Structure library_file_header_struct        library_file_header_type;
  50. Type library_file_header_type               *library_file_header_ptr;
  51. Type
  52.  Structure library_symbol_entry_struct       library_symbol_entry_type;
  53. Type library_symbol_entry_type              *library_symbol_entry_ptr;
  54. Type
  55.  Structure lname_entry_struct                lname_entry_type;
  56. Type lname_entry_type far                   *lname_entry_ptr;
  57. Type lname_entry_ptr far                    *lname_entry_ptr_array;
  58. Type
  59.  Enumeration loc_enum                        loc_type;
  60. Type
  61.  Structure LOCAT_struct                      LOCAT_type;
  62. Type LOCAT_type                             *LOCAT_ptr;
  63. Type
  64.  Structure lseg_struct                       lseg_type;
  65. Type lseg_type far                          *lseg_ptr;
  66. Type lseg_ptr far                           *lseg_ptr_array;
  67. Type
  68.  Structure memory_descriptor_struct          memory_descriptor_type;
  69. Type memory_descriptor_type far             *memory_descriptor_ptr;
  70. Type
  71.  Structure MOD_TYP_struct                    MOD_TYP_type;
  72. Type MOD_TYP_type                           *MOD_TYP_ptr;
  73. Type
  74.  Union obj_ptr_union                         obj_ptr_type;
  75. Type
  76.  Structure obj_record_header_struct          obj_record_header_type;
  77. Type obj_record_header_type                 *obj_record_header_ptr;
  78. Type
  79.  Enumeration obj_mod_rec_type_enum           object_module_record_types;
  80. Type
  81.  Enumeration public_entry_class_enum         public_entry_class_type;
  82. Type
  83.  Structure public_entry_struct               public_entry_type;
  84. Type public_entry_type far                  *public_entry_ptr;
  85. Type public_entry_ptr far                   *public_entry_ptr_array;
  86. Type
  87.  Structure pool_descriptor_struct            pool_descriptor_type;
  88. Type pool_descriptor_type                   *pool_descriptor_ptr;
  89. Type
  90.  Structure segment_entry_struct              segment_entry_type;
  91. Type segment_entry_type far                 *segment_entry_ptr;
  92. Type segment_entry_ptr far                  *segment_entry_ptr_array;
  93. Type
  94.  Structure switch_table_struct               switch_table_type;
  95. Type switch_table_type                      *switch_table_ptr;
  96. Type
  97. Structure temp_file_header_struct            temp_file_header_type;
  98. Type
  99.  Structure text_switch_struct                text_switch_type;
  100. Type text_switch_type                       *text_switch_ptr;
  101. Type
  102.  Structure thread_struct                     thread_type;
  103. Type
  104.  Structure TRD_DAT_struct                    TRD_DAT_type;
  105. Type TRD_DAT_type                           *TRD_DAT_ptr;
  106. Type
  107.  Enumeration token_class_enum                token_class_type;
  108. Type
  109.  Structure token_stack_struct                token_stack_type;
  110. Type token_stack_type far                   *token_stack_ptr;
  111.  
  112. Structure acbp_struct
  113.  BeginStructure
  114.   unsigned                             p:1;
  115.   unsigned                             b:1;
  116.   unsigned                             c:3;
  117.   unsigned                             a:3;
  118.  EndStructure;
  119.  
  120. Enumeration align_enum
  121.  BeginEnumeration
  122.   absolute_segment,
  123.   byte_aligned,
  124.   word_aligned,
  125.   paragraph_aligned,
  126.   page_aligned,
  127.   dword_aligned
  128.  EndEnumeration;
  129.  
  130. Structure bit_16_switch_struct
  131.  BeginStructure
  132.   bit_16                               val;
  133.   bit_16                               min;
  134.   bit_16                               max;
  135.   bit_16                               def;
  136.   bit_16                               set;
  137.  EndStructure;
  138.  
  139. Structure boolean_switch_struct
  140.  BeginStructure
  141.   bit_16                               val;
  142.  EndStructure;
  143.  
  144. Enumeration combine_enum
  145.  BeginEnumeration
  146.   private_combine                      = 0,
  147.   public_combine                       = 2,
  148.   stack_combine                        = 5,
  149.   common_combine                       = 6,
  150.   blank_common_combine                 = 9
  151.  EndEnumeration;
  152.  
  153. Structure DTA_struct
  154.  BeginStructure
  155.   byte                                 DOS_reserved[21];
  156.   bit_8                                attribute;
  157.   bit_16                               time_stamp;
  158.   bit_16                               date_stamp;
  159.   bit_32                               file_size;
  160.   byte                                 filename[13];
  161.   byte                                 filler[85];
  162.  EndStructure;
  163.  
  164. Structure EXE_header_struct
  165.  BeginStructure
  166.   bit_16                               signature;
  167.   bit_16                               image_length_MOD_512;
  168.   bit_16                               image_length_DIV_512;
  169.   bit_16                               n_relocation_items;
  170.   bit_16                               n_header_paragraphs;
  171.   bit_16                               min_paragraphs_above;
  172.   bit_16                               max_paragraphs_above;
  173.   bit_16                               initial_SS;
  174.   bit_16                               initial_SP;
  175.   bit_16                               checksum;
  176.   bit_16                               initial_IP;
  177.   bit_16                               initial_CS;
  178.   bit_16                               offset_to_relocation_table;
  179.   bit_16                               overlay;
  180.   bit_16                               always_one;
  181.   bit_32                               relocation_table[1];
  182.  EndStructure;
  183.  
  184. Structure external_entry_struct
  185.  BeginStructure
  186.   bit_16                               reserved;
  187.  EndStructure;
  188.  
  189. Structure internal_entry_struct
  190.  BeginStructure
  191.   group_entry_ptr                      group;
  192.   lseg_ptr                             lseg;
  193.   bit_16                               frame;
  194.   bit_16                               offset;
  195.  EndStructure;
  196.  
  197. Structure library_entry_struct
  198.  BeginStructure
  199.   file_info_ptr                        lib_file;
  200.   bit_16                               page;
  201.   bit_8                                requested;
  202.  EndStructure;
  203.  
  204. Structure communal_entry_struct
  205.  BeginStructure
  206.   public_entry_ptr                     next_communal;
  207.   bit_32                               element_size;
  208.   bit_32                               element_count;
  209.  EndStructure;
  210.  
  211. Union entry_information_union
  212.  BeginUnion
  213.   library_entry_type                   library_type;
  214.   external_entry_type                  external_type;
  215.   internal_entry_type                  internal_type;
  216.   communal_entry_type                  communal_type;
  217.  EndUnion;
  218.  
  219. Enumeration public_entry_class_enum
  220.  BeginEnumeration
  221.   unused,
  222.   public_in_library,
  223.   external,
  224.   internal,
  225.   far_communal,
  226.   near_communal
  227.  EndEnumeration;
  228.  
  229. Structure public_entry_struct
  230.  BeginStructure
  231.   public_entry_ptr                     next;
  232.   public_entry_ptr                     next_congruent;
  233.   bit_8                                type_entry;
  234.   entry_information_type               entry;
  235.   bit_16                               module;
  236.   bit_16                               length;
  237.   byte                                 symbol[1];
  238.  EndStructure;
  239. #define Library                        entry.library_type
  240. #define External                       entry.external_type
  241. #define Internal                       entry.internal_type
  242. #define Communal                       entry.communal_type
  243.  
  244. ListTypeOf(public_entry);
  245.  
  246. Structure file_info_struct
  247.  BeginStructure
  248.   file_info_ptr                        next;
  249.   bit_8                                attribute;
  250.   bit_16                               time_stamp;
  251.   bit_16                               date_stamp;
  252.   bit_32                               file_size;
  253.   bit_16                               page_size;
  254.   bit_16                               request_count;
  255.   bit_16                               pass_count;
  256.   bit_16                               module_count;
  257.   public_entry_list                    external_list;
  258.   byte                                 filename[1];
  259.  EndStructure;
  260.  
  261. ListTypeOf(file_info);
  262.  
  263. Structure file_struct
  264.  BeginStructure
  265.   file_info_ptr                        file_info;
  266.   bit_16                               file_handle;
  267.   bit_32                               start_of_buffer_position;
  268.   bit_32                               next_buffer_position;
  269.   byte_ptr                             buffer;
  270.   byte_ptr                             current_byte;
  271.   bit_16                               buffer_size;
  272.   bit_16                               IO_limit;
  273.   bit_16                               bytes_in_buffer;
  274.   bit_16                               bytes_left_in_buffer;
  275.   bit_16                               byte_position;
  276.  EndStructure;
  277.  
  278. Structure FIX_DAT_struct
  279.  BeginStructure
  280.   unsigned                             targt:2;
  281.   unsigned                             p:1;
  282.   unsigned                             t:1;
  283.   unsigned                             frame:3;
  284.   unsigned                             f:1;
  285.  EndStructure;
  286.  
  287. Structure fixup_struct
  288.  BeginStructure
  289.   void far                            *frame_referent;
  290.   void far                            *target_referent;
  291.   bit_16                               target_offset;
  292.   unsigned                             location_type:3;
  293.   unsigned                             mode:1;
  294.   unsigned                             frame_method:3;
  295.   unsigned                             target_method:2;
  296.   unsigned                             external_error_detected:1;
  297.   unsigned                             reserved:6;
  298.  EndStructure;
  299.  
  300. Structure group_entry_struct
  301.  BeginStructure
  302.   group_entry_ptr                      next;
  303.   group_entry_ptr                      next_congruent;
  304.   lname_entry_ptr                      group_name;
  305.   segment_entry_ptr                    first_segment;
  306.  EndStructure;
  307.  
  308. ListTypeOf(group_entry);
  309.  
  310. Structure library_directory_struct
  311.  BeginStructure
  312.   bit_8                                offset_to_symbol[38];
  313.   byte                                 symbol_area[474];
  314.  EndStructure;
  315.  
  316. Structure library_file_header_struct
  317.  BeginStructure
  318.   bit_8                                flag;
  319.   bit_16                               page_size;
  320.   bit_32                               directory_position;
  321.   bit_16                               n_directory_blocks;
  322.  EndStructure;
  323.  
  324.  Structure library_symbol_entry_struct
  325.   BeginStructure
  326.    bit_8                               length_of_symbol;
  327.    byte                                symbol[1];
  328.   EndStructure;
  329.  
  330. Structure lname_entry_struct
  331.  BeginStructure
  332.   lname_entry_ptr                      next_congruent;
  333.   bit_16                               lname_checksum;
  334.   bit_16                               length;
  335.   byte                                 symbol[1];
  336.  EndStructure;
  337.  
  338. Structure LOCAT_struct
  339.  BeginStructure
  340.   unsigned                             data_record_offset:10;
  341.   unsigned                             loc:3;
  342.   unsigned                             s:1;
  343.   unsigned                             m:1;
  344.   unsigned                             type_fixupp_record:1;
  345.  EndStructure;
  346.  
  347. Enumeration loc_enum
  348.  BeginEnumeration
  349.   lobyte_location,
  350.   offset_location,
  351.   base_location,
  352.   pointer_location,
  353.   hibyte_location
  354.  EndEnumeration;
  355.  
  356. Structure lseg_struct
  357.  BeginStructure
  358.   lseg_ptr                             next;
  359.   segment_entry_ptr                    segment;
  360.   lname_entry_ptr                      tmodule;
  361.   file_info_ptr                        file;
  362.   bit_32                               address;
  363.   bit_32                               length;
  364.   bit_32                               highest_uninitialized_byte;
  365.   bit_8                                align;
  366.   byte_ptr                             data;
  367.  EndStructure;
  368.  
  369. ListTypeOf(lseg);
  370.  
  371. Structure memory_descriptor_struct
  372.  BeginStructure
  373.   memory_descriptor_ptr                next;
  374.   byte_ptr                             chunk;
  375.   bit_32                               available;
  376.   bit_32                               size;
  377.   byte_ptr                             unused_base;
  378.  EndStructure;
  379.  
  380. Structure MOD_TYP_struct
  381.  BeginStructure
  382.   unsigned                             l:1;
  383.   unsigned                             zeros:5;
  384.   unsigned                             mattr:2;
  385.  EndStructure;
  386.  
  387. Union obj_ptr_union
  388.  BeginUnion
  389.   bit_8                               *b8;
  390.   bit_16                              *b16;
  391.   bit_32                              *b32;
  392.   acbp_ptr                             acbp;
  393.   FIX_DAT_ptr                          FIX_DAT;
  394.   LOCAT_ptr                            LOCAT;
  395.   MOD_TYP_ptr                          MOD_TYP;
  396.   TRD_DAT_ptr                          TRD_DAT;
  397.  EndUnion;
  398.  
  399. Enumeration obj_mod_rec_type_enum
  400.  BeginEnumeration
  401.   THEADR_record                        = 0x80,
  402.   COMENT_record                        = 0x88,
  403.   MODEND_record                        = 0x8a,
  404.   EXTDEF_record                        = 0x8c,
  405.   TYPDEF_record                        = 0x8e,
  406.   PUBDEF_record                        = 0x90,
  407.   LINNUM_record                        = 0x94,
  408.   LNAMES_record                        = 0x96,
  409.   SEGDEF_record                        = 0x98,
  410.   GRPDEF_record                        = 0x9a,
  411.   FIXUPP_record                        = 0x9c,
  412.   LEDATA_record                        = 0xa0,
  413.   LIDATA_record                        = 0xa2,
  414.   COMDEF_record                        = 0xb0,
  415.   FORREF_record                        = 0xb2,
  416.   MODEXT_record                        = 0xb4,
  417.   MODPUB_record                        = 0xb6
  418.  EndEnumeration;
  419.  
  420. Structure obj_record_header_struct
  421.  BeginStructure
  422.   bit_8                                rec_typ;
  423.   bit_16                               rec_len;
  424.   byte                                 variant_part[1];
  425.  EndStructure;
  426.  
  427. Structure pool_descriptor_struct
  428.  BeginStructure
  429.   memory_descriptor_ptr                memory_descriptor_list;
  430.   char_ptr                             pool_id;
  431.   bit_32                               pool_size;
  432.   bit_32                               used_bytes;
  433.  EndStructure;
  434.  
  435. Structure segment_entry_struct
  436.  BeginStructure
  437.   segment_entry_ptr                    next;
  438.   segment_entry_ptr                    next_congruent;
  439.   lname_entry_ptr                      segment_name;
  440.   lname_entry_ptr                      class_name;
  441.   bit_8                                combine;
  442.   bit_32                               address;
  443.   bit_32                               length;
  444.   bit_32                               highest_uninitialized_byte;
  445.   lseg_list                            lsegs;
  446.   group_entry_ptr                      owning_group;
  447.  EndStructure;
  448.  
  449. ListTypeOf(segment_entry);
  450.  
  451. Structure switch_table_struct
  452.  BeginStructure
  453.   bit_8                                min_length;
  454.   char                                *abbr_name;
  455.   char                                *full_name;
  456.   void                                *affected_thing;
  457.   void                  (*switch_processor)(switch_table_ptr current_switch);
  458.  EndStructure;
  459.  
  460. Structure temp_file_header_struct
  461.  BeginStructure
  462.   bit_8                                rec_typ;
  463.   bit_16                               rec_len;
  464.   lseg_ptr                             lseg;
  465.   bit_16                               offset;
  466.  EndStructure;
  467.  
  468. Structure text_switch_struct
  469.  BeginStructure
  470.   string_ptr                           val;
  471.  EndStructure;
  472.  
  473. Structure thread_struct
  474.  BeginStructure
  475.   bit_8                                method;
  476.   void far                            *referent;
  477.   bit_8                                thread_defined;
  478.  EndStructure;
  479.  
  480. Enumeration token_class_enum
  481.  BeginEnumeration
  482.   continuation_token_type,
  483.   end_of_command_line_token_type,
  484.   filename_token_type,
  485.   indirect_file_token_type,
  486.   line_end_token_type,
  487.   number_token_type,
  488.   separator_token_type,
  489.   switch_token_type,
  490.   switch_end_token_type,
  491.   text_token_type,
  492.   terminator_token_type
  493.  EndEnumeration;
  494.  
  495. Structure token_stack_struct
  496.  BeginStructure
  497.   token_stack_ptr                      next;
  498.   FILE                                *source_file;
  499.   byte                                 break_char;
  500.   string_ptr                           token_string;
  501.   bit_16                               token_string_index;
  502.  EndStructure;
  503.  
  504. ListTypeOf(token_stack);
  505.  
  506. Structure TRD_DAT_struct
  507.  BeginStructure
  508.   unsigned                             thred:2;
  509.   unsigned                             method:3;
  510.   unsigned                             z:1;
  511.   unsigned                             d:1;
  512.   unsigned                             type_fixupp_record:1;
  513.  EndStructure;
  514.  
  515.  
  516.