f481bbde8f98d5f8761f0d973452b275e64ccb69
[reactos.git] / boot / freeldr / freeldr / include / arch / i386 / machxbox.h
1 /*
2 * FreeLoader
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program; if not, write to the Free Software Foundation, Inc.,
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17 */
18
19 #pragma once
20
21 #ifndef __MEMORY_H
22 #include "mm.h"
23 #endif
24
25 #define MAX_XBOX_COM_PORTS 2
26
27 #define LPC_IO_BASE 0x2E
28 #define LPC_ENTER_CONFIG_KEY 0x55
29 #define LPC_EXIT_CONFIG_KEY 0xAA
30
31 #define LPC_DEVICE_SERIAL_PORT_1 0x4
32 #define LPC_DEVICE_SERIAL_PORT_2 0x5
33
34 #define LPC_CONFIG_DEVICE_NUMBER 0x07
35 #define LPC_CONFIG_DEVICE_ACTIVATE 0x30
36 #define LPC_CONFIG_DEVICE_BASE_ADDRESS_HIGH 0x60
37 #define LPC_CONFIG_DEVICE_BASE_ADDRESS_LOW 0x61
38 #define LPC_CONFIG_DEVICE_INTERRUPT 0x70
39
40 extern UCHAR XboxFont8x16[256 * 16];
41
42 VOID XboxMachInit(const char *CmdLine);
43
44 VOID XboxConsPutChar(int Ch);
45 BOOLEAN XboxConsKbHit(VOID);
46 int XboxConsGetCh(VOID);
47
48 VOID XboxVideoInit(VOID);
49 VOID XboxVideoClearScreen(UCHAR Attr);
50 VIDEODISPLAYMODE XboxVideoSetDisplayMode(char *DisplayModem, BOOLEAN Init);
51 VOID XboxVideoGetDisplaySize(PULONG Width, PULONG Height, PULONG Depth);
52 ULONG XboxVideoGetBufferSize(VOID);
53 VOID XboxVideoGetFontsFromFirmware(PULONG RomFontPointers);
54 VOID XboxVideoSetTextCursorPosition(UCHAR X, UCHAR Y);
55 VOID XboxVideoHideShowTextCursor(BOOLEAN Show);
56 VOID XboxVideoPutChar(int Ch, UCHAR Attr, unsigned X, unsigned Y);
57 VOID XboxVideoCopyOffScreenBufferToVRAM(PVOID Buffer);
58 BOOLEAN XboxVideoIsPaletteFixed(VOID);
59 VOID XboxVideoSetPaletteColor(UCHAR Color, UCHAR Red, UCHAR Green, UCHAR Blue);
60 VOID XboxVideoGetPaletteColor(UCHAR Color, UCHAR* Red, UCHAR* Green, UCHAR* Blue);
61 VOID XboxVideoSync(VOID);
62 VOID XboxVideoPrepareForReactOS(VOID);
63 VOID XboxPrepareForReactOS(VOID);
64
65 VOID XboxMemInit(VOID);
66 PVOID XboxMemReserveMemory(ULONG MbToReserve);
67 PFREELDR_MEMORY_DESCRIPTOR XboxMemGetMemoryMap(ULONG *MemoryMapSize);
68
69 BOOLEAN XboxDiskReadLogicalSectors(UCHAR DriveNumber, ULONGLONG SectorNumber, ULONG SectorCount, PVOID Buffer);
70 BOOLEAN XboxDiskGetDriveGeometry(UCHAR DriveNumber, PGEOMETRY DriveGeometry);
71 ULONG XboxDiskGetCacheableBlockCount(UCHAR DriveNumber);
72
73 TIMEINFO* XboxGetTime(VOID);
74
75 PCONFIGURATION_COMPONENT_DATA XboxHwDetect(VOID);
76 VOID XboxHwIdle(VOID);
77
78 VOID XboxSetLED(PCSTR Pattern);
79
80 /* EOF */