Merge from branch ReactX to Trunk,
[reactos.git] / reactos / hal / halx86 / generic / sysinfo.c
1 /*
2 * PROJECT: ReactOS HA:
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: hal/halx86/generic/sysinfo.c
5 * PURPOSE: HAL Information Routines
6 * PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org)
7 */
8
9 /* INCLUDES ******************************************************************/
10
11 #include <hal.h>
12 #define NDEBUG
13 #include <debug.h>
14
15 #ifdef __GNUC__
16 static PUCHAR realKdComPortInUse = 0;
17 PUCHAR *_KdComPortInUse = &realKdComPortInUse;
18 #else
19 PUCHAR _KdComPortInUse = 0;
20 #endif
21
22 /* FUNCTIONS *****************************************************************/
23
24 NTSTATUS
25 NTAPI
26 HaliQuerySystemInformation(IN HAL_QUERY_INFORMATION_CLASS InformationClass,
27 IN ULONG BufferSize,
28 IN OUT PVOID Buffer,
29 OUT PULONG ReturnedLength)
30 {
31 #define REPORT_THIS_CASE(X) case X: DPRINT1("Unhandled case: %s\n", #X); break
32 switch (InformationClass)
33 {
34 REPORT_THIS_CASE(HalInstalledBusInformation);
35 REPORT_THIS_CASE(HalProfileSourceInformation);
36 REPORT_THIS_CASE(HalInformationClassUnused1);
37 REPORT_THIS_CASE(HalPowerInformation);
38 REPORT_THIS_CASE(HalProcessorSpeedInformation);
39 REPORT_THIS_CASE(HalCallbackInformation);
40 REPORT_THIS_CASE(HalMapRegisterInformation);
41 REPORT_THIS_CASE(HalMcaLogInformation);
42 case HalFrameBufferCachingInformation:
43 if (BufferSize >= 1)
44 {
45 // The only caller that has been seen calling this function told
46 // us it expected a single byte back. We therefore guess it expects
47 // a BOOLEAN, and we dream up the value TRUE to (we think) tell it
48 // "Sure, the framebuffer is cached".
49 BOOLEAN ToReturn = TRUE;
50 DPRINT("%s: caller expects %u bytes (should be 1)\n", "HalFrameBufferCachingInformation", BufferSize);
51 ASSERT(sizeof(BOOLEAN) == 1);
52 *ReturnedLength = sizeof(BOOLEAN);
53 RtlCopyMemory(Buffer, &ToReturn, sizeof(BOOLEAN));
54 return STATUS_SUCCESS;
55 }
56 break;
57 REPORT_THIS_CASE(HalDisplayBiosInformation);
58 REPORT_THIS_CASE(HalProcessorFeatureInformation);
59 REPORT_THIS_CASE(HalNumaTopologyInterface);
60 REPORT_THIS_CASE(HalErrorInformation);
61 REPORT_THIS_CASE(HalCmcLogInformation);
62 REPORT_THIS_CASE(HalCpeLogInformation);
63 REPORT_THIS_CASE(HalQueryMcaInterface);
64 REPORT_THIS_CASE(HalQueryAMLIIllegalIOPortAddresses);
65 REPORT_THIS_CASE(HalQueryMaxHotPlugMemoryAddress);
66 REPORT_THIS_CASE(HalPartitionIpiInterface);
67 REPORT_THIS_CASE(HalPlatformInformation);
68 REPORT_THIS_CASE(HalQueryProfileSourceList);
69 }
70 #undef REPORT_THIS_CASE
71
72 UNIMPLEMENTED;
73 return STATUS_NOT_IMPLEMENTED;
74 }
75
76 NTSTATUS
77 NTAPI
78 HaliSetSystemInformation(IN HAL_SET_INFORMATION_CLASS InformationClass,
79 IN ULONG BufferSize,
80 IN OUT PVOID Buffer)
81 {
82 UNIMPLEMENTED;
83 return STATUS_NOT_IMPLEMENTED;
84 }
85
86 /* EOF */