Finished => False));
type Stats_Info is record
- Enqueued : Natural;
- Transfered : Natural;
- Lost : Natural;
+ Enqueued : Word32;
+ Transfered : Word32;
+ Lost : Word32;
end record;
type Stats_Array is array (Endpoint_Range) of Stats_Info;
Stats : Stats_Array := (Endpoint_Range => (others => 0));
Id : out Transfer_Id;
Success : out Boolean)
is
+ use type Word32;
use type Word64;
begin
Success := False;
Status => Error'First,
Started => True,
Finished => False);
- Stats (Endpoint).Enqueued := Stats (Endpoint).Enqueued + Length;
+ Stats (Endpoint).Enqueued :=
+ Stats (Endpoint).Enqueued + Word32 (Length);
Start_Counter := Start_Counter + 1;
Success := True;
Id := I;
(Id : Transfer_Id;
Length : Natural)
is
+ use type Word32;
use type Word64;
Endpoint : constant Endpoint_Range := Xfers (Id).Endpoint;
Started => True,
Finished => False);
Start_Counter := Start_Counter + 1;
- Stats (Endpoint).Enqueued := Stats (Endpoint).Enqueued + Length;
+ Stats (Endpoint).Enqueued
+ := Stats (Endpoint).Enqueued + Word32 (Length);
end Restart;
procedure Append
Offset : out Natural;
Id : out Transfer_Id)
is
+ use type Word32;
use type Word64;
Success : Boolean;
Max_Counter : Word64;
Length := Natural'Min (Length, Max_Bulk_Size - Xfers (Id).Length);
Offset := Xfers (Id).Length;
Xfers (Id).Length := Xfers (Id).Length + Length;
- Stats (Endpoint).Enqueued := Stats (Endpoint).Enqueued + Length;
+ Stats (Endpoint).Enqueued
+ := Stats (Endpoint).Enqueued + Word32 (Length);
else
Length := 0;
Offset := 0;
Remaining_Length : Natural;
Status : Error)
is
+ use type Word32;
use type Word64;
Id : Transfer_Id;
begin
if Remaining_Length <= Xfers (Id).Length then
Xfers (Id).Length := Xfers (Id).Length - Remaining_Length;
Stats (Xfers (Id).Endpoint).Transfered :=
- Stats (Xfers (Id).Endpoint).Transfered + Xfers (Id).Length;
+ Stats (Xfers (Id).Endpoint).Transfered + Word32
+ (Xfers (Id).Length);
Stats (Xfers (Id).Endpoint).Lost :=
- Stats (Xfers (Id).Endpoint).Lost + Remaining_Length;
+ Stats (Xfers (Id).Endpoint).Lost + Word32 (Remaining_Length);
else
Stats (Xfers (Id).Endpoint).Lost :=
- Stats (Xfers (Id).Endpoint).Lost + Xfers (Id).Length;
+ Stats (Xfers (Id).Endpoint).Lost + Word32 (Xfers (Id).Length);
Xfers (Id).Length := 0;
Xfers (Id).Status := Controller_Error;
end if;
procedure Dump_Stats
is
+ use type Word32;
begin
Debug.Put_Line ("DbC statistics:");
for EP in Endpoint_Range loop
Debug.Put_Int8 (Int8 (EP));
Debug.New_Line;
Debug.Put (" enqueued: ");
- Debug.Put_Word32 (Word32 (Stats (EP).Enqueued));
+ Debug.Put_Word32 (Stats (EP).Enqueued);
Debug.Put (" (");
Debug.Put_Int32 (Int32 (Stats (EP).Enqueued));
Debug.Put_Line (")");
Debug.Put (" transfered: ");
- Debug.Put_Word32 (Word32 (Stats (EP).Transfered));
+ Debug.Put_Word32 (Stats (EP).Transfered);
Debug.Put (" (");
Debug.Put_Int32 (Int32 (Stats (EP).Transfered));
Debug.Put_Line (")");
Debug.Put (" lost: ");
- Debug.Put_Word32 (Word32 (Stats (EP).Lost));
+ Debug.Put_Word32 (Stats (EP).Lost);
Debug.Put (" (");
Debug.Put_Int32 (Int32 (Stats (EP).Lost));
Debug.Put_Line (")");
Debug.Put (" in queue: ");
- Debug.Put_Word32 (Word32
- (Stats (EP).Enqueued - Stats (EP).Transfered - Stats (EP).Lost));
+ Debug.Put_Word32
+ (Stats (EP).Enqueued - Stats (EP).Transfered - Stats (EP).Lost);
Debug.Put (" (");
Debug.Put_Int32 (Int32
(Stats (EP).Enqueued - Stats (EP).Transfered - Stats (EP).Lost));