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.

146 lines
2.0 KiB

  1. /*++
  2. Copyright (c) 2000 Microsoft Corporation
  3. Module Name:
  4. misc.c
  5. Abstract:
  6. This module implements machine dependent miscellaneous kernel functions.
  7. Author:
  8. David N. Cutler (davec) - 6-Dec-2000
  9. Environment:
  10. Kernel mode only.
  11. --*/
  12. #include "ki.h"
  13. VOID
  14. KeRestoreProcessorSpecificFeatures(
  15. VOID
  16. )
  17. /*++
  18. Routine Description:
  19. Restore processor specific features. This routine is called
  20. when processors have been restored to a powered on state to
  21. restore those things which are not part of the processor's
  22. "normal" context which may have been lost. For example, this
  23. routine is called when a system is resumed from hibernate or
  24. suspend.
  25. Arguments:
  26. None.
  27. Return Value:
  28. None.
  29. --*/
  30. {
  31. return;
  32. }
  33. VOID
  34. KeSaveStateForHibernate (
  35. IN PKPROCESSOR_STATE ProcessorState
  36. )
  37. /*++
  38. Routine Description:
  39. Saves all processor-specific state that must be preserved
  40. across an S4 state (hibernation).
  41. Arguments:
  42. ProcessorState - Supplies the KPROCESSOR_STATE where the
  43. current CPU's state is to be saved.
  44. Return Value:
  45. None.
  46. --*/
  47. {
  48. RtlCaptureContext(&ProcessorState->ContextFrame);
  49. KiSaveProcessorControlState(ProcessorState);
  50. }
  51. VOID
  52. KiCheckBreakInRequest (
  53. VOID
  54. )
  55. /*++
  56. Routine Description:
  57. This routine conditionally generates a debug break with status if a
  58. break in request is pending.
  59. Arguments:
  60. None.
  61. Return Value:
  62. None.
  63. --*/
  64. {
  65. if (KdPollBreakIn() != FALSE) {
  66. DbgBreakPointWithStatus(DBG_STATUS_CONTROL_C);
  67. }
  68. return;
  69. }
  70. VOID
  71. KiInstantiateInlineFunctions (
  72. VOID
  73. )
  74. /*++
  75. Routine Description:
  76. This function exists solely to instantiate functions that are:
  77. - Exported from the kernel
  78. - Inlined within the kernel
  79. - For whatever reason are not instantiated elsewhere in the kernel
  80. Note: This funcion is never actually executed
  81. Arguments:
  82. None
  83. Return Value:
  84. None
  85. --*/
  86. {
  87. KeRaiseIrqlToDpcLevel();
  88. }