mirror of
https://github.com/reactos/reactos.git
synced 2025-07-27 15:11:41 +00:00
[FREELDR] Export functions for a 2nd stage loader
This commit is contained in:
parent
2f9dde09e1
commit
f81c1910ee
5 changed files with 226 additions and 47 deletions
|
@ -131,7 +131,7 @@ list(APPEND FREELDR_BASE_SOURCE
|
||||||
if(ARCH STREQUAL "i386")
|
if(ARCH STREQUAL "i386")
|
||||||
# Must be included together with disk/scsiport.c
|
# Must be included together with disk/scsiport.c
|
||||||
list(APPEND FREELDR_BASE_SOURCE
|
list(APPEND FREELDR_BASE_SOURCE
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/freeldr_pe.def)
|
${CMAKE_CURRENT_BINARY_DIR}/freeldr.def)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
include(pcat.cmake)
|
include(pcat.cmake)
|
||||||
|
|
|
@ -1,47 +1,184 @@
|
||||||
@ stdcall RtlAssert(ptr ptr long ptr)
|
@ stdcall RtlAssert(ptr ptr long ptr)
|
||||||
@ varargs ScsiDebugPrint(long str)
|
@ varargs -arch=i386 ScsiDebugPrint(long str)
|
||||||
@ stdcall ScsiPortCompleteRequest(ptr long long long long)
|
@ stdcall -arch=i386 ScsiPortCompleteRequest(ptr long long long long)
|
||||||
@ stdcall ScsiPortConvertPhysicalAddressToUlong(long long)
|
@ stdcall -arch=i386 ScsiPortConvertPhysicalAddressToUlong(long long)
|
||||||
@ stdcall -arch=i386 ScsiPortConvertUlongToPhysicalAddress(long)
|
@ stdcall -arch=i386 ScsiPortConvertUlongToPhysicalAddress(long)
|
||||||
@ stdcall -arch=x86_64 ScsiPortConvertUlongToPhysicalAddress(long)
|
#@ stdcall -arch=x86_64 ScsiPortConvertUlongToPhysicalAddress(long)
|
||||||
@ stdcall ScsiPortFlushDma(ptr)
|
@ stdcall -arch=i386 ScsiPortFlushDma(ptr)
|
||||||
@ stdcall ScsiPortFreeDeviceBase(ptr ptr)
|
@ stdcall -arch=i386 ScsiPortFreeDeviceBase(ptr ptr)
|
||||||
@ stdcall ScsiPortGetBusData(ptr long long long ptr long)
|
@ stdcall -arch=i386 ScsiPortGetBusData(ptr long long long ptr long)
|
||||||
@ stdcall ScsiPortGetDeviceBase(ptr long long long long long long)
|
@ stdcall -arch=i386 ScsiPortGetDeviceBase(ptr long long long long long long)
|
||||||
@ stdcall ScsiPortGetLogicalUnit(ptr long long long)
|
@ stdcall -arch=i386 ScsiPortGetLogicalUnit(ptr long long long)
|
||||||
@ stdcall ScsiPortGetPhysicalAddress(ptr ptr ptr long)
|
@ stdcall -arch=i386 ScsiPortGetPhysicalAddress(ptr ptr ptr long)
|
||||||
@ stdcall ScsiPortGetSrb(ptr long long long long)
|
@ stdcall -arch=i386 ScsiPortGetSrb(ptr long long long long)
|
||||||
@ stdcall ScsiPortGetUncachedExtension(ptr ptr long)
|
@ stdcall -arch=i386 ScsiPortGetUncachedExtension(ptr ptr long)
|
||||||
@ stdcall ScsiPortGetVirtualAddress(ptr long long)
|
@ stdcall -arch=i386 ScsiPortGetVirtualAddress(ptr long long)
|
||||||
@ stdcall ScsiPortInitialize(ptr ptr ptr ptr)
|
@ stdcall -arch=i386 ScsiPortInitialize(ptr ptr ptr ptr)
|
||||||
@ stdcall ScsiPortIoMapTransfer(ptr ptr long long)
|
@ stdcall -arch=i386 ScsiPortIoMapTransfer(ptr ptr long long)
|
||||||
@ stdcall ScsiPortLogError(ptr ptr long long long long long)
|
@ stdcall -arch=i386 ScsiPortLogError(ptr ptr long long long long long)
|
||||||
@ stdcall ScsiPortMoveMemory(ptr ptr long)
|
@ stdcall -arch=i386 ScsiPortMoveMemory(ptr ptr long)
|
||||||
@ cdecl ScsiPortNotification()
|
@ cdecl -arch=i386 ScsiPortNotification()
|
||||||
@ stdcall ScsiPortReadPortBufferUchar(ptr ptr long)
|
@ stdcall -arch=i386 ScsiPortReadPortBufferUchar(ptr ptr long)
|
||||||
@ stdcall ScsiPortReadPortBufferUshort(ptr ptr long)
|
@ stdcall -arch=i386 ScsiPortReadPortBufferUshort(ptr ptr long)
|
||||||
@ stdcall ScsiPortReadPortBufferUlong(ptr ptr long)
|
@ stdcall -arch=i386 ScsiPortReadPortBufferUlong(ptr ptr long)
|
||||||
@ stdcall ScsiPortReadPortUchar(ptr)
|
@ stdcall -arch=i386 ScsiPortReadPortUchar(ptr)
|
||||||
@ stdcall ScsiPortReadPortUshort(ptr)
|
@ stdcall -arch=i386 ScsiPortReadPortUshort(ptr)
|
||||||
@ stdcall ScsiPortReadPortUlong(ptr)
|
@ stdcall -arch=i386 ScsiPortReadPortUlong(ptr)
|
||||||
@ stdcall ScsiPortReadRegisterBufferUchar(ptr ptr long)
|
@ stdcall -arch=i386 ScsiPortReadRegisterBufferUchar(ptr ptr long)
|
||||||
@ stdcall ScsiPortReadRegisterBufferUshort(ptr ptr long)
|
@ stdcall -arch=i386 ScsiPortReadRegisterBufferUshort(ptr ptr long)
|
||||||
@ stdcall ScsiPortReadRegisterBufferUlong(ptr ptr long)
|
@ stdcall -arch=i386 ScsiPortReadRegisterBufferUlong(ptr ptr long)
|
||||||
@ stdcall ScsiPortReadRegisterUchar(ptr)
|
@ stdcall -arch=i386 ScsiPortReadRegisterUchar(ptr)
|
||||||
@ stdcall ScsiPortReadRegisterUshort(ptr)
|
@ stdcall -arch=i386 ScsiPortReadRegisterUshort(ptr)
|
||||||
@ stdcall ScsiPortReadRegisterUlong(ptr)
|
@ stdcall -arch=i386 ScsiPortReadRegisterUlong(ptr)
|
||||||
@ stdcall ScsiPortSetBusDataByOffset(ptr long long long ptr long long)
|
@ stdcall -arch=i386 ScsiPortSetBusDataByOffset(ptr long long long ptr long long)
|
||||||
@ stdcall ScsiPortStallExecution(long)
|
@ stdcall -arch=i386 ScsiPortStallExecution(long)
|
||||||
@ stdcall ScsiPortValidateRange(ptr long long long long long long)
|
@ stdcall -arch=i386 ScsiPortValidateRange(ptr long long long long long long)
|
||||||
@ stdcall ScsiPortWritePortBufferUchar(ptr ptr long)
|
@ stdcall -arch=i386 ScsiPortWritePortBufferUchar(ptr ptr long)
|
||||||
@ stdcall ScsiPortWritePortBufferUshort(ptr ptr long)
|
@ stdcall -arch=i386 ScsiPortWritePortBufferUshort(ptr ptr long)
|
||||||
@ stdcall ScsiPortWritePortBufferUlong(ptr ptr long)
|
@ stdcall -arch=i386 ScsiPortWritePortBufferUlong(ptr ptr long)
|
||||||
@ stdcall ScsiPortWritePortUchar(ptr long)
|
@ stdcall -arch=i386 ScsiPortWritePortUchar(ptr long)
|
||||||
@ stdcall ScsiPortWritePortUshort(ptr long)
|
@ stdcall -arch=i386 ScsiPortWritePortUshort(ptr long)
|
||||||
@ stdcall ScsiPortWritePortUlong(ptr long)
|
@ stdcall -arch=i386 ScsiPortWritePortUlong(ptr long)
|
||||||
@ stdcall ScsiPortWriteRegisterBufferUchar(ptr ptr long)
|
@ stdcall -arch=i386 ScsiPortWriteRegisterBufferUchar(ptr ptr long)
|
||||||
@ stdcall ScsiPortWriteRegisterBufferUshort(ptr ptr long)
|
@ stdcall -arch=i386 ScsiPortWriteRegisterBufferUshort(ptr ptr long)
|
||||||
@ stdcall ScsiPortWriteRegisterBufferUlong(ptr ptr long)
|
@ stdcall -arch=i386 ScsiPortWriteRegisterBufferUlong(ptr ptr long)
|
||||||
@ stdcall ScsiPortWriteRegisterUchar(ptr long)
|
@ stdcall -arch=i386 ScsiPortWriteRegisterUchar(ptr long)
|
||||||
@ stdcall ScsiPortWriteRegisterUshort(ptr long)
|
@ stdcall -arch=i386 ScsiPortWriteRegisterUshort(ptr long)
|
||||||
@ stdcall ScsiPortWriteRegisterUlong(ptr long)
|
@ stdcall -arch=i386 ScsiPortWriteRegisterUlong(ptr long)
|
||||||
|
|
||||||
|
# ARC
|
||||||
|
@ cdecl ArcClose()
|
||||||
|
@ cdecl ArcGetDiskCount()
|
||||||
|
@ cdecl ArcGetDiskInfo()
|
||||||
|
@ cdecl ArcGetFileInformation()
|
||||||
|
@ cdecl ArcGetTime()
|
||||||
|
@ cdecl ArcOpen()
|
||||||
|
@ cdecl ArcRead()
|
||||||
|
@ cdecl ArcSeek()
|
||||||
|
|
||||||
|
# Debug
|
||||||
|
@ cdecl DbgParseDebugChannels()
|
||||||
|
@ cdecl DbgPrint(str)
|
||||||
|
@ cdecl DbgPrint2(long long str long str)
|
||||||
|
@ cdecl DebugDumpBuffer()
|
||||||
|
@ cdecl DebugInit()
|
||||||
|
@ cdecl FrLdrBugCheckWithMessage()
|
||||||
|
@ stdcall KeBugCheckEx(long long long long long)
|
||||||
|
|
||||||
|
# Heap
|
||||||
|
@ cdecl FrLdrHeapAllocateEx()
|
||||||
|
@ cdecl FrLdrHeapFreeEx()
|
||||||
|
@ cdecl FrLdrHeapAlloc()
|
||||||
|
@ cdecl FrLdrHeapFree()
|
||||||
|
@ cdecl FrLdrTempAlloc()
|
||||||
|
@ cdecl FrLdrTempFree()
|
||||||
|
@ cdecl FrLdrHeapCleanupAll()
|
||||||
|
|
||||||
|
# INI (check if we can move this to rosload)
|
||||||
|
@ cdecl IniAddSection()
|
||||||
|
@ cdecl IniAddSettingValueToSection()
|
||||||
|
@ cdecl IniCleanup()
|
||||||
|
@ cdecl IniGetFileSectionListHead()
|
||||||
|
@ cdecl IniGetNumSectionItems()
|
||||||
|
@ cdecl IniGetSectionSettingNameSize()
|
||||||
|
@ cdecl IniGetSectionSettingValueSize()
|
||||||
|
@ cdecl IniFileInitialize()
|
||||||
|
@ cdecl IniModifySettingValue()
|
||||||
|
@ cdecl IniOpenSection()
|
||||||
|
@ cdecl IniReadSettingByName()
|
||||||
|
@ cdecl IniReadSettingByNumber()
|
||||||
|
|
||||||
|
# Mm
|
||||||
|
@ cdecl AddMemoryDescriptor()
|
||||||
|
@ cdecl MmAllocateHighestMemoryBelowAddress()
|
||||||
|
@ cdecl MmAllocateMemoryAtAddress()
|
||||||
|
@ cdecl MmAllocateMemoryWithType()
|
||||||
|
@ cdecl MmFreeMemory()
|
||||||
|
@ cdecl MmGetBiosMemoryMap()
|
||||||
|
@ cdecl MmGetHighestPhysicalPage()
|
||||||
|
@ cdecl MmGetLoaderPagesSpanned()
|
||||||
|
@ cdecl MmGetMemoryMap()
|
||||||
|
@ cdecl MmGetSystemMemoryMapTypeString()
|
||||||
|
@ cdecl MmGetTotalPagesInLookupTable()
|
||||||
|
|
||||||
|
# NtLdr options
|
||||||
|
@ cdecl NtLdrGetNextOption()
|
||||||
|
@ cdecl NtLdrGetOption()
|
||||||
|
@ cdecl NtLdrGetOptionEx()
|
||||||
|
@ cdecl NtLdrGetOptionExN()
|
||||||
|
@ cdecl NtLdrAddOptions()
|
||||||
|
|
||||||
|
# PeLdr
|
||||||
|
@ cdecl PeLdrAllocateDataTableEntry()
|
||||||
|
@ cdecl PeLdrCheckForLoadedDll()
|
||||||
|
@ cdecl PeLdrFreeDataTableEntry()
|
||||||
|
@ cdecl PeLdrImportDllLoadCallback()
|
||||||
|
@ cdecl PeLdrInitSecurityCookie()
|
||||||
|
@ cdecl PeLdrLoadBootImage()
|
||||||
|
@ cdecl PeLdrLoadImage()
|
||||||
|
@ cdecl PeLdrLoadImageEx()
|
||||||
|
@ cdecl PeLdrScanImportDescriptorTable()
|
||||||
|
|
||||||
|
# UI
|
||||||
|
@ cdecl UiDisplayMenu()
|
||||||
|
@ cdecl UiDrawBackdrop()
|
||||||
|
@ cdecl UiDrawProgressBarCenter()
|
||||||
|
@ cdecl UiDrawStatusText()
|
||||||
|
@ cdecl UiDrawText()
|
||||||
|
@ cdecl UiEditBox()
|
||||||
|
@ cdecl UiGetMenuBgColor()
|
||||||
|
@ cdecl UiGetScreenHeight()
|
||||||
|
@ cdecl UiIndicateProgress()
|
||||||
|
@ cdecl UiInitialize()
|
||||||
|
@ cdecl UiMessageBox()
|
||||||
|
@ cdecl UiMessageBoxCritical()
|
||||||
|
@ cdecl UiResetForSOS()
|
||||||
|
@ cdecl UiSetProgressBarSubset()
|
||||||
|
@ cdecl UiSetProgressBarText()
|
||||||
|
@ cdecl UiShowMessageBoxesInArgv()
|
||||||
|
@ cdecl UiShowMessageBoxesInSection()
|
||||||
|
@ cdecl UiUnInitialize()
|
||||||
|
@ cdecl UiUpdateProgressBar()
|
||||||
|
@ cdecl TuiPrintf()
|
||||||
|
|
||||||
|
# Other
|
||||||
|
@ cdecl ChainLoadBiosBootSectorCode()
|
||||||
|
@ cdecl ConstructArcPath()
|
||||||
|
@ cdecl DissectArcPath()
|
||||||
|
@ cdecl DiskStopFloppyMotor()
|
||||||
|
@ cdecl DriveMapGetBiosDriveNumber()
|
||||||
|
@ cdecl FrldrGetBootDrive()
|
||||||
|
@ cdecl FrldrGetBootPartition()
|
||||||
|
@ cdecl FrLdrGetBootPath()
|
||||||
|
@ cdecl FsGetServiceName()
|
||||||
|
@ cdecl FsOpenFile() # Why not ArcOpen?
|
||||||
|
@ cdecl GetArgumentValue()
|
||||||
|
@ cdecl GetBootMgrInfo()
|
||||||
|
@ cdecl IsAcpiPresent()
|
||||||
|
@ cdecl LoadSettings()
|
||||||
|
@ cdecl MachHwDetect()
|
||||||
|
@ cdecl MachPrepareForReactOS()
|
||||||
|
@ cdecl MachGetExtendedBIOSData()
|
||||||
|
@ cdecl MachVideoGetFontsFromFirmware()
|
||||||
|
@ cdecl PxeCallApi()
|
||||||
|
@ cdecl RamDiskInitialize()
|
||||||
|
@ cdecl Reboot()
|
||||||
|
@ cdecl Relocator16Boot()
|
||||||
|
@ cdecl StallExecutionProcessor()
|
||||||
|
|
||||||
|
# Additional stuff for scsiport
|
||||||
|
@ stdcall CpDoesPortExist(ptr)
|
||||||
|
@ stdcall CpEnableFifo(ptr long)
|
||||||
|
@ stdcall CpGetByte(ptr ptr long long)
|
||||||
|
@ stdcall CpInitialize(ptr ptr long)
|
||||||
|
@ stdcall CpPutByte(ptr long)
|
||||||
|
@ cdecl DissectArcPath2()
|
||||||
|
@ cdecl -i386 DriveMapMapDrivesInSection()
|
||||||
|
@ cdecl FsRegisterDevice()
|
||||||
|
@ cdecl FsGetDeviceSpecific()
|
||||||
|
@ cdecl FsSetDeviceSpecific()
|
||||||
|
@ stdcall ExAllocatePool(long long)
|
||||||
|
@ stdcall ExAllocatePoolWithTag(long long long)
|
||||||
|
@ stdcall ExFreePool(ptr)
|
||||||
|
@ stdcall ExFreePoolWithTag(ptr long)
|
||||||
|
@ cdecl MmSetMemoryType()
|
||||||
|
|
|
@ -424,12 +424,46 @@ DbgParseDebugChannels(PCHAR Value)
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
|
#undef DebugInit
|
||||||
|
VOID
|
||||||
|
DebugInit(
|
||||||
|
_In_ PCSTR DebugString)
|
||||||
|
{
|
||||||
|
UNREFERENCED_PARAMETER(DebugString);
|
||||||
|
}
|
||||||
|
|
||||||
ULONG
|
ULONG
|
||||||
DbgPrint(PCCH Format, ...)
|
DbgPrint(PCCH Format, ...)
|
||||||
{
|
{
|
||||||
|
UNREFERENCED_PARAMETER(Format);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
VOID
|
||||||
|
DbgPrint2(ULONG Mask, ULONG Level, const char *File, ULONG Line, char *Format, ...)
|
||||||
|
{
|
||||||
|
UNREFERENCED_PARAMETER(Mask);
|
||||||
|
UNREFERENCED_PARAMETER(Level);
|
||||||
|
UNREFERENCED_PARAMETER(File);
|
||||||
|
UNREFERENCED_PARAMETER(Line);
|
||||||
|
UNREFERENCED_PARAMETER(Format);
|
||||||
|
}
|
||||||
|
|
||||||
|
VOID
|
||||||
|
DebugDumpBuffer(ULONG Mask, PVOID Buffer, ULONG Length)
|
||||||
|
{
|
||||||
|
UNREFERENCED_PARAMETER(Mask);
|
||||||
|
UNREFERENCED_PARAMETER(Buffer);
|
||||||
|
UNREFERENCED_PARAMETER(Length);
|
||||||
|
}
|
||||||
|
|
||||||
|
#undef DbgParseDebugChannels
|
||||||
|
VOID
|
||||||
|
DbgParseDebugChannels(PCHAR Value)
|
||||||
|
{
|
||||||
|
UNREFERENCED_PARAMETER(Value);
|
||||||
|
}
|
||||||
|
|
||||||
#endif // DBG
|
#endif // DBG
|
||||||
|
|
||||||
ULONG
|
ULONG
|
||||||
|
|
|
@ -109,6 +109,14 @@ DbgDumpMemoryMap(
|
||||||
}
|
}
|
||||||
DbgPrint("\n");
|
DbgPrint("\n");
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
/* Dummy, so we can export it */
|
||||||
|
PCSTR
|
||||||
|
MmGetSystemMemoryMapTypeString(
|
||||||
|
TYPE_OF_MEMORY Type)
|
||||||
|
{
|
||||||
|
return "-";
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
ULONG
|
ULONG
|
||||||
|
|
|
@ -22,7 +22,7 @@ elseif(ARCH STREQUAL "amd64")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
spec2def(freeldr_pe.exe freeldr.spec)
|
spec2def(freeldr.sys freeldr.spec ADD_IMPORTLIB)
|
||||||
|
|
||||||
list(APPEND PCATLDR_ARC_SOURCE
|
list(APPEND PCATLDR_ARC_SOURCE
|
||||||
${FREELDR_ARC_SOURCE}
|
${FREELDR_ARC_SOURCE}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue