[BOOTLIB]
authorDavid Quintana <gigaherz@gmail.com>
Mon, 24 Jul 2017 15:08:16 +0000 (15:08 +0000)
committerDavid Quintana <gigaherz@gmail.com>
Mon, 24 Jul 2017 15:08:16 +0000 (15:08 +0000)
Stub out some arch-specific functions (fixes x64 build).

[USBPORT]
Actually fix x64 build. The old code was not working at all, but the bootlib errors cancelled the build earlier than I thought.

The X64 compilation now succeeds, but cabman crashes trying to generate the bootcd.

svn path=/trunk/; revision=75396

reactos/boot/environ/lib/arch/stub/arch.c
reactos/boot/environ/lib/mm/stub/mm.c
reactos/drivers/usb/usbport/usbport.h
reactos/sdk/include/reactos/drivers/usbport/usbmport.h

index 9de3f00..be6685e 100644 (file)
@@ -44,3 +44,9 @@ BlpArchInitialize (
     return STATUS_NOT_IMPLEMENTED;
 }
 
+VOID
+Archx86TransferTo32BitApplicationAsm (VOID)
+{
+    EfiPrintf(L" Archx86TransferTo32BitApplicationAsm NOT IMPLEMENTED for this platform\r\n");
+}
+
index bb2b247..3afe432 100644 (file)
 
 #include "bl.h"
 
+BL_ADDRESS_RANGE MmArchKsegAddressRange;
+ULONG_PTR MmArchTopOfApplicationAddressSpace;
+ULONG MmArchLargePageSize;
+
 /* FUNCTIONS *****************************************************************/
 
 NTSTATUS
@@ -23,3 +27,26 @@ MmArchInitialize (
     EfiPrintf(L" MmArchInitialize NOT IMPLEMENTED for this platform\r\n");
     return STATUS_NOT_IMPLEMENTED;
 }
+
+NTSTATUS
+MmMapPhysicalAddress (
+    _Inout_ PPHYSICAL_ADDRESS PhysicalAddressPtr,
+    _Inout_ PVOID* VirtualAddressPtr,
+    _Inout_ PULONGLONG SizePtr,
+    _In_ ULONG CacheAttributes
+    )
+{
+    EfiPrintf(L" MmMapPhysicalAddress NOT IMPLEMENTED for this platform\r\n");
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+BOOLEAN
+MmArchTranslateVirtualAddress (
+    _In_ PVOID VirtualAddress, 
+    _Out_opt_ PPHYSICAL_ADDRESS PhysicalAddress, 
+    _Out_opt_ PULONG CachingFlags
+    )
+{
+    EfiPrintf(L" MmMapPhysicalAddress NOT IMPLEMENTED for this platform\r\n");
+    return FALSE;
+}
\ No newline at end of file
index 2238a0e..7a1443d 100644 (file)
@@ -359,11 +359,17 @@ typedef struct _USBPORT_DEVICE_EXTENSION {
   /* Miniport extension should be aligned on 0x100 */
 #if !defined(_M_X64)
   ULONG Padded[34];
+#else
+  ULONG Padded[0];
 #endif
 
 } USBPORT_DEVICE_EXTENSION, *PUSBPORT_DEVICE_EXTENSION;
 
+#if !defined(_M_X64)
 C_ASSERT(sizeof(USBPORT_DEVICE_EXTENSION) == 0x400);
+#else
+C_ASSERT(sizeof(USBPORT_DEVICE_EXTENSION) == 0x600);
+#endif
 
 typedef struct _USBPORT_RH_DESCRIPTORS {
   USB_DEVICE_DESCRIPTOR DeviceDescriptor;
@@ -397,7 +403,7 @@ typedef struct _USBPORT_ASYNC_CALLBACK_DATA {
   ULONG CallbackContext;
 } USBPORT_ASYNC_CALLBACK_DATA, *PUSBPORT_ASYNC_CALLBACK_DATA;
 
-C_ASSERT(sizeof(USBPORT_ASYNC_CALLBACK_DATA) == 84 + sizeof(PVOID));
+C_ASSERT(sizeof(USBPORT_ASYNC_CALLBACK_DATA) == 16 + 18 * sizeof(PVOID));
 
 typedef struct _TIMER_WORK_QUEUE_ITEM {
   WORK_QUEUE_ITEM WqItem;
index d6c1510..ebafef3 100644 (file)
@@ -62,7 +62,7 @@ typedef struct _USBPORT_RESOURCES {
   UCHAR Reserved3;
 } USBPORT_RESOURCES, *PUSBPORT_RESOURCES;
 
-C_ASSERT(sizeof(USBPORT_RESOURCES) == 40 + 3 * sizeof(PVOID));
+C_ASSERT(sizeof(USBPORT_RESOURCES) == 24 + 7 * sizeof(PVOID));
 
 typedef ULONG MPSTATUS; // Miniport status
 typedef ULONG RHSTATUS; // Roothub status
@@ -578,7 +578,7 @@ typedef struct _USBPORT_MINIPORT_INTERFACE {
   USBPORT_REGISTRATION_PACKET Packet;
 } USBPORT_MINIPORT_INTERFACE, *PUSBPORT_MINIPORT_INTERFACE;
 
-C_ASSERT(sizeof(USBPORT_MINIPORT_INTERFACE) == 328 + 2 * sizeof(PVOID));
+C_ASSERT(sizeof(USBPORT_MINIPORT_INTERFACE) == 32 + 76 * sizeof(PVOID));
 
 #define USBPORT_TRANSFER_DIRECTION_OUT  1 // From host to device
 typedef struct _USBPORT_ENDPOINT_PROPERTIES {
@@ -607,7 +607,7 @@ typedef struct _USBPORT_ENDPOINT_PROPERTIES {
   ULONG Reserved6;
 } USBPORT_ENDPOINT_PROPERTIES, *PUSBPORT_ENDPOINT_PROPERTIES;
 
-C_ASSERT(sizeof(USBPORT_ENDPOINT_PROPERTIES) == 64);
+C_ASSERT(sizeof(USBPORT_ENDPOINT_PROPERTIES) == 48 + 4 * sizeof(PVOID));
 
 typedef struct _USBPORT_SCATTER_GATHER_ELEMENT {
   PHYSICAL_ADDRESS SgPhysicalAddress;
@@ -617,7 +617,7 @@ typedef struct _USBPORT_SCATTER_GATHER_ELEMENT {
   ULONG Reserved2;
 } USBPORT_SCATTER_GATHER_ELEMENT, *PUSBPORT_SCATTER_GATHER_ELEMENT;
 
-C_ASSERT(sizeof(USBPORT_SCATTER_GATHER_ELEMENT) == 20 + sizeof(PVOID));
+C_ASSERT(sizeof(USBPORT_SCATTER_GATHER_ELEMENT) == 24);
 
 typedef struct _USBPORT_SCATTER_GATHER_LIST {
   ULONG Flags;
@@ -627,7 +627,7 @@ typedef struct _USBPORT_SCATTER_GATHER_LIST {
   USBPORT_SCATTER_GATHER_ELEMENT SgElement[1];
 } USBPORT_SCATTER_GATHER_LIST, *PUSBPORT_SCATTER_GATHER_LIST;
 
-C_ASSERT(sizeof(USBPORT_SCATTER_GATHER_LIST) == 36 + sizeof(PVOID));
+C_ASSERT(sizeof(USBPORT_SCATTER_GATHER_LIST) == 24 + 4 * sizeof(PVOID));
 
 typedef struct _USBPORT_TRANSFER_PARAMETERS {
   ULONG TransferFlags;