home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Tools / Languages / Harvest C 1.3 / Source Code / linkstruct.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-02-16  |  3.8 KB  |  120 lines  |  [TEXT/ALFA]

  1. /*
  2.  * Harvest C
  3.  * 
  4.  * Copyright 1991 Eric W. Sink   All rights reserved.
  5.  * 
  6.  * This file contains structures for the Harvest C linker.
  7.  * 
  8.  * 
  9.  */
  10.  
  11.  
  12. #ifndef LinkStruct_INTERFACE
  13. #define LinkStruct_INTERFACE
  14.  
  15. struct Block_S {
  16.     EString_t                        mem;
  17.     unsigned long                   size;
  18. };
  19. typedef struct Block_S          Block_t;
  20. typedef Block_t P__H           *BlockVia_t;
  21.  
  22. struct Reference_S {
  23.     unsigned short                  ID, ID2;
  24.     char                            isA5REL;
  25.     char                            isCOMPUTED;
  26.     char                            patchsize;
  27.     char                            patchkind;    /* 0 is code-code, 1 is
  28.                          * code-data 2 is data-code 3
  29.                          * is data-data */
  30.     char                            RefCount;
  31.     long P__H                      *Offsets;
  32.     struct Module_S P__H           *WhichModule;
  33.     struct Module_S P__H           *OtherModule;
  34.     struct Reference_S P__H        *next;
  35. };
  36. typedef struct Reference_S      Reference_t;
  37. typedef Reference_t P__H       *ReferenceVia_t;
  38.  
  39. struct Dictionary_S {
  40.     unsigned short                  ID;
  41.     struct Dictionary_S P__H       *next;
  42.     char                            name[1];
  43. };
  44. typedef struct Dictionary_S     Dictionary_t;
  45. typedef Dictionary_t P__H      *DictionaryVia_t;
  46.  
  47. struct EntryPoint_S {
  48.     char                            isMAIN;
  49.     char                            isEXTERN;
  50.     unsigned short                  ID;
  51.     unsigned long                   offset;
  52.     struct EntryPoint_S P__H       *next;
  53. };
  54. typedef struct EntryPoint_S     EntryPoint_t;
  55. typedef EntryPoint_t P__H      *EntryPointVia_t;
  56.  
  57. struct Module_S {
  58.     long sizeBytes;
  59.     EString_t                       Bytes;
  60.     Reference_t P__H               *ReferenceList;
  61.     struct Module_S P__H           *Entries;
  62.     unsigned long                   modulesize;
  63.     unsigned short                  ID;
  64.     char                            externref;
  65.     char                            isACTIVE;
  66.     char                            isMAIN;
  67.     struct Module_S P__H           *isENTRY;
  68.     char                            isEXTERN;
  69.     char                            isCODE;
  70.     int                             segment;
  71.     unsigned long                   segmentoffset;
  72.     unsigned long                   offset;
  73.     struct LinkerFile_S P__H       *file;
  74.     long                            A5offset;
  75.     struct Module_S P__H           *next;
  76. };
  77. typedef struct Module_S         Module_t;
  78. typedef Module_t P__H          *ModuleVia_t;
  79.  
  80. struct LinkerFile_S {
  81.     Module_t P__H                  *ModuleList;
  82.     Dictionary_t P__H              *DictionaryList;
  83.     int                             version;
  84.     char                            isNESTED;
  85.     char                            name[64];
  86.     struct LinkerFile_S P__H       *next;
  87. };
  88. typedef struct LinkerFile_S     LinkerFile_t;
  89. typedef LinkerFile_t P__H      *LinkerFileVia_t;
  90.  
  91. struct ModulePackage_S {
  92.     Module_t P__H                  *themod;
  93.     struct ModulePackage_S P__H    *next;
  94. };
  95. typedef struct ModulePackage_S  ModulePackage_t;
  96. typedef ModulePackage_t P__H   *ModulePackageVia_t;
  97.  
  98. struct DATAZone_S {
  99.     Block_t                         Image;
  100.     unsigned long                   CurrentSize;
  101.     unsigned long                   count;
  102.     ModulePackage_t P__H           *ModuleList;
  103. };
  104. typedef struct DATAZone_S       DATAZone_t;
  105.  
  106. struct Segment_S {
  107.     unsigned long                   CurrentSize;
  108.     ModulePackage_t P__H           *ModuleList;
  109.     unsigned short                  ID;
  110.     EString_t                       name;
  111.     unsigned short                  firstJT;
  112.     unsigned short                  countJT;
  113.     struct Segment_S P__H          *next;
  114.     Block_t                         Image;
  115. };
  116. typedef struct Segment_S        Segment_t;
  117. typedef Segment_t P__H         *SegmentVia_t;
  118.  
  119. #endif
  120.