Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

204 lines
4.8 KiB

  1. /* temp output file. */
  2. typedef struct strfile
  3. {
  4. struct strfile *next;
  5. char *filename; /* output file name */
  6. char *name; /* name for sorting */
  7. int blockType; // block type
  8. struct s_log *logfile; /* logfile */
  9. } *files, fileentry;
  10. /*
  11. * @doc INTERNAL
  12. *
  13. * @types fileentry | This is the temp output file entry structure.
  14. *
  15. * @field char * | filename | output file name
  16. *
  17. * @field char * | name | name for sorting
  18. *
  19. * @field int | blockType | block type
  20. *
  21. * @flag FUNCTION | This block is a Function (API)
  22. *
  23. * @flag MESSAGE | This block is a Message definition
  24. *
  25. * @flag CALLBACK | This block is a C Callback Function
  26. *
  27. * @flag MASMBLOCK | This block is a Masm Function
  28. *
  29. * @flag INTBLOCK | This block is a Interrupt
  30. *
  31. * @flag MASMCBBLOCK | This block is a Masm Callback Function
  32. *
  33. * @field struct <t s_log> * | logfile | logfile
  34. *
  35. * @othertype fileentry * | files
  36. *
  37. * @tagname strfile
  38. *
  39. */
  40. /* Log file */
  41. typedef struct s_log
  42. {
  43. struct s_log *next;
  44. char *pchlogname; /* logfile name */
  45. struct stBlock *pBlock; /* first regular Block */
  46. struct stBlock *pMBlock; /* first message Block */
  47. struct _EXTFile *pExt; /* input file */
  48. files inheadFile; /* list of files to read */
  49. files outheadFile; /* list of files in log */
  50. files outheadMFile; /* list of Message files in log */
  51. int outputType; /* type of data contained in logfiles */
  52. } logentry;
  53. /*
  54. * @doc INTERNAL
  55. *
  56. * @types logentry | Log file structure.
  57. *
  58. * @field struct <t s_log> * | next | next log file.
  59. *
  60. * @field char * | pchlogname | logfile name
  61. *
  62. * @field struct <t stBlock> * | pBlock | first regular Block
  63. *
  64. * @field struct <t stBlock> * | pMBlock | first Message block
  65. *
  66. * @field struct <t _EXTFile> * | pExt | Input file
  67. *
  68. * @field <t files> | inheadFile | list of files to read
  69. *
  70. * @field <t files> | outheadFile | list of files in log
  71. *
  72. * @field <t files> | outheadMFile | list of Message files in log
  73. *
  74. * @field int | outputType | type of data contained in logfile
  75. *
  76. * @tagname s_log
  77. *
  78. */
  79. /* a complete block */
  80. typedef struct stBlock
  81. {
  82. struct stBlock * next;
  83. fileentry *poutfile; /* where we go */
  84. struct _EXTFile *pExt; /* input file */
  85. /* block type identifiers */
  86. #define FUNCTION 0x10 // no special reason for numbering
  87. #define MESSAGE 0x20
  88. #define CALLBACK 0x30
  89. #define MASMBLOCK 0x40
  90. #define INTBLOCK 0x50
  91. #define MASMCBBLOCK 0x60
  92. int blockType;
  93. int srcline; /* where we came from (before extract) */
  94. char *srcfile;
  95. } aBlock;
  96. /*
  97. * @doc INTERNAL
  98. *
  99. * @types aBlock | A complete Block
  100. *
  101. * @field struct <t stBlock> * | next | next block in list
  102. *
  103. * @field struct <t _EXTFile> * |pExt | input file
  104. *
  105. * @field <t fileentry> * | poutfile | where we go
  106. *
  107. * @field int | blockType | Block type
  108. *
  109. * @flag FUNCTION | This block is a Function (API)
  110. *
  111. * @flag MESSAGE | This block is a Message definition
  112. *
  113. * @flag CALLBACK | This block is a C Callback Function
  114. *
  115. * @flag MASMBLOCK | This block is a Masm Function
  116. *
  117. * @flag INTBLOCK | This block is a Interrupt
  118. *
  119. * @flag MASMCBBLOCK | This block is a Masm Callback Function
  120. *
  121. * @field int | srcline | Where we came from (before extract)
  122. *
  123. * @field char * | srcfile | The orig. source file from extract
  124. *
  125. * @tagname stBlock
  126. *
  127. */
  128. typedef struct mmtime_tag {
  129. WORD wType; // the contents of the union
  130. union {
  131. DWORD ms; // milliseconds
  132. DWORD sample; // samples
  133. struct { // SMPTE
  134. BYTE hour; // hours
  135. BYTE min; // minutes
  136. BYTE sec; // seconds
  137. BYTE frame; // frames
  138. BYTE fps; // frames per second
  139. } smpte;
  140. struct { // MIDI
  141. BYTE bar; // bar
  142. BYTE pulse; // pulse
  143. } midi;
  144. } u;
  145. } MMTIME;
  146. /*
  147. * @doc INTERNAL
  148. *
  149. * @types MMTIME | Multimedia Time structure.
  150. *
  151. * @field WORD | wType | Specifies the type of the union.
  152. *
  153. * @union u | The contents of the union.
  154. *
  155. * @field DWORD | ms | Milliseconds.
  156. *
  157. * @field DWORD | sample | Sample.
  158. *
  159. * @struct smpte | SMPTE Time. Used when <e MMTIME.wType> specifies SMPTE.
  160. *
  161. * @field BYTE | hour | Hours.
  162. *
  163. * @field BYTE | min | Minutes.
  164. *
  165. * @field BYTE | sec | Seconds.
  166. *
  167. * @field BYTE | frame | Frames.
  168. *
  169. * @field BYTE | fps | Frames per second.
  170. *
  171. * @end
  172. *
  173. * @struct midi
  174. *
  175. * @field BYTE | bar | Bar
  176. *
  177. * @field BYTE | pulse | Pulse
  178. *
  179. * @end
  180. *
  181. * @end
  182. *
  183. * @tagname mmtime_tag
  184. *
  185. * @othertype MMTIME FAR *| LPMMTIME
  186. *
  187. */