2 * PROJECT: ReactOS Kernel
3 * LICENSE: BSD - See COPYING.ARM in the top level directory
4 * FILE: ntoskrnl/include/internal/hdl.h
5 * PURPOSE: Internal header for the Configuration Manager
6 * PROGRAMMERS: ReactOS Portable Systems Group
9 #include <cportlib/cportlib.h>
12 // Define this if you want debugging support
14 #define _HDL_DEBUG_ 0x00
17 // These define the Debug Masks Supported
19 #define HDL_XXX_DEBUG 0x01
22 // Debug/Tracing support
25 #ifdef NEW_DEBUG_SYSTEM_IMPLEMENTED // enable when Debug Filters are implemented
26 #define HDLTRACE DbgPrintEx
28 #define HDLTRACE(x, ...) \
29 if (x & HdlpTraceLevel) DbgPrint(__VA_ARGS__)
32 #define HDLTRACE(x, ...) DPRINT(__VA_ARGS__)
38 typedef struct _HEADLESS_LOG_ENTRY
40 SYSTEM_TIMEOFDAY_INFORMATION TimeOfEntry
;
42 } HEADLESS_LOG_ENTRY
, *PHEADLESS_LOG_ENTRY
;
45 // Headless Bugcheck Information
47 typedef struct _HEADLESS_BLUE_SCREEN_DATA
51 struct _HEADLESS_BLUE_SCREEN_DATA
*Next
;
52 } HEADLESS_BLUE_SCREEN_DATA
, * PHEADLESS_BLUE_SCREEN_DATA
;
55 // Headless Control Structure, mostly for !SAC
57 typedef struct _HEADLESS_GLOBALS
60 HANDLE PageLockHandle
;
61 PHEADLESS_LOG_ENTRY LogEntries
;
64 PHEADLESS_BLUE_SCREEN_DATA BlueScreenData
;
69 ULONG TerminalEnabled
:1;
71 ULONG NewLogEntryAdded
:1;
72 ULONG UsedBiosSettings
:1;
73 ULONG InputProcessing
:1;
74 ULONG InputLineDone
:1;
75 ULONG ProcessingCmd
:1;
76 ULONG TerminalParity
:1;
77 ULONG TerminalStopBits
:1;
78 ULONG TerminalPortNumber
:3;
79 ULONG IsNonLegacyDevice
:1;
83 ULONG TerminalBaudRate
;
85 PUCHAR TerminalPortAddress
;
86 LARGE_INTEGER DelayTime
;
87 ULONG MicroSecondsDelayTime
;
89 SIZE_T InputBufferIndex
;
95 } HEADLESS_GLOBALS
, *PHEADLESS_GLOBALS
;
98 // FIXME: A public header in the NDK? Ask Alex
100 typedef enum _HEADLESS_CMD
102 HeadlessCmdEnableTerminal
= 1,
103 HeadlessCmdCheckForReboot
,
104 HeadlessCmdPutString
,
105 HeadlessCmdClearDisplay
,
106 HeadlessCmdClearToEndOfDisplay
,
107 HeadlessCmdClearToEndOfLine
,
108 HeadlessCmdDisplayAttributesOff
,
109 HeadlessCmdDisplayInverseVideo
,
111 HeadlessCmdPositionCursor
,
112 HeadlessCmdTerminalPoll
,
115 HeadlessCmdStartBugCheck
,
116 HeadlessCmdDoBugCheckProcessing
,
117 HeadlessCmdQueryInformation
,
118 HeadlessCmdAddLogEntry
,
119 HeadlessCmdDisplayLog
,
120 HeadlessCmdSetBlueScreenData
,
121 HeadlessCmdSendBlueScreenData
,
122 HeadlessCmdQueryGUID
,
124 } HEADLESS_CMD
, *PHEADLESS_CMD
;
129 IN HEADLESS_CMD Command
,
130 IN PVOID InputBuffer
,
131 IN SIZE_T InputBufferSize
,
132 OUT PVOID OutputBuffer
,
133 OUT PSIZE_T OutputBufferSize
137 // Global variables accessible from all of Hdl
139 extern PHEADLESS_GLOBALS HeadlessGlobals
;