Leaked source code of windows server 2003
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.

216 lines
6.2 KiB

  1. /**
  2. *** Copyright (C) 1996-97 Intel Corporation. All rights reserved.
  3. ***
  4. *** The information and source code contained herein is the exclusive
  5. *** property of Intel Corporation and may not be disclosed, examined
  6. *** or reproduced in whole or in part without explicit written authorization
  7. *** from the company.
  8. **/
  9. /******************************Module*Header*******************************\
  10. * Module Name: genia64.c *
  11. * *
  12. * This module implements a program which generates structure offset *
  13. * definitions for kernel structures that are accessed in assembly code. *
  14. * *
  15. * Copyright (c) 1992-1999 Microsoft Corporation *
  16. \**************************************************************************/
  17. #include "precomp.hxx"
  18. extern "C" {
  19. // needed until we cleanup the floating point stuff in ntgdistr.h
  20. #define __CPLUSPLUS
  21. };
  22. include(BASE_INC_PATH\genxx.h)
  23. define(`pcomment',`genCom($1)')
  24. define(`pblank',`genSpc($1)')
  25. define(`pequate',`{ SEF_EQUATE, $2, $1 },')
  26. define(`pstruct',`{ SEF_EQUATE, $2, "sizeof_"$1 },')
  27. STRUC_ELEMENT ElementList[] = {
  28. START_LIST
  29. //
  30. // Default object type.
  31. //
  32. pcomment("Object Type Information")
  33. pblank()
  34. pequate("DEF_TYPE ",DEF_TYPE )
  35. //
  36. // Stuff from: \nt\private\windows\gdi\gre\hmgr.h
  37. //
  38. pcomment("Handle Manager Structures")
  39. pblank()
  40. pequate("UNIQUE_BITS ",UNIQUE_BITS )
  41. pequate("NONINDEX_BITS ",NONINDEX_BITS)
  42. pequate("INDEX_BITS ",INDEX_BITS )
  43. pequate("INDEX_MASK ",INDEX_MASK )
  44. pequate("VALIDUNIQUEMASK ",(USHORT)~FULLUNIQUE_MASK )
  45. pequate("OBJECT_OWNER_PUBLIC",OBJECT_OWNER_PUBLIC )
  46. pblank()
  47. pstruct("OBJECT",sizeof(OBJECT))
  48. pequate("object_cExclusiveLock ",OFFSET(OBJECT,cExclusiveLock))
  49. pequate("object_Tid ",OFFSET(OBJECT,Tid))
  50. pblank()
  51. pstruct("ENTRY",sizeof(ENTRY))
  52. pblank()
  53. pequate("entry_einfo ",OFFSET(ENTRY,einfo ))
  54. pequate("entry_ObjectOwner ",OFFSET(ENTRY,ObjectOwner))
  55. pequate("entry_Objt ",OFFSET(ENTRY,Objt ))
  56. pequate("entry_FullUnique ",OFFSET(ENTRY,FullUnique ))
  57. pblank()
  58. //
  59. // Stuff from: \nt\private\windows\gdi\gre\patblt.hxx
  60. //
  61. pcomment("PatBlt Structures")
  62. pblank()
  63. pstruct("FETCHFRAME",sizeof(FETCHFRAME))
  64. pblank()
  65. pequate("ff_pvTrg ",OFFSET(FETCHFRAME,pvTrg ))
  66. pequate("ff_pvPat ",OFFSET(FETCHFRAME,pvPat ))
  67. pequate("ff_xPat ",OFFSET(FETCHFRAME,xPat ))
  68. pequate("ff_cxPat ",OFFSET(FETCHFRAME,cxPat ))
  69. pequate("ff_culFill ",OFFSET(FETCHFRAME,culFill ))
  70. pequate("ff_culWidth ",OFFSET(FETCHFRAME,culWidth ))
  71. pequate("ff_culFillTmp ",OFFSET(FETCHFRAME,culFillTmp))
  72. pblank()
  73. //
  74. // Stuff from: \nt\public\sdk\inc\ntdef.h
  75. //
  76. pcomment("Math Structures")
  77. pblank()
  78. pstruct("LARGE_INTEGER",sizeof(LARGE_INTEGER))
  79. pblank()
  80. pequate("li_LowPart ",OFFSET(LARGE_INTEGER,u.LowPart))
  81. pequate("li_HighPart",OFFSET(LARGE_INTEGER,u.HighPart))
  82. pblank()
  83. //
  84. // Stuff from: \nt\public\sdk\inc\windef.h
  85. //
  86. pstruct("POINTL",sizeof(POINTL))
  87. pblank()
  88. pequate("ptl_x",OFFSET(POINTL,x))
  89. pequate("ptl_y",OFFSET(POINTL,y))
  90. pblank()
  91. //
  92. // Stuff from: \nt\private\windows\gdi\gre\xformobj.hxx
  93. //
  94. pcomment("Xform Structures")
  95. pblank()
  96. pequate("XFORM_SCALE ",XFORM_SCALE)
  97. pequate("XFORM_UNITY ",XFORM_UNITY)
  98. pequate("XFORM_Y_NEG ",XFORM_Y_NEG)
  99. pequate("XFORM_FORMAT_LTOFX",XFORM_FORMAT_LTOFX)
  100. pblank()
  101. //
  102. // Stuff from: \nt\private\windows\gdi\gre\engine.hxx
  103. //
  104. pstruct("MATRIX",sizeof(MATRIX))
  105. pblank()
  106. pequate("mx_efM11 ",OFFSET(MATRIX,efM11 ))
  107. pequate("mx_efM12 ",OFFSET(MATRIX,efM12 ))
  108. pequate("mx_efM21 ",OFFSET(MATRIX,efM21 ))
  109. pequate("mx_efM22 ",OFFSET(MATRIX,efM22 ))
  110. pequate("mx_efDx ",OFFSET(MATRIX,efDx ))
  111. pequate("mx_efDy ",OFFSET(MATRIX,efDy ))
  112. pequate("mx_fxDx ",OFFSET(MATRIX,fxDx ))
  113. pequate("mx_fxDy ",OFFSET(MATRIX,fxDy ))
  114. pequate("mx_flAccel",OFFSET(MATRIX,flAccel))
  115. pblank()
  116. pstruct("VECTORL",sizeof(VECTORL))
  117. pblank()
  118. pequate("vl_x",OFFSET(VECTORL,x))
  119. pequate("vl_y",OFFSET(VECTORL,y))
  120. pblank()
  121. //
  122. // Stuff from: \nt\private\windows\gdi\gre\epointfl.hxx
  123. //
  124. pstruct("VECTORFL",sizeof(VECTORFL))
  125. pblank()
  126. pequate("vfl_x",OFFSET(VECTORFL,x))
  127. pequate("vfl_y",OFFSET(VECTORFL,y))
  128. pblank()
  129. //
  130. // Stuff from \nt\private\windows\gdi\gre\rfntobj.hxx
  131. //
  132. pcomment("Wide Character to Glyph Mapping Structure")
  133. pblank()
  134. pequate("gr_wcLow ",OFFSET(GPRUN,wcLow ))
  135. pequate("gr_cGlyphs",OFFSET(GPRUN,cGlyphs))
  136. pequate("gr_apgd ",OFFSET(GPRUN,apgd ))
  137. pblank()
  138. pcomment("Wide Character Run Structure")
  139. pblank()
  140. pequate("gt_cRuns ",OFFSET(WCGP,cRuns ))
  141. pequate("gt_pgdDefault",OFFSET(WCGP,pgdDefault))
  142. pequate("gt_agpRun ",OFFSET(WCGP,agpRun ))
  143. pblank()
  144. pcomment("Realized Font Object Structures")
  145. pblank()
  146. pequate("rf_wcgp ",OFFSET(RFONT,wcgp ))
  147. pequate("rf_ulContent",OFFSET(RFONT, ulContent))
  148. pblank()
  149. pcomment("User Realized Font Object Structures")
  150. pblank()
  151. pequate("rfo_prfnt",OFFSET(RFONTOBJ,prfnt))
  152. pblank()
  153. //
  154. // Stuff from \nt\public\oak\inc\winddi.h
  155. //
  156. pcomment("Glyph Data Structure")
  157. pblank()
  158. pequate("gd_hg ",OFFSET(GLYPHDATA, hg ))
  159. pequate("gd_gdf",OFFSET(GLYPHDATA, gdf))
  160. pblank()
  161. pcomment("Glyph Position Structure")
  162. pblank()
  163. pequate("gp_hg ",OFFSET(GLYPHPOS, hg ))
  164. pequate("gp_pgdf",OFFSET(GLYPHPOS, pgdf))
  165. pequate("GLYPHPOS", sizeof(GLYPHPOS))
  166. pequate("FO_HGLYPHS", FO_HGLYPHS)
  167. pblank()
  168. END_LIST
  169. };