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.

159 lines
6.8 KiB

  1. #ifndef _FEATURES_HPP_
  2. #define _FEATURES_HPP_
  3. // Ruler
  4. // 1 2 3 4 5 6 7 8
  5. //345678901234567890123456789012345678901234567890123456789012345678901234567890
  6. /********************************************************************/
  7. /* */
  8. /* The standard layout. */
  9. /* */
  10. /* The standard layout for 'hpp' files for this code is as */
  11. /* follows: */
  12. /* */
  13. /* 1. Include files. */
  14. /* 2. Constants exported from the class. */
  15. /* 3. Data structures exported from the class. */
  16. /* 4. Forward references to other data structures. */
  17. /* 5. Class specifications (including inline functions). */
  18. /* 6. Additional large inline functions. */
  19. /* */
  20. /* Any portion that is not required is simply omitted. */
  21. /* */
  22. /********************************************************************/
  23. #include "Standard.hpp"
  24. #include "System.hpp"
  25. /********************************************************************/
  26. /* */
  27. /* Active project list. */
  28. /* */
  29. /* The active project list contains all of the projects that */
  30. /* are currently selected. */
  31. /* */
  32. /********************************************************************/
  33. //#define COMPILING_PIPELINE_SERVER 1
  34. #define COMPILING_ROCKALL_III 1
  35. //#define COMPILING_WEB_SERVER 1
  36. /********************************************************************/
  37. /* */
  38. /* Active fetaure lists. */
  39. /* */
  40. /* The active features list contain all of the features that */
  41. /* are currently selected for each project. */
  42. /* */
  43. /********************************************************************/
  44. #ifdef COMPILING_PIPELINE_SERVER
  45. #ifdef DEBUGGING
  46. #define COMPILING_ROCKALL_LIBRARY 1 // Enable for testing.
  47. //#define DISABLE_MULTIPLE_PROCESSORS 1 // Disable for testing.
  48. #define ENABLE_LOCK_STATISTICS 1 // Enable for testing.
  49. #endif
  50. #define DISABLE_PRECOMPILED_HEADERS 1 // Disable for testing.
  51. #define DISABLE_STRUCTURED_EXCEPTIONS 1 // Disable for product groups.
  52. #define ENABLE_DEBUG_FILE 1 // Enable for testing.
  53. #define ENABLE_GLOBAL_ROCKALL 1 // Enable for pure speed.
  54. #define ENABLE_NON_STANDARD_ASSEMBLY 1 // Enable for pure speed.
  55. //#define PRINT_ACTIVE_PACKETS 1 // Enable for testing.
  56. #endif
  57. #ifdef COMPILING_ROCKALL_III
  58. #ifdef DEBUGGING
  59. #define ENABLE_HEAP_STATISTICS 1 // Enable stats in debug build.
  60. #endif
  61. #define DISABLE_ATOMIC_FLAGS 1 // Disable for product groups.
  62. //#define DISABLE_DEBUG_HELP 1
  63. #define DISABLE_ENVIRONMENT_VARIABLES 1 // Disable for product groups.
  64. #define DISABLE_GLOBAL_NEW 1 // Disable for product groups.
  65. //#define DISABLE_MULTIPLE_PROCESSORS 1 // Disable for testing.
  66. //#define DISABLE_PRECOMPILED_HEADERS 1 // Disable for testing.
  67. //#define DISABLE_STRUCTURED_EXCEPTIONS 1 // Disable for product groups.
  68. //#define ENABLE_DEBUG_FILE 1 // Create a debug file.
  69. //#define ENABLE_NON_STANDARD_ASSEMBLY 1 // Enable for pure speed.
  70. //#define ENABLE_RECURSIVE_LOCKS 1 // Enable to save lost of TLS.
  71. #endif
  72. #ifdef COMPILING_WEB_SERVER
  73. #ifdef DEBUGGING
  74. #define ENABLE_LOCK_STATISTICS 1 // Enable for testing.
  75. #define PRINT_ACTIVE_PACKETS 1 // Enable for testing.
  76. #endif
  77. #define ENABLE_DEBUG_FILE 1 // Create a debug file.
  78. #define ENABLE_NON_STANDARD_ASSEMBLY 1 // Enable for pure speed.
  79. #endif
  80. /********************************************************************/
  81. /* */
  82. /* The complete feature list. */
  83. /* */
  84. /* The code supports a significant number of optional features */
  85. /* which are listed in this file. Any feature can be activated */
  86. /* by copying the approriate setting. Please be sure to keep */
  87. /* all the flags up to date and leave at list one copy of each */
  88. /* flag below. */
  89. /* */
  90. /********************************************************************/
  91. #ifdef ACTIVATE_ALL_OPTIONS
  92. //
  93. // Standard options for all code.
  94. //
  95. #define ASSEMBLY_X86 1
  96. #define DEBUGGING 1
  97. #define DISABLE_GLOBAL_NEW 1
  98. #define DISABLE_PRECOMPILED_HEADERS 1
  99. #define DISABLE_STRUCTURED_EXCEPTIONS 1
  100. //
  101. // Standard options for the library code.
  102. //
  103. #define ENABLE_DEBUG_FILE 1
  104. #define ENABLE_GLOBAL_ROCKALL 1
  105. #define ENABLE_LOCK_STATISTICS 1
  106. #define ENABLE_NON_STANDARD_ASSEMBLY 1
  107. #define ENABLE_RECURSIVE_LOCKS 1
  108. #define DISABLE_ATOMIC_FLAGS 1
  109. #define DISABLE_DEBUG_HELP 1
  110. #define DISABLE_ENVIRONMENT_VARIABLES 1
  111. #define DISABLE_MULTIPLE_PROCESSORS 1
  112. #define DISABLE_STRING_LOCKS 1
  113. //
  114. // Rockall specific options.
  115. //
  116. #define COMPILING_ROCKALL_DLL 1
  117. #define COMPILING_ROCKALL_LIBRARY 1
  118. #define ENABLE_ALLOCATION_STATISTICS 1
  119. #define ENABLE_HEAP_STATISTICS 1
  120. #define NO_DEFAULT_HEAP 1
  121. //
  122. // Pipeline Server specific options.
  123. //
  124. #define ENABLE_BUFFER_LOCK 1
  125. #define ENABLE_ZERO_WRITE_BUFFER 1
  126. #define PRINT_ACTIVE_PACKETS 1
  127. //
  128. // Pipeline Server demo specific options.
  129. //
  130. #define ENABLE_DATABASE 1
  131. #define ENABLE_READING 1
  132. #define ENABLE_TRANSACTIONS 1
  133. #define ENABLE_WRITING 1
  134. //
  135. // Web Server specific options.
  136. //
  137. #define DISABLE_ASYNC_IO 1
  138. #define DISABLE_BUFFER_COPY 1
  139. #define DISABLE_WEB_LOCKS 1
  140. #endif
  141. #endif