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.

156 lines
2.0 KiB

  1. /*++
  2. Copyright (c) 1994 Microsoft Corporation
  3. All rights reserved.
  4. Module Name:
  5. CLink.cxx
  6. Abstract:
  7. C linkage support for DEBUG support only.
  8. Author:
  9. Albert Ting (AlbertT) 10-Oct-95
  10. Revision History:
  11. --*/
  12. #include "spllibp.hxx"
  13. #pragma hdrstop
  14. #if DBG
  15. extern DBG_POINTERS gDbgPointers;
  16. HANDLE
  17. DbgAllocBackTrace(
  18. VOID
  19. )
  20. {
  21. return (HANDLE)(VBackTrace*) new TBackTraceMem;
  22. }
  23. HANDLE
  24. DbgAllocBackTraceMem(
  25. VOID
  26. )
  27. {
  28. return (HANDLE)(VBackTrace*) new TBackTraceMem;
  29. }
  30. HANDLE
  31. DbgAllocBackTraceFile(
  32. VOID
  33. )
  34. {
  35. return (HANDLE)(VBackTrace*) new TBackTraceFile;
  36. }
  37. VOID
  38. DbgFreeBackTrace(
  39. HANDLE hBackTrace
  40. )
  41. {
  42. delete (VBackTrace*)hBackTrace;
  43. }
  44. VOID
  45. DbgCaptureBackTrace(
  46. HANDLE hBackTrace,
  47. ULONG_PTR Info1,
  48. ULONG_PTR Info2,
  49. ULONG_PTR Info3
  50. )
  51. {
  52. VBackTrace* pBackTrace = (VBackTrace*)hBackTrace;
  53. if( pBackTrace ){
  54. pBackTrace->hCapture( Info1, Info2, Info3 );
  55. }
  56. }
  57. HANDLE
  58. DbgAllocCritSec(
  59. VOID
  60. )
  61. {
  62. return (HANDLE)new MCritSec;
  63. }
  64. VOID
  65. DbgFreeCritSec(
  66. HANDLE hCritSec
  67. )
  68. {
  69. delete (MCritSec*)hCritSec;
  70. }
  71. BOOL
  72. DbgInsideCritSec(
  73. HANDLE hCritSec
  74. )
  75. {
  76. return ((MCritSec*)hCritSec)->bInside();
  77. }
  78. BOOL
  79. DbgOutsideCritSec(
  80. HANDLE hCritSec
  81. )
  82. {
  83. return ((MCritSec*)hCritSec)->bOutside();
  84. }
  85. VOID
  86. DbgEnterCritSec(
  87. HANDLE hCritSec
  88. )
  89. {
  90. ((MCritSec*)hCritSec)->vEnter();
  91. }
  92. VOID
  93. DbgLeaveCritSec(
  94. HANDLE hCritSec
  95. )
  96. {
  97. ((MCritSec*)hCritSec)->vLeave();
  98. }
  99. VOID
  100. DbgSetAllocFail(
  101. BOOL bEnable,
  102. LONG cAllocFail
  103. )
  104. {
  105. gbAllocFail = bEnable;
  106. gcAllocFail = cAllocFail;
  107. }
  108. PVOID
  109. DbgGetPointers(
  110. VOID
  111. )
  112. {
  113. return &gDbgPointers;
  114. }
  115. #else
  116. //
  117. // Stub these out so that non-DBG builds can link w/ debug spoolss.dll.
  118. //
  119. PVOID
  120. DbgGetPointers(
  121. VOID
  122. )
  123. {
  124. return NULL;
  125. }
  126. #endif