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.

89 lines
1.4 KiB

  1. /*++
  2. Copyright (c) 2000 Microsoft Corporation
  3. Module Name:
  4. tracedbp.h
  5. Abstract:
  6. This header contains the private interfaces for the trace database
  7. module (hash table to store stack traces in User/Kernel mode).
  8. Author:
  9. Silviu Calinoiu (SilviuC) 22-Feb-2000
  10. Revision History:
  11. --*/
  12. #ifndef _TRACEDBP_H
  13. #define _TRACEDBP_H
  14. //
  15. // RTL_TRACE_SEGMENT
  16. //
  17. typedef struct _RTL_TRACE_SEGMENT {
  18. ULONG Magic;
  19. struct _RTL_TRACE_DATABASE * Database;
  20. struct _RTL_TRACE_SEGMENT * NextSegment;
  21. SIZE_T TotalSize;
  22. PCHAR SegmentStart;
  23. PCHAR SegmentEnd;
  24. PCHAR SegmentFree;
  25. } RTL_TRACE_SEGMENT, * PRTL_TRACE_SEGMENT;
  26. //
  27. // RTL_TRACE_DATABASE
  28. //
  29. typedef struct _RTL_TRACE_DATABASE {
  30. ULONG Magic;
  31. ULONG Flags;
  32. ULONG Tag;
  33. struct _RTL_TRACE_SEGMENT * SegmentList;
  34. SIZE_T MaximumSize;
  35. SIZE_T CurrentSize;
  36. #ifdef NTOS_KERNEL_RUNTIME
  37. KIRQL SavedIrql;
  38. PVOID Owner;
  39. union {
  40. KSPIN_LOCK SpinLock;
  41. FAST_MUTEX FastMutex;
  42. } u;
  43. #else
  44. PVOID Owner;
  45. RTL_CRITICAL_SECTION Lock;
  46. #endif // #ifdef NTOS_KERNEL_RUNTIME
  47. ULONG NoOfBuckets;
  48. struct _RTL_TRACE_BLOCK * * Buckets;
  49. RTL_TRACE_HASH_FUNCTION HashFunction;
  50. SIZE_T NoOfTraces;
  51. SIZE_T NoOfHits;
  52. ULONG HashCounter[16];
  53. } RTL_TRACE_DATABASE, * PRTL_TRACE_DATABASE;
  54. #endif // #ifndef _TRACEDBP_H
  55. //
  56. // End of header: tracedbp.h
  57. //