keinit.h 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. /*++
  2. Copyright (c) 2013 Minoca Corp.
  3. This file is licensed under the terms of the GNU General Public License
  4. version 3. Alternative licensing terms are available. Contact
  5. info@minocacorp.com for details. See the LICENSE file at the root of this
  6. project for complete licensing information.
  7. Module Name:
  8. keinit.h
  9. Abstract:
  10. This header contains private definitions for the Kernel Executive
  11. initialization.
  12. Author:
  13. Evan Green 30-Jan-2013
  14. --*/
  15. //
  16. // ------------------------------------------------------------------- Includes
  17. //
  18. #include <minoca/kernel/bootload.h>
  19. //
  20. // ---------------------------------------------------------------- Definitions
  21. //
  22. //
  23. // ------------------------------------------------------ Data Type Definitions
  24. //
  25. //
  26. // -------------------------------------------------------------------- Globals
  27. //
  28. //
  29. // -------------------------------------------------------- Function Prototypes
  30. //
  31. KSTATUS
  32. KepArchInitialize (
  33. PKERNEL_INITIALIZATION_BLOCK Parameters,
  34. ULONG Phase
  35. );
  36. /*++
  37. Routine Description:
  38. This routine performs architecture-specific initialization for the kernel
  39. executive.
  40. Arguments:
  41. Parameters - Supplies a pointer to the kernel initialization parameters
  42. from the loader.
  43. Phase - Supplies the initialization phase.
  44. Return Value:
  45. Status code.
  46. --*/
  47. KSTATUS
  48. KepInitializeSystemResources (
  49. PKERNEL_INITIALIZATION_BLOCK Parameters,
  50. ULONG Phase
  51. );
  52. /*++
  53. Routine Description:
  54. This routine initializes the system resource manager.
  55. Arguments:
  56. Parameters - Supplies a pointer to the kernel initialization block.
  57. Phase - Supplies the phase. Valid values are 0 and 1.
  58. Return Value:
  59. Status code.
  60. --*/
  61. PSYSTEM_RESOURCE_HEADER
  62. KepGetSystemResource (
  63. SYSTEM_RESOURCE_TYPE ResourceType,
  64. BOOL Acquire
  65. );
  66. /*++
  67. Routine Description:
  68. This routine attempts to find an unacquired system resource of the given
  69. type.
  70. Arguments:
  71. ResourceType - Supplies the type of builtin resource to acquire.
  72. Acquire - Supplies a boolean indicating if the resource should be acquired
  73. or not.
  74. Return Value:
  75. Returns a pointer to a resource of the given type on success.
  76. NULL on failure.
  77. --*/
  78. KSTATUS
  79. KepInitializeCrashDumpSupport (
  80. VOID
  81. );
  82. /*++
  83. Routine Description:
  84. This routine initializes system crash dump support.
  85. Arguments:
  86. None.
  87. Return Value:
  88. Status code.
  89. --*/
  90. KSTATUS
  91. KepInitializeBaseVideo (
  92. PKERNEL_INITIALIZATION_BLOCK Parameters
  93. );
  94. /*++
  95. Routine Description:
  96. This routine initializes the built in base video library, which is used in
  97. case of emergencies to display to the screen.
  98. Arguments:
  99. Parameters - Supplies a pointer to the kernel initialization block.
  100. Return Value:
  101. Status code.
  102. --*/