Replace array assignment with for loop
authorAdrian-Ken Rueegsegger <ken@codelabs.ch>
Fri, 5 May 2017 16:55:11 +0000 (18:55 +0200)
committerAdrian-Ken Rueegsegger <ken@codelabs.ch>
Wed, 17 May 2017 13:28:27 +0000 (15:28 +0200)
This removes calls to memmove which is not supported by the Muen
zero-footprint runtime.

Signed-off-by: Adrian-Ken Rueegsegger <ken@codelabs.ch>
src/hw-dbc-transfers.adb

index 7d7037536f34bb123469a62875145e402aab8f4c..62177347eedeff4ff48b41e3cdcc0a2cb7db45f4 100644 (file)
@@ -107,8 +107,9 @@ is
       with Address => System'To_Address (Transfer_Info.Physical (Id));
       DMA_Len : constant Natural := Natural'Min (Max_Bulk_Size - DMA_Off, Len);
    begin
-      Buf (Buf'First .. Buf'First + DMA_Len - 1) :=
-         DMA_Buf (DMA_Off .. DMA_Off + DMA_Len - 1);
+      for I in Natural range 0 .. DMA_Len - 1 loop
+         Buf (Buf'First + I) := DMA_Buf (DMA_Off + I);
+      end loop;
    end Copy_DMA_In;
 
    procedure Copy_DMA_Out
@@ -123,8 +124,9 @@ is
       with Address => System'To_Address (Transfer_Info.Physical (Id));
       DMA_Len : constant Natural := Natural'Min (Max_Bulk_Size - DMA_Off, Len);
    begin
-      DMA_Buf (DMA_Off .. DMA_Off + DMA_Len - 1) :=
-         Buf (Off .. Off + DMA_Len - 1);
+      for I in Natural range 0 .. DMA_Len - 1 loop
+         DMA_Buf (DMA_Off + I) := Buf (Off + I);
+      end loop;
    end Copy_DMA_Out;
 
    ----------------------------------------------------------------------------