File : net.ads
with System.Storage_Elements, System.Address_To_Access_Conversions;
package Net is
type Debug_Mode is (Inherit, No, Error, Info, Dump);
do_debug : Debug_Mode := No;
type Integer_32 is range 0 .. 2**32 - 1;
subtype Integer_31 is Integer_32 range 0 .. 2**31 - 1;
subtype Integer_30 is Integer_32 range 0 .. 2**30 - 1;
subtype Integer_29 is Integer_32 range 0 .. 2**29 - 1;
subtype Integer_28 is Integer_32 range 0 .. 2**28 - 1;
subtype Integer_27 is Integer_32 range 0 .. 2**27 - 1;
subtype Integer_26 is Integer_32 range 0 .. 2**26 - 1;
subtype Integer_25 is Integer_32 range 0 .. 2**25 - 1;
subtype Integer_24 is Integer_32 range 0 .. 2**24 - 1;
subtype Integer_23 is Integer_32 range 0 .. 2**23 - 1;
subtype Integer_22 is Integer_32 range 0 .. 2**22 - 1;
subtype Integer_21 is Integer_32 range 0 .. 2**21 - 1;
subtype Integer_20 is Integer_32 range 0 .. 2**20 - 1;
subtype Integer_19 is Integer_32 range 0 .. 2**19 - 1;
subtype Integer_18 is Integer_32 range 0 .. 2**18 - 1;
subtype Integer_17 is Integer_32 range 0 .. 2**17 - 1;
subtype Integer_16 is Integer_32 range 0 .. 2**16 - 1;
subtype Integer_15 is Integer_32 range 0 .. 2**15 - 1;
subtype Integer_14 is Integer_32 range 0 .. 2**14 - 1;
subtype Integer_13 is Integer_32 range 0 .. 2**13 - 1;
subtype Integer_12 is Integer_32 range 0 .. 2**12 - 1;
subtype Integer_11 is Integer_32 range 0 .. 2**11 - 1;
subtype Integer_10 is Integer_32 range 0 .. 2**10 - 1;
subtype Integer_9 is Integer_32 range 0 .. 2**9 - 1;
subtype Integer_8 is Integer_32 range 0 .. 2**8 - 1;
subtype Integer_7 is Integer_32 range 0 .. 2**7 - 1;
subtype Integer_6 is Integer_32 range 0 .. 2**6 - 1;
subtype Integer_5 is Integer_32 range 0 .. 2**5 - 1;
subtype Integer_4 is Integer_32 range 0 .. 2**4 - 1;
subtype Integer_3 is Integer_32 range 0 .. 2**3 - 1;
subtype Integer_2 is Integer_32 range 0 .. 2**2 - 1;
subtype Integer_1 is Integer_32 range 0 .. 2**1 - 1;
subtype Data is System.Storage_Elements.Storage_Element;
type Payload_Type is record
data : System.Address;
length : Integer_32;
end record;
function "+" (p : System.Address; o : Integer_32) return System.Address;
pragma Inline ("+");
type Address is abstract tagged null record;
function New_Address (b : Payload_Type) return Address is abstract;
function To_String (a : Address) return String is abstract;
Not_Implemented : exception;
procedure Unimplemented (msg : in String);
end Net;