mirror of
https://github.com/reactos/reactos.git
synced 2025-08-02 12:55:43 +00:00
[FREELDR]
Fix amd64 build. It doesn't work yet svn path=/trunk/; revision=52469
This commit is contained in:
parent
76c6c9e3e4
commit
62b74e4696
5 changed files with 44 additions and 25 deletions
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
if(ARCH MATCHES i386)
|
if(ARCH MATCHES i386 OR ARCH MATCHES amd64)
|
||||||
CreateBootSectorTarget2(frldr16
|
CreateBootSectorTarget2(frldr16
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/arch/realmode/i386.S
|
${CMAKE_CURRENT_SOURCE_DIR}/arch/realmode/i386.S
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/frldr16.bin
|
${CMAKE_CURRENT_BINARY_DIR}/frldr16.bin
|
||||||
|
@ -120,6 +120,7 @@ if(ARCH MATCHES i386)
|
||||||
endif()
|
endif()
|
||||||
elseif(ARCH MATCHES amd64)
|
elseif(ARCH MATCHES amd64)
|
||||||
list(APPEND FREELDR_COMMON_SOURCE
|
list(APPEND FREELDR_COMMON_SOURCE
|
||||||
|
arch/amd64/entry.S
|
||||||
arch/amd64/loader.c
|
arch/amd64/loader.c
|
||||||
arch/i386/hardware.c
|
arch/i386/hardware.c
|
||||||
arch/i386/hwacpi.c
|
arch/i386/hwacpi.c
|
||||||
|
@ -137,15 +138,6 @@ elseif(ARCH MATCHES amd64)
|
||||||
arch/i386/pcvideo.c
|
arch/i386/pcvideo.c
|
||||||
windows/amd64/ntsetup.c
|
windows/amd64/ntsetup.c
|
||||||
windows/amd64/wlmemory.c)
|
windows/amd64/wlmemory.c)
|
||||||
if(NOT MSVC)
|
|
||||||
list(APPEND FREELDR_COMMON_SOURCE
|
|
||||||
arch/i386/drvmap.S
|
|
||||||
arch/i386/i386trap.S
|
|
||||||
arch/amd64/mb.S)
|
|
||||||
else()
|
|
||||||
list(APPEND FREELDR_COMMON_SOURCE
|
|
||||||
arch/amd64/stubs.S)
|
|
||||||
endif()
|
|
||||||
else()
|
else()
|
||||||
#TBD
|
#TBD
|
||||||
endif()
|
endif()
|
||||||
|
|
35
reactos/boot/freeldr/freeldr/arch/amd64/entry.S
Normal file
35
reactos/boot/freeldr/freeldr/arch/amd64/entry.S
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
|
||||||
|
|
||||||
|
#include <asm.inc>
|
||||||
|
#include <arch/pc/x86common.h>
|
||||||
|
|
||||||
|
.code64
|
||||||
|
|
||||||
|
PUBLIC RealEntryPoint
|
||||||
|
RealEntryPoint:
|
||||||
|
|
||||||
|
PUBLIC FrldrBootDrive
|
||||||
|
FrldrBootDrive:
|
||||||
|
|
||||||
|
PUBLIC FrldrBootPartition
|
||||||
|
FrldrBootPartition:
|
||||||
|
|
||||||
|
PUBLIC PageDirectoryEnd
|
||||||
|
PageDirectoryEnd:
|
||||||
|
PUBLIC PageDirectoryStart
|
||||||
|
PageDirectoryStart:
|
||||||
|
PUBLIC PnpBiosGetDeviceNode
|
||||||
|
PnpBiosGetDeviceNode:
|
||||||
|
PUBLIC PnpBiosGetDeviceNodeCount
|
||||||
|
PnpBiosGetDeviceNodeCount:
|
||||||
|
PUBLIC PnpBiosSupported
|
||||||
|
PnpBiosSupported:
|
||||||
|
PUBLIC Int386
|
||||||
|
Int386:
|
||||||
|
PUBLIC PxeCallApi
|
||||||
|
PxeCallApi:
|
||||||
|
|
||||||
|
nop
|
||||||
|
|
||||||
|
|
||||||
|
END
|
|
@ -31,9 +31,6 @@
|
||||||
/* Long mode selectors */
|
/* Long mode selectors */
|
||||||
#define LMODE_CS 0x10
|
#define LMODE_CS 0x10
|
||||||
#define LMODE_DS 0x18
|
#define LMODE_DS 0x18
|
||||||
#define RMODE_CS 0x20 /* RMode code selector, base 0 limit 64k */
|
|
||||||
#define RMODE_DS 0x28 /* RMode data selector, base 0 limit 64k */
|
|
||||||
#define CMODE_CS 0x30
|
|
||||||
|
|
||||||
#define VA_MASK 0x0000FFFFFFFFFFFFUL
|
#define VA_MASK 0x0000FFFFFFFFFFFFUL
|
||||||
|
|
||||||
|
|
|
@ -123,10 +123,8 @@ PCSTR DiskGetErrorCodeString(ULONG ErrorCode);
|
||||||
BOOLEAN DiskReadLogicalSectors(ULONG DriveNumber, ULONGLONG SectorNumber, ULONG SectorCount, PVOID Buffer); // Implemented in i386disk.c
|
BOOLEAN DiskReadLogicalSectors(ULONG DriveNumber, ULONGLONG SectorNumber, ULONG SectorCount, PVOID Buffer); // Implemented in i386disk.c
|
||||||
BOOLEAN DiskIsDriveRemovable(ULONG DriveNumber);
|
BOOLEAN DiskIsDriveRemovable(ULONG DriveNumber);
|
||||||
VOID DiskStopFloppyMotor(VOID); // Implemented in i386disk.c
|
VOID DiskStopFloppyMotor(VOID); // Implemented in i386disk.c
|
||||||
#ifndef _M_AMD64
|
|
||||||
extern ULONG FrldrBootDrive;
|
extern ULONG FrldrBootDrive;
|
||||||
extern ULONG FrldrBootPartition;
|
extern ULONG FrldrBootPartition;
|
||||||
#endif
|
|
||||||
|
|
||||||
BOOLEAN DiskGetBootPath(char *BootPath, unsigned Size);
|
BOOLEAN DiskGetBootPath(char *BootPath, unsigned Size);
|
||||||
|
|
||||||
|
|
|
@ -93,25 +93,22 @@
|
||||||
#include <ui/tui.h>
|
#include <ui/tui.h>
|
||||||
|
|
||||||
/* arch specific includes */
|
/* arch specific includes */
|
||||||
|
#if defined(_M_IX86) || defined(_M_AMD64)
|
||||||
|
#include <arch/pc/hardware.h>
|
||||||
|
#include <arch/pc/machpc.h>
|
||||||
|
#include <arch/pc/x86common.h>
|
||||||
|
#include <arch/pc/pcbios.h>
|
||||||
|
#include <arch/pc/pxe.h>
|
||||||
|
#endif
|
||||||
#if defined(_M_IX86)
|
#if defined(_M_IX86)
|
||||||
#include <arch/i386/custom.h>
|
#include <arch/i386/custom.h>
|
||||||
#include <arch/i386/drivemap.h>
|
#include <arch/i386/drivemap.h>
|
||||||
#include <arch/i386/i386.h>
|
#include <arch/i386/i386.h>
|
||||||
#include <arch/i386/machxbox.h>
|
#include <arch/i386/machxbox.h>
|
||||||
#include <arch/i386/miscboot.h>
|
#include <arch/i386/miscboot.h>
|
||||||
#include <arch/pc/hardware.h>
|
|
||||||
#include <arch/pc/machpc.h>
|
|
||||||
#include <arch/pc/x86common.h>
|
|
||||||
#include <arch/pc/pcbios.h>
|
|
||||||
#include <arch/pc/pxe.h>
|
|
||||||
#include <internal/i386/intrin_i.h>
|
#include <internal/i386/intrin_i.h>
|
||||||
#elif defined(_M_AMD64)
|
#elif defined(_M_AMD64)
|
||||||
#include <arch/amd64/amd64.h>
|
#include <arch/amd64/amd64.h>
|
||||||
#include <arch/pc/hardware.h>
|
|
||||||
#include <arch/pc/machpc.h>
|
|
||||||
#include <arch/pc/x86common.h>
|
|
||||||
#include <arch/pc/pcbios.h>
|
|
||||||
#include <arch/pc/pxe.h>
|
|
||||||
#include <internal/amd64/intrin_i.h>
|
#include <internal/amd64/intrin_i.h>
|
||||||
#elif defined(_M_PPC)
|
#elif defined(_M_PPC)
|
||||||
#include <arch/powerpc/hardware.h>
|
#include <arch/powerpc/hardware.h>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue