File: /home/oboss/Users/gec/sources/Basic_Services/Source_Data/parameter_representation.ads

1     --% Compilation Unit: Parameter_Representation
2     --
3     --% Category: Package Declaration
4     --
5     --% Release:  $Name:  $
6     --
7     --% Version:  $Revision: 2.2 $
8     --
9     --% Author:   $Author: gec $
10     --
11     --% Revision Log:
12     --    $Log: parameter_representation.ads,v $
13     --    Revision 2.2  2003/11/13 14:57:34  gec
14     --    Merged ECSS Migration branch to main trunk.
15     --
16     --    Revision 2.1.4.1  2003/11/10 10:00:21  gec
17     --    Added universal representation of parameters and associated arithmetic operators.
18     --
19     --    Revision 2.1  2003/10/21 08:44:44  gec
20     --    Merged STADY_Recommendations branch onto trunk.
21     --    Contains numerous updates resulting from STADY fault descriptions.
22     --
23     --    Revision 2.0.2.1  2003/10/14 08:21:28  gec
24     --    Replaced dubious use of Constraint_Error by user defined exception
25     --+    Illegal_Parameter_Type_Code.
26     --
27     --    Response to STADY fault description Fault 33.
28     --
29     --    Revision 2.0  2003/04/04 08:50:14  gec
30     --    Initial release of source files serving as baseline for OBOSS-III
31     --+    project.
32     --
33     --    Revision 1.1.1.1  2003/04/04 08:13:04  gec
34     --    Imported using TkCVS
35     --
36     --
37     --
38     --% Project: OBOSS
39     --
40     --% Copyright (C) 2003 by Terma A/S
41     --  Proprietary and intellectual rights of Terma A/S, Denmark,
42     --  are involved in the subject-matter of this material and
43     --  all manufacturing, reproduction, use, disclosure, and
44     --  sales rights pertaining to such subject-matter are
45     --  expressly reserved. This material is submitted for a
46     --  specific purpose as agreed, and the recipient by
47     --  accepting this material agrees that this material will
48     --  not be used, copied, or reproduced in whole or in part
49     --  nor its contents revealed in any manner or to any person,
50     --  except to meet the purpose for which it was submitted and
51     --  subject to the terms of the agreement.
52     --
53     --% Target Dependencies:
54     --    None
55     --% Compiler Dependencies:
56     --    None
57     
58     --~-----------------------------------------------------------------------------
59     
60     with Basic_Types;
61     with Source_Data_Stream;
62     with Parameter_Representation_Constraints;
63     with Universal_Parameter_Representation;
64     package Parameter_Representation is
65     
66        --% Library Package:
67        --    Implementation of subset of parameter types and structures as defined
68        --+    in Section 23: 'Parameter Types and Structure Rules' in Packet
69        --+    Utilisation Standard.
70        --   Implementation supports all parameter types and structures with the
71        --+    following limitations:
72        --       PTC = 9, 10 Time Parameter : Only PFC=0 and CUC is supported.
73        --% Active Tasks:
74        -->   None
75        --% Passive Tasks:
76        -->   None
77     
78        -- Exception indicating that an unsupported parameter type has been
79        --+    requested.
80        Illegal_Parameter_Type_Code : exception;
81        -- Exception indicating that an unsupported parameter format has been
82        --+    requested.
83        Illegal_Parameter_Format_Code : exception;
84     
85        -- Exception indicating that a Get operation has read a bit-pattern from a
86        --+    source data stream that does not conform to the supported parameter
87        --+    types and structures.
88        Illformed_Input : exception;
89     
90        -- Indicates that the Position operation, tranforming standard values into
91        --+    universal parameter types is not supported for given standard value.
92        Unsupported_Position : exception;
93     
94        -- Supertype representing domain of support parameter types.
95        type Standard_Value is tagged null record;
96        type Standard_Value_Pointer is access all Standard_Value'Class;
97     
98        --% Subprogram:
99        --    Transforms Parameter into the universal representation, i.e. a
100        --+    supertype
101        --% Parameter Constraints:
102        -->   None
103        --% Exceptions Raised:
104        -->   Unsupported_Position  - Position is not supported for the specific
105        --+    type to which Parameter belongs
106     
107        function Position
108              (Parameter :        Standard_Value)
109              return Universal_Parameter_Representation.Universal_Parameter_Type'
110                 Class;
111     
112        ----------------------------------------------------------
113        -- Definition of supported parameter type codes and associated literals.
114        -- Definition includes special element 0 to indicate an unsupported
115        --+    parameter type.
116        type Parameter_Type_Code is range 0 .. 10;
117     
118        Not_A_Value_PTC      : constant Parameter_Type_Code := 0;
119        Boolean_PTC          : constant Parameter_Type_Code := 1;
120        Enumerated_PTC       : constant Parameter_Type_Code := 2;
121        Unsigned_Integer_PTC : constant Parameter_Type_Code := 3;
122        Signed_Integer_PTC   : constant Parameter_Type_Code := 4;
123        Real_PTC             : constant Parameter_Type_Code := 5;
124        Bit_String_PTC       : constant Parameter_Type_Code := 6;
125        Octet_String_PTC     : constant Parameter_Type_Code := 7;
126        Character_String_PTC : constant Parameter_Type_Code := 8;
127        Time_PTC             : constant Parameter_Type_Code := 9;
128        Relative_Time_PTC    : constant Parameter_Type_Code := 10;
129     
130        -- Definition of supported parameter format codes.
131        -- In order to preserve pragma Pack on Bit_String (:358)
132        -- Parameter_Format_Code should be a bounded subtype of Natural
133        -- otherwise Storage_Error is raised at run time on any use
134        -- of objects of type Var_Bit_String
135        -- type Parameter_Format_Code is new Natural;
136        subtype Parameter_Format_Code is Natural range 0 .. 127;
137     
138        -- Definition of supported parameter codes.
139     
140        type Parameter_Code is
141           record
142              Type_Code   : Parameter_Type_Code;
143              Format_Code : Parameter_Format_Code;
144           end record;
145     
146        -- Associated literal for indication of unsupported parameter codes.
147        Not_A_Value_Parameter_Code : constant Parameter_Code :=
148                    Parameter_Code'(Type_Code   => Not_A_Value_PTC,
149                                    Format_Code => Parameter_Format_Code'First);
150     
151        -------------------------------------------------
152        -- Definition of internal representation for all supported parameter types
153        --+    and structures.
154        -- Partitioned according to parameter type codes.
155        -- For each supported parameter code, two declarations are given:
156        --
157        --   <Parameter_Type_Code_Name>_<Parameter_Format_Code>_Bit_Size:
158        --        Size in bits of external representation of parameters with
159        --+    parameter code (Parameter_Type_Code , Parameter_Format_Code).
160        --   Example: Boolean_0_Bit_Size is size in bits of parameters with
161        --+    parameter code (1,0).
162        --
163        --  <Parameter_Type_Code_Name>_<Parameter_Format_Code>: Ada type being
164        --+    internal representation of parameters with parameter code
165        --+    (Parameter_Type_Code , Parameter_Format_Code).
166        --   Example: Boolean_0 is Ada type corresponding to internal representation
167        --+    of parameters with parameter code (1,0).
168     
169        -------------------------------------------------
170        -- PTC = 1
171        -- Definition of Booleans
172     
173        Boolean_0_Bit_Size : constant := 1;
174     
175        type Boolean_0 is new Basic_Types.Bool;
176     
177        for Boolean_0 use (False => 0,
178                           True  => 1);
179     
180        -------------------------------------------------
181        -- PTC = 2
182        -- Definition of Enumerations
183     
184        Enumerated_1_Bit_Size  : constant := 1;
185        Enumerated_2_Bit_Size  : constant := 2;
186        Enumerated_4_Bit_Size  : constant := 4;
187        Enumerated_8_Bit_Size  : constant := 8;
188        Enumerated_12_Bit_Size : constant := 12;
189        Enumerated_16_Bit_Size : constant := 16;
190        Enumerated_24_Bit_Size : constant := 24;
191        Enumerated_32_Bit_Size : constant := 32;
192     
193        type Enumerated_1  is range 0 .. 2**Enumerated_1_Bit_Size - 1;
194        type Enumerated_2  is range 0 .. 2**Enumerated_2_Bit_Size - 1;
195        type Enumerated_4  is range 0 .. 2**Enumerated_4_Bit_Size - 1;
196        type Enumerated_8  is range 0 .. 2**Enumerated_8_Bit_Size - 1;
197        type Enumerated_12 is range 0 .. 2**Enumerated_12_Bit_Size - 1;
198        type Enumerated_16 is range 0 .. 2**Enumerated_16_Bit_Size - 1;
199        type Enumerated_24 is range 0 .. 2**Enumerated_24_Bit_Size - 1;
200        type Enumerated_32 is range 0 .. 2**Enumerated_32_Bit_Size - 1;
201     
202        -------------------------------------------------
203        -- PTC = 3
204        -- Definition of Unsigned Integers
205     
206        --  Definition of bit sizes for external representation
207        --  for format variants
208     
209        Unsigned_Integer_0_Bit_Size  : constant := 4;
210        Unsigned_Integer_1_Bit_Size  : constant := 5;
211        Unsigned_Integer_2_Bit_Size  : constant := 6;
212        Unsigned_Integer_3_Bit_Size  : constant := 7;
213        Unsigned_Integer_4_Bit_Size  : constant := 8;
214        Unsigned_Integer_5_Bit_Size  : constant := 9;
215        Unsigned_Integer_6_Bit_Size  : constant := 10;
216        Unsigned_Integer_7_Bit_Size  : constant := 11;
217        Unsigned_Integer_8_Bit_Size  : constant := 12;
218        Unsigned_Integer_9_Bit_Size  : constant := 13;
219        Unsigned_Integer_10_Bit_Size : constant := 14;
220        Unsigned_Integer_11_Bit_Size : constant := 15;
221        Unsigned_Integer_12_Bit_Size : constant := 2 * Basic_Types.Byte_Size;
222        Unsigned_Integer_13_Bit_Size : constant := 3 * Basic_Types.Byte_Size;
223        Unsigned_Integer_14_Bit_Size : constant := 4 * Basic_Types.Byte_Size;
224        Unsigned_Integer_15_Bit_Size : constant := 6 * Basic_Types.Byte_Size;
225        Unsigned_Integer_16_Bit_Size : constant := 8 * Basic_Types.Byte_Size;
226     
227        type Unsigned_Integer_0  is range 0 .. 2**Unsigned_Integer_0_Bit_Size - 1;
228        type Unsigned_Integer_1  is range 0 .. 2**Unsigned_Integer_1_Bit_Size - 1;
229        type Unsigned_Integer_2  is range 0 .. 2**Unsigned_Integer_2_Bit_Size - 1;
230        type Unsigned_Integer_3  is range 0 .. 2**Unsigned_Integer_3_Bit_Size - 1;
231        type Unsigned_Integer_4  is range 0 .. 2**Unsigned_Integer_4_Bit_Size - 1;
232        type Unsigned_Integer_5  is range 0 .. 2**Unsigned_Integer_5_Bit_Size - 1;
233        type Unsigned_Integer_6  is range 0 .. 2**Unsigned_Integer_6_Bit_Size - 1;
234        type Unsigned_Integer_7  is range 0 .. 2**Unsigned_Integer_7_Bit_Size - 1;
235        type Unsigned_Integer_8  is range 0 .. 2**Unsigned_Integer_8_Bit_Size - 1;
236        type Unsigned_Integer_9  is range 0 .. 2**Unsigned_Integer_9_Bit_Size - 1;
237        type Unsigned_Integer_10 is range 0 .. 2**Unsigned_Integer_10_Bit_Size - 1;
238        type Unsigned_Integer_11 is range 0 .. 2**Unsigned_Integer_11_Bit_Size - 1;
239        type Unsigned_Integer_12 is range 0 .. 2**Unsigned_Integer_12_Bit_Size - 1;
240        type Unsigned_Integer_13 is range 0 .. 2**Unsigned_Integer_13_Bit_Size - 1;
241        type Unsigned_Integer_14 is range 0 .. 2**Unsigned_Integer_14_Bit_Size - 1;
242        type Unsigned_Integer_15 is range 0 .. 2**Unsigned_Integer_15_Bit_Size - 1;
243     
244        -------------------------------------------------
245        -- PTC = 4
246        -- Signed Integer Parameter Type
247     
248        -- Definition of bit sizes for external representation
249        -- for Signed_Integer variants
250     
251        Signed_Integer_0_Bit_Size  : constant := 4;
252        Signed_Integer_1_Bit_Size  : constant := 5;
253        Signed_Integer_2_Bit_Size  : constant := 6;
254        Signed_Integer_3_Bit_Size  : constant := 7;
255        Signed_Integer_4_Bit_Size  : constant := 8;
256        Signed_Integer_5_Bit_Size  : constant := 9;
257        Signed_Integer_6_Bit_Size  : constant := 10;
258        Signed_Integer_7_Bit_Size  : constant := 11;
259        Signed_Integer_8_Bit_Size  : constant := 12;
260        Signed_Integer_9_Bit_Size  : constant := 13;
261        Signed_Integer_10_Bit_Size : constant := 14;
262        Signed_Integer_11_Bit_Size : constant := 15;
263        Signed_Integer_12_Bit_Size : constant := 2 * Basic_Types.Byte_Size;
264        Signed_Integer_13_Bit_Size : constant := 3 * Basic_Types.Byte_Size;
265        Signed_Integer_14_Bit_Size : constant := 4 * Basic_Types.Byte_Size;
266        Signed_Integer_15_Bit_Size : constant := 6 * Basic_Types.Byte_Size;
267        Signed_Integer_16_Bit_Size : constant := 8 * Basic_Types.Byte_Size;
268     
269        -- Constant aiding definition of variant corresponding to format code = 14
270     
271        Four_Octet_Low_Limit : constant := -2**(Signed_Integer_14_Bit_Size - 1);
272     
273        -------------------------------------------------
274        -- Signed Integer Parameter Type
275        -- PTC = 4
276     
277        type Signed_Integer_0  is range
278              -2**(Signed_Integer_0_Bit_Size - 1) ..
279              2**(Signed_Integer_0_Bit_Size - 1) - 1;
280        type Signed_Integer_1  is range
281              -2**(Signed_Integer_1_Bit_Size - 1) ..
282              2**(Signed_Integer_1_Bit_Size - 1) - 1;
283        type Signed_Integer_2  is range
284              -2**(Signed_Integer_2_Bit_Size - 1) ..
285              2**(Signed_Integer_2_Bit_Size - 1) - 1;
286        type Signed_Integer_3  is range
287              -2**(Signed_Integer_3_Bit_Size - 1) ..
288              2**(Signed_Integer_3_Bit_Size - 1) - 1;
289        type Signed_Integer_4  is range
290              -2**(Signed_Integer_4_Bit_Size - 1) ..
291              2**(Signed_Integer_4_Bit_Size - 1) - 1;
292        type Signed_Integer_5  is range
293              -2**(Signed_Integer_5_Bit_Size - 1) ..
294              2**(Signed_Integer_5_Bit_Size - 1) - 1;
295        type Signed_Integer_6  is range
296              -2**(Signed_Integer_6_Bit_Size - 1) ..
297              2**(Signed_Integer_6_Bit_Size - 1) - 1;
298        type Signed_Integer_7  is range
299              -2**(Signed_Integer_7_Bit_Size - 1) ..
300              2**(Signed_Integer_7_Bit_Size - 1) - 1;
301        type Signed_Integer_8  is range
302              -2**(Signed_Integer_8_Bit_Size - 1) ..
303              2**(Signed_Integer_8_Bit_Size - 1) - 1;
304        type Signed_Integer_9  is range
305              -2**(Signed_Integer_9_Bit_Size - 1) ..
306              2**(Signed_Integer_9_Bit_Size - 1) - 1;
307        type Signed_Integer_10 is range
308              -2**(Signed_Integer_10_Bit_Size - 1) ..
309              2**(Signed_Integer_10_Bit_Size - 1) - 1;
310        type Signed_Integer_11 is range
311              -2**(Signed_Integer_11_Bit_Size - 1) ..
312              2**(Signed_Integer_11_Bit_Size - 1) - 1;
313        type Signed_Integer_12 is range
314              -2**(Signed_Integer_12_Bit_Size - 1) ..
315              2**(Signed_Integer_12_Bit_Size - 1) - 1;
316        type Signed_Integer_13 is range
317              -2**(Signed_Integer_13_Bit_Size - 1) ..
318              2**(Signed_Integer_13_Bit_Size - 1) - 1;
319        type Signed_Integer_14 is range
320              -2**(Signed_Integer_14_Bit_Size - 1) ..
321              2**(Signed_Integer_14_Bit_Size - 1) - 1;
322        type Signed_Integer_15 is range
323              -2**(Signed_Integer_15_Bit_Size - 1) ..
324              2**(Signed_Integer_15_Bit_Size - 1) - 1;
325        type Signed_Integer_16 is range
326              -2**(Signed_Integer_16_Bit_Size - 1) ..
327              2**(Signed_Integer_16_Bit_Size - 1) - 1;
328     
329     
330        -------------------------------------------------
331        -- PTC = 5
332        -- Real Parameters
333     
334        Real_1_Bit_Size : constant := 4 * Basic_Types.Byte_Size;
335        Real_2_Bit_Size : constant := 8 * Basic_Types.Byte_Size;
336     
337        type Real_1 is new Basic_Types.IEEE_Single_Precision_Float;
338        for Real_1'Size use Real_1_Bit_Size;
339     
340        type Real_2 is new Basic_Types.IEEE_Double_Precision_Float;
341        for Real_2'Size use Real_2_Bit_Size;
342     
343        -------------------------------------------------
344        -- PTC = 6
345        -- Bit String Parameters
346     
347        subtype Bit_String_Index is
348              Parameter_Format_Code range
349              0 .. Parameter_Representation_Constraints.Max_Bit_String_Length;
350     
351        type Bit_String is array (Bit_String_Index range <>) of Basic_Types.Bit;
352        pragma Pack (Bit_String);
353     
354        type Var_Bit_String(N : Bit_String_Index := Bit_String_Index'First) is
355           record
356              The_String : Bit_String (1 .. N);
357           end record;
358     
359        -------------------------------------------------
360        -- PTC = 7
361        -- Octet String Parameters
362     
363        subtype Octet_String_Index is
364              Parameter_Format_Code range
365              0 .. Parameter_Representation_Constraints.Max_Octet_String_Length;
366     
367        type Octet_String is array (Octet_String_Index range <>) of
368              Basic_Types.Octet;
369        pragma Pack (Octet_String);
370     
371     
372        type Var_Octet_String(N : Octet_String_Index := Octet_String_Index'First)
373              is
374           record
375              The_String : Octet_String (1 .. N);
376           end record;
377     
378        -------------------------------------------------
379        -- PTC = 8
380        -- Character String Parameter
381     
382        subtype Character_String_Index is
383              Parameter_Format_Code range
384              0 ..
385              Parameter_Representation_Constraints.Max_Character_String_Length;
386     
387        type Character_String is array (Character_String_Index range <>) of
388              Basic_Types.Char;
389        pragma Pack (Character_String);
390     
391        type Var_Character_String
392              (N : Character_String_Index := Character_String_Index'First) is
393           record
394              The_String : Character_String (1 .. N);
395           end record;
396     
397        -------------------------------------------------
398        -- PTC = 9, 10
399        -- Time Parameter
400     
401        -- Only PFC=0 and CUC is supported.
402     
403        PFC_0_Bit_Size : constant := 8 * Basic_Types.Byte_Size;
404     
405        type PUS_Time is new Basic_Types.On_Board_Time;
406     
407        type PUS_Relative_Time is new Basic_Types.Relative_On_Board_Time;
408     
409     
410        -------------------------------------------------
411        -- Constructors for most common types
412     
413     
414        -------------------------------------------------
415        -- Source data stream read and write operations for standard values.
416     
417        --% Subprogram:
418        --    Source data stream write operation on Standard Values.
419        --    Appends external representation of Sval at tail of write stream
420        --+    Stream.
421        --% Parameter Constraints:
422        -->   None
423        --% Exceptions Raised:
424        -->   Illegal_Parameter_Format_Code  - Indicates that Sval is not a
425        --+    supported parameter type or was constructed by Not_A_Value.
426        -->   Source_Data_Stream.Write_Stream_Exhausted - End of stream was met
427        --+    while appending object.
428        procedure Put
429              (Stream : in out Source_Data_Stream.Write_Stream;
430               Sval   : in     Standard_Value);
431     
432        --% Subprogram:
433        --    Source data stream read operation on Standard Values. Parameter code
434        --+    is given by discriminants on Standard_Value.
435        --    Updates Sval with standard value read from head of read stream Stream.
436        --+
437        --% Parameter Constraints:
438        -->   None
439        --% Exceptions Raised:
440        -->   Illegal_Parameter_Format_Code  - Indicates that Sval is not a
441        --+    supported parameter type or was constructed by Not_A_Value.
442        -->   Source_Data_Stream.Read_Stream_Exhausted - End of stream was met while
443        --+    reading object.
444        procedure Get
445              (Stream : in out Source_Data_Stream.Read_Stream;
446               Sval   :    out Standard_Value);
447     
448        -------------------------------------------------
449        -- Relational Operators on Standard Values
450     
451        --% Subprogram:
452        --    Predicate indicating whether S1 and S2 are equal wrt. parameter value
453        --+    and parameter code.
454        --% Parameter Constraints:
455        -->   None
456        --% Exceptions Raised:
457        -->   Illegal_Parameter_Format_Code - Parameter code for S1 and S2 differs
458        --+    or designates a parameter type on which equality is not defined.
459        function Equal
460              (S1 : in     Standard_Value;
461               S2 : in     Standard_Value)
462              return Boolean;
463     
464        --% Subprogram:
465        --    Predicate indicating whether S1 is a predecessor of S2. S1 and S2
466        --+    shall have identical parameter codes.
467        --% Parameter Constraints:
468        -->   None
469        --% Exceptions Raised:
470        -->   Illegal_Parameter_Format_Code - Parameter code for S1 and S2 differs
471        --+    or designates a parameter type on which predecessor is not defined.
472        function "<"
473              (S1, S2 : in     Standard_Value)
474              return Boolean;
475     
476        --% Subprogram:
477        --    Predicate indicating whether S1 is a successor of S2.
478        --    S1 and S2 shall have identical parameter codes.
479        --% Parameter Constraints:
480        -->   None
481        --% Exceptions Raised:
482        -->   Illegal_Parameter_Format_Code - Parameter code for S1 and S2 differs
483        --+    or designates a parameter type on which successor is not defined.
484        function ">"
485              (S1 : in     Standard_Value;
486               S2 : in     Standard_Value)
487              return Boolean;
488     
489        --% Subprogram:
490        --    Predicate indicating whether ordering relations (i.e. Equal, "<", and
491        --+    ">") exist for S1 and S2.
492        --    S1 and S2 shall have identical parameter codes.
493        --% Parameter Constraints:
494        -->   None
495        --% Exceptions Raised:
496        -->   Illegal_Parameter_Format_Code - Parameter code for S1 and S2 differs.
497        function Ordering_Relation_Exists
498              (S1 : in     Standard_Value;
499               S2 : in     Standard_Value)
500              return Boolean;
501     
502        ------------------------------------------------
503     
504        --    Source data stream read operation on Standard Values. Parameter code
505        --+    is given by Code.
506        --    Updates Sval with standard value read from head of read stream Stream
507        --+    according to parameter code given by Code.
508        --% Parameter Constraints:
509        -->   None
510        --% Exceptions Raised:
511        -->   Illegal_Parameter_Format_Code  - Indicates that Code is not a
512        --+    supported parameter code.
513        -->   Source_Data_Stream.Read_Stream_Exhausted - End of stream was met while
514        --+    reading object.
515     
516        function Parameter_Code_To_Standard_Value
517              (Code : in     Parameter_Code)
518              return Standard_Value'Class;
519     
520        procedure Get
521              (Stream : in out Source_Data_Stream.Read_Stream;
522               Code   : in     Parameter_Code;
523               Sval   :    out Standard_Value'Class);
524     
525        -------------------------------------------------
526     
527        type Sv_Not_A_Value_PTC is new Standard_Value
528           with null record;
529     
530        --% Subprogram:
531        --    Constructor for special value representing bottom element for
532        --+    Standard_Value, i.e. a special value that does not belong to any of
533        --+    the supported parameter types and structures.
534        --% Parameter Constraints:
535        -->   None
536        --% Exceptions Raised:
537        -->   None
538        function Not_A_Value
539              return Sv_Not_A_Value_PTC;
540     
541        --% Subprogram:
542        --    Predicate on Standard_Value returning true iff given Standard_Value
543        --+    equals the bottom element as constructed by Not_A_Value.
544        --% Parameter Constraints:
545        -->   None
546        --% Exceptions Raised:
547        -->   None
548        function Is_Not_A_Value
549              (Sval : in     Standard_Value'Class)
550              return Boolean;
551     
552     
553        type Sv_Boolean_PTC is new Standard_Value
554           with null record;
555     
556        --% Subprogram:
557        --    Constructor for booleans (PTC = 1)
558        --% Parameter Constraints:
559        -->   Representation.Type_Code - Shall equal 1
560        --% Exceptions Raised:
561        -->   None
562     
563        function Make_Standard_Value
564              (Representation : in     Parameter_Code;
565               Value          : in     Boolean)
566              return Sv_Boolean_PTC'Class;
567        pragma Inline (Make_Standard_Value);
568     
569        function Ordering_Relation_Exists
570              (S1 : in     Sv_Boolean_PTC;
571               S2 : in     Sv_Boolean_PTC)
572              return Boolean;
573     
574        type Sv_Boolean_Val_0 is new Sv_Boolean_PTC
575           with record
576              Value : Boolean_0;
577           end record;
578     
579        function Position
580              (Parameter :        Sv_Boolean_Val_0)
581              return Universal_Parameter_Representation.Universal_Parameter_Type'
582                 Class;
583     
584        type Sv_Enumerated_PTC is new Standard_Value
585           with null record;
586     
587        -- Parent type for all enumerated
588        type Enumerated is new Natural;
589     
590        --% Subprogram:
591        --    Constructor for Enumerated (PTC = 2).
592        --% Parameter Constraints:
593        -->   Representation.Type_Code - Shall equal 2
594        --% Exceptions Raised:
595        -->   None
596     
597        function Make_Standard_Value
598              (Representation : in     Parameter_Code;
599               Value          : in     Enumerated)
600              return Sv_Enumerated_PTC'Class;
601        pragma Inline (Make_Standard_Value);
602     
603        function Ordering_Relation_Exists
604              (S1, S2 : in     Sv_Enumerated_PTC)
605              return Boolean;
606     
607        type Sv_Enumerated_Val_1 is new Sv_Enumerated_PTC
608           with record
609              Value : Enumerated_1;
610           end record;
611     
612        type Sv_Enumerated_Val_2 is new Sv_Enumerated_PTC
613           with record
614              Value : Enumerated_2;
615           end record;
616     
617        type Sv_Enumerated_Val_4 is new Sv_Enumerated_PTC
618           with record
619              Value : Enumerated_4;
620           end record;
621     
622        type Sv_Enumerated_Val_8 is new Sv_Enumerated_PTC
623           with record
624              Value : Enumerated_8;
625           end record;
626     
627        type Sv_Enumerated_Val_12 is new Sv_Enumerated_PTC
628           with record
629              Value : Enumerated_12;
630           end record;
631     
632        type Sv_Enumerated_Val_16 is new Sv_Enumerated_PTC
633           with record
634              Value : Enumerated_16;
635           end record;
636     
637        type Sv_Enumerated_Val_24 is new Sv_Enumerated_PTC
638           with record
639              Value : Enumerated_24;
640           end record;
641     
642        type Sv_Enumerated_Val_32 is new Sv_Enumerated_PTC
643           with record
644              Value : Enumerated_32;
645           end record;
646     
647        type Sv_Unsigned_Integer_PTC is new Standard_Value
648           with null record;
649     
650        -- Parent type for all Unsigned Integers
651        type Unsigned_Integer is new
652              Long_Long_Integer range 0 .. Long_Long_Integer'Last;
653     
654        --% Subprogram:
655        --    Constructor for Unsigned Integer (PTC = 3).
656        --% Parameter Constraints:
657        -->   Representation.Type_Code - Shall equal 3
658        -->   Representation.Format_Code -  > 13 not supported
659        --% Exceptions Raised:
660        -->   None
661     
662        function Make_Standard_Value
663              (Representation : in     Parameter_Code;
664               Value          : in     Unsigned_Integer)
665              return Sv_Unsigned_Integer_PTC'Class;
666        pragma Inline (Make_Standard_Value);
667     
668        function Ordering_Relation_Exists
669              (S1 : in     Sv_Unsigned_Integer_PTC;
670               S2 : in     Sv_Unsigned_Integer_PTC)
671              return Boolean;
672     
673        type Sv_Unsigned_Integer_Val_0 is new Sv_Unsigned_Integer_PTC
674           with record
675              Value : Unsigned_Integer_0;
676           end record;
677     
678        type Sv_Unsigned_Integer_Val_1 is new Sv_Unsigned_Integer_PTC
679           with record
680              Value : Unsigned_Integer_1;
681           end record;
682     
683        type Sv_Unsigned_Integer_Val_2 is new Sv_Unsigned_Integer_PTC
684           with record
685              Value : Unsigned_Integer_2;
686           end record;
687     
688        type Sv_Unsigned_Integer_Val_3 is new Sv_Unsigned_Integer_PTC
689           with record
690              Value : Unsigned_Integer_3;
691           end record;
692     
693        type Sv_Unsigned_Integer_Val_4 is new Sv_Unsigned_Integer_PTC
694           with record
695              Value : Unsigned_Integer_4;
696           end record;
697     
698        type Sv_Unsigned_Integer_Val_5 is new Sv_Unsigned_Integer_PTC
699           with record
700              Value : Unsigned_Integer_5;
701           end record;
702     
703        type Sv_Unsigned_Integer_Val_6 is new Sv_Unsigned_Integer_PTC
704           with record
705              Value : Unsigned_Integer_6;
706           end record;
707     
708        type Sv_Unsigned_Integer_Val_7 is new Sv_Unsigned_Integer_PTC
709           with record
710              Value : Unsigned_Integer_7;
711           end record;
712     
713        type Sv_Unsigned_Integer_Val_8 is new Sv_Unsigned_Integer_PTC
714           with record
715              Value : Unsigned_Integer_8;
716           end record;
717     
718        type Sv_Unsigned_Integer_Val_9 is new Sv_Unsigned_Integer_PTC
719           with record
720              Value : Unsigned_Integer_9;
721           end record;
722     
723        type Sv_Unsigned_Integer_Val_10 is new Sv_Unsigned_Integer_PTC
724           with record
725              Value : Unsigned_Integer_10;
726           end record;
727     
728        type Sv_Unsigned_Integer_Val_11 is new Sv_Unsigned_Integer_PTC
729           with record
730              Value : Unsigned_Integer_11;
731           end record;
732     
733        type Sv_Unsigned_Integer_Val_12 is new Sv_Unsigned_Integer_PTC
734           with record
735              Value : Unsigned_Integer_12;
736           end record;
737     
738        type Sv_Unsigned_Integer_Val_13 is new Sv_Unsigned_Integer_PTC
739           with record
740              Value : Unsigned_Integer_13;
741           end record;
742     
743        type Sv_Unsigned_Integer_Val_14 is new Sv_Unsigned_Integer_PTC
744           with record
745              Value : Unsigned_Integer_14;
746           end record;
747     
748        type Sv_Unsigned_Integer_Val_15 is new Sv_Unsigned_Integer_PTC
749           with record
750              Value : Unsigned_Integer_15;
751           end record;
752     
753        type Sv_Signed_Integer_PTC is new Standard_Value
754           with null record;
755     
756        -- Parent type for all signed integers
757        type Signed_Integer is new Integer;
758     
759        --% Subprogram:
760        --    Constructor for Signed Integer (PTC = 4).
761        --% Parameter Constraints:
762        -->   Representation.Type_Code - Shall equal 4
763        -->   Representation.Format_Code -  > 14 not supported
764        --% Exceptions Raised:
765        -->   None
766     
767        function Make_Standard_Value
768              (Representation : in     Parameter_Code;
769               Value          : in     Signed_Integer)
770              return Sv_Signed_Integer_PTC'Class;
771        pragma Inline (Make_Standard_Value);
772     
773        function Ordering_Relation_Exists
774              (S1, S2 : in     Sv_Signed_Integer_PTC)
775              return Boolean;
776     
777        type Sv_Signed_Integer_Val_0 is new Sv_Signed_Integer_PTC
778           with record
779              Value : Signed_Integer_0;
780           end record;
781     
782        type Sv_Signed_Integer_Val_1 is new Sv_Signed_Integer_PTC
783           with record
784              Value : Signed_Integer_1;
785           end record;
786     
787        type Sv_Signed_Integer_Val_2 is new Sv_Signed_Integer_PTC
788           with record
789              Value : Signed_Integer_2;
790           end record;
791     
792        type Sv_Signed_Integer_Val_3 is new Sv_Signed_Integer_PTC
793           with record
794              Value : Signed_Integer_3;
795           end record;
796     
797        type Sv_Signed_Integer_Val_4 is new Sv_Signed_Integer_PTC
798           with record
799              Value : Signed_Integer_4;
800           end record;
801     
802        type Sv_Signed_Integer_Val_5 is new Sv_Signed_Integer_PTC
803           with record
804              Value : Signed_Integer_5;
805           end record;
806     
807        type Sv_Signed_Integer_Val_6 is new Sv_Signed_Integer_PTC
808           with record
809              Value : Signed_Integer_6;
810           end record;
811     
812        type Sv_Signed_Integer_Val_7 is new Sv_Signed_Integer_PTC
813           with record
814              Value : Signed_Integer_7;
815           end record;
816     
817        type Sv_Signed_Integer_Val_8 is new Sv_Signed_Integer_PTC
818           with record
819              Value : Signed_Integer_8;
820           end record;
821     
822        type Sv_Signed_Integer_Val_9 is new Sv_Signed_Integer_PTC
823           with record
824              Value : Signed_Integer_9;
825           end record;
826     
827        type Sv_Signed_Integer_Val_10 is new Sv_Signed_Integer_PTC
828           with record
829              Value : Signed_Integer_10;
830           end record;
831     
832        type Sv_Signed_Integer_Val_11 is new Sv_Signed_Integer_PTC
833           with record
834              Value : Signed_Integer_11;
835           end record;
836     
837        type Sv_Signed_Integer_Val_12 is new Sv_Signed_Integer_PTC
838           with record
839              Value : Signed_Integer_12;
840           end record;
841     
842        type Sv_Signed_Integer_Val_13 is new Sv_Signed_Integer_PTC
843           with record
844              Value : Signed_Integer_13;
845           end record;
846     
847        type Sv_Signed_Integer_Val_14 is new Sv_Signed_Integer_PTC
848           with record
849              Value : Signed_Integer_14;
850           end record;
851     
852        type Sv_Signed_Integer_Val_15 is new Sv_Signed_Integer_PTC
853           with record
854              Value : Signed_Integer_15;
855           end record;
856     
857        type Sv_Signed_Integer_Val_16 is new Sv_Signed_Integer_PTC
858           with record
859              Value : Signed_Integer_16;
860           end record;
861     
862        type Sv_Real_PTC is new Standard_Value
863           with null record;
864     
865        function Ordering_Relation_Exists
866              (S1, S2 : in     Sv_Real_PTC)
867              return Boolean;
868     
869        type Sv_Real_Val_1 is new Sv_Real_PTC
870           with record
871              Value : Real_1;
872           end record;
873     
874        type Sv_Real_Val_2 is new Sv_Real_PTC
875           with record
876              Value : Real_2;
877           end record;
878     
879        type Sv_Bit_String_PTC is new Standard_Value
880           with null record;
881     
882        function Ordering_Relation_Exists
883              (S1, S2 : in     Sv_Bit_String_PTC)
884              return Boolean;
885     
886        type Sv_Bit_String_Val_0 is new Sv_Bit_String_PTC
887           with record
888              B_String : Var_Bit_String;
889           end record;
890     
891        type Sv_Bit_String_Others(N : Parameter_Format_Code) is new
892              Sv_Bit_String_PTC
893           with record
894              B_String : Bit_String (1 .. N);
895           end record;
896     
897        type Sv_Octet_String_PTC is new Standard_Value
898           with null record;
899     
900        function Ordering_Relation_Exists
901              (S1, S2 : in     Sv_Octet_String_PTC)
902              return Boolean;
903     
904        type Sv_Octet_String_Val_0 is new Sv_Octet_String_PTC
905           with record
906              Oct_String : Var_Octet_String;
907           end record;
908     
909        type Sv_Octet_String_Others(N : Parameter_Format_Code) is new
910              Sv_Octet_String_PTC
911           with record
912              Oct_String : Octet_String (1 .. N);
913           end record;
914     
915        type Sv_Character_String_PTC is new Standard_Value
916           with null record;
917     
918        function Ordering_Relation_Exists
919              (S1, S2 : in     Sv_Character_String_PTC)
920              return Boolean;
921     
922        type Sv_Character_String_Val_0 is new Sv_Character_String_PTC
923           with record
924              Char_String : Var_Character_String;
925           end record;
926     
927        type Sv_Character_String_Others(N : Parameter_Format_Code) is new
928              Sv_Character_String_PTC
929           with record
930              Char_String : Character_String (1 .. N);
931           end record;
932     
933        type Sv_Time_PTC is new Standard_Value
934           with null record;
935     
936        function Ordering_Relation_Exists
937              (S1, S2 : in     Sv_Time_PTC)
938              return Boolean;
939     
940        type Sv_Time_Val_0 is new Sv_Time_PTC
941           with record
942              Time_Val : PUS_Time;
943           end record;
944     
945        type Sv_Relative_Time_PTC is new Standard_Value
946           with null record;
947     
948        function Ordering_Relation_Exists
949              (S1, S2 : in     Sv_Relative_Time_PTC)
950              return Boolean;
951     
952        type Sv_Relative_Time_Val_0 is new Sv_Relative_Time_PTC
953           with record
954              Relative_Time_Val : PUS_Relative_Time;
955           end record;
956     
957        -------------------------------------------------
958        -- Operations inserting and extracting values from source data streams
959     
960        --% Subprogram:
961        --    Appends objects of type Value_Type to end of write stream Stream.
962        --    Value_Type'Size indicates the exact number of bits being appended.
963        --% Parameter Constraints:
964        -->   Value - Value'Size >= Value_Type'Size shall be true.
965        --% Exceptions Raised:
966        -->   Not_Allocated  - Stream is not currently allocated.
967        -->   Source_Data_Stream.Write_Stream_Exhausted - End of stream was met
968        --+    while appending object.
969        generic
970     
971           --% Generic Parameter Constraints:
972           -->   None
973     
974           type Value_Type is private;
975     
976        procedure Generic_Put
977              (Stream : in out Source_Data_Stream.Write_Stream;
978               Value  : in     Value_Type);
979     
980        --% Subprogram:
981        --    Reads objects of type Value_Type from head of read stream Stream.
982        --    Value_Type'Size indicates the exact number of bits being read.
983        --    Sign_Extend indicates whether any prefixing bits in Value shall be
984        --+    filled with the sign bit (i.e. the first bit) in Value_Type. This
985        --+    corresponds to 2's complement representation of negative numbers.
986        --% Parameter Constraints:
987        -->   Value - Value'Size >= Value_Type'Size shall be true.
988        --% Exceptions Raised:
989        -->   Not_Allocated  - Stream is not currently allocated.
990        -->   Source_Data_Stream.Read_Stream_Exhausted - End of stream was met while
991        --+    reading object.
992        generic
993     
994           --% Generic Parameter Constraints:
995           -->   None
996     
997           type Value_Type is private;
998           Sign_Extend : in     Boolean := False;
999     
1000        procedure Generic_Get
1001              (Stream : in out Source_Data_Stream.Read_Stream;
1002               Value  :    out Value_Type);
1003     
1004     
1005        -------------------------------------------------
1006     
1007        -- Put Operations:
1008        --% Subprogram:
1009        --    Collection of source data stream write operation SV_Boolean_Val_0
1010        --+    parameters
1011        --    Appends external representation of Val at tail of write stream Stream.
1012        --+
1013        --% Parameter Constraints:
1014        -->   None
1015        --% Exceptions Raised:
1016        -->   Source_Data_Stream.Write_Stream_Exhausted - End of stream was met
1017        --+    while appending object.
1018     
1019        -- Get Operations:
1020        --% Subprogram:
1021        --    Collection of source data stream read operation on SV_Boolean_Val_0
1022        --+    parameters.
1023        --    Reads external representation of Val at head of read stream Stream.
1024        --% Parameter Constraints:
1025        -->   None
1026        --% Exceptions Raised:
1027        -->   Source_Data_Stream.Read_Stream_Exhausted - End of stream was met while
1028        --+    reading object.
1029     
1030        -- Ordering_Relation_Exists Operations:
1031        --% Subprogram:
1032        --    Predicate indicating whether ordering relations (i.e. Equal, "<", and
1033        --+    ">") exist for S1 and S2.
1034        --    S1 and S2 shall have identical parameter codes.
1035        --% Parameter Constraints:
1036        -->   None
1037        --% Exceptions Raised:
1038        -->   Illegal_Parameter_Format_Code - Parameter code for S1 and S2 differs.
1039     
1040        procedure Put
1041              (Stream : in out Source_Data_Stream.Write_Stream;
1042               Sval   : in     Sv_Boolean_Val_0);
1043        procedure Get
1044              (Stream : in out Source_Data_Stream.Read_Stream;
1045               Sval   :    out Sv_Boolean_Val_0);
1046     
1047        -------------------------------------------------
1048     
1049        -- Put Operations:
1050        --% Subprogram:
1051        --    Collection of source data stream write operation on
1052        --+    SV_Enumerated_Val_? parameters.
1053        --    Appends external representation of Val at tail of write stream Stream.
1054        --+
1055        --% Parameter Constraints:
1056        -->   None
1057        --% Exceptions Raised:
1058        -->   Source_Data_Stream.Write_Stream_Exhausted - End of stream was met
1059        --+    while appending object.
1060     
1061        -- Get Operations:
1062        --% Subprogram:
1063        --    Collection of source data stream read operation on SV_Enumerated_Val_?
1064        --+    parameters.
1065        --    Reads external representation of Val at head of read stream Stream.
1066        --% Parameter Constraints:
1067        -->   None
1068        --% Exceptions Raised:
1069        -->   Source_Data_Stream.Read_Stream_Exhausted - End of stream was met while
1070        --+    reading object.
1071     
1072        -- Ordering_Relation_Exists Operations:
1073        --% Subprogram:
1074        --    Predicate indicating whether ordering relations (i.e. Equal, "<", and
1075        --+    ">") exist for S1 and S2.
1076        --    S1 and S2 shall have identical parameter codes.
1077        --% Parameter Constraints:
1078        -->   None
1079        --% Exceptions Raised:
1080        -->   Illegal_Parameter_Format_Code - Parameter code for S1 and S2 differs.
1081     
1082        -- "<" Operations
1083        --% Subprogram:
1084        --    Predicate indicating whether S1 is a predecessor of S2. S1 and S2
1085        --+    shall have identical parameter codes.
1086        --% Parameter Constraints:
1087        -->   None
1088        --% Exceptions Raised:
1089        -->   Illegal_Parameter_Format_Code - Parameter code for S1 and S2 differs
1090        --+    or designates a parameter type on which predecessor is not defined.
1091     
1092        -- ">" Operations
1093        --% Subprogram:
1094        --    Predicate indicating whether S1 is a successor of S2.
1095        --    S1 and S2 shall have identical parameter codes.
1096        --% Parameter Constraints:
1097        -->   None
1098        --% Exceptions Raised:
1099        -->   Illegal_Parameter_Format_Code - Parameter code for S1 and S2 differs
1100        --+    or designates a parameter type on which successor is not defined.
1101     
1102        -- Equal Operations
1103        --% Subprogram:
1104        --    Predicate indicating whether S1 and S2 are equal wrt. parameter value
1105        --+    and parameter code.
1106        --% Parameter Constraints:
1107        -->   None
1108        --% Exceptions Raised:
1109        -->   Illegal_Parameter_Format_Code - Parameter code for S1 and S2 differs
1110        --+    or designates a parameter type on which equality is not defined.
1111     
1112        procedure Put
1113              (Stream : in out Source_Data_Stream.Write_Stream;
1114               Sval   : in     Sv_Enumerated_Val_1);
1115        procedure Get
1116              (Stream : in out Source_Data_Stream.Read_Stream;
1117               Sval   :    out Sv_Enumerated_Val_1);
1118        function "<"
1119              (S1, S2 : in     Sv_Enumerated_Val_1)
1120              return Boolean;
1121        function ">"
1122              (S1, S2 : in     Sv_Enumerated_Val_1)
1123              return Boolean;
1124        function Equal
1125              (S1, S2 : in     Sv_Enumerated_Val_1)
1126              return Boolean;
1127        function Position
1128              (Parameter :        Sv_Enumerated_Val_1)
1129              return Universal_Parameter_Representation.Universal_Parameter_Type'
1130                 Class;
1131     
1132        procedure Put
1133              (Stream : in out Source_Data_Stream.Write_Stream;
1134               Sval   : in     Sv_Enumerated_Val_2);
1135        procedure Get
1136              (Stream : in out Source_Data_Stream.Read_Stream;
1137               Sval   :    out Sv_Enumerated_Val_2);
1138        function "<"
1139              (S1, S2 : in     Sv_Enumerated_Val_2)
1140              return Boolean;
1141        function ">"
1142              (S1, S2 : in     Sv_Enumerated_Val_2)
1143              return Boolean;
1144        function Equal
1145              (S1, S2 : in     Sv_Enumerated_Val_2)
1146              return Boolean;
1147        function Position
1148              (Parameter :        Sv_Enumerated_Val_2)
1149              return Universal_Parameter_Representation.Universal_Parameter_Type'
1150                 Class;
1151     
1152        procedure Put
1153              (Stream : in out Source_Data_Stream.Write_Stream;
1154               Sval   : in     Sv_Enumerated_Val_4);
1155        procedure Get
1156              (Stream : in out Source_Data_Stream.Read_Stream;
1157               Sval   :    out Sv_Enumerated_Val_4);
1158        function "<"
1159              (S1, S2 : in     Sv_Enumerated_Val_4)
1160              return Boolean;
1161        function ">"
1162              (S1, S2 : in     Sv_Enumerated_Val_4)
1163              return Boolean;
1164        function Equal
1165              (S1, S2 : in     Sv_Enumerated_Val_4)
1166              return Boolean;
1167        function Position
1168              (Parameter :        Sv_Enumerated_Val_4)
1169              return Universal_Parameter_Representation.Universal_Parameter_Type'
1170                 Class;
1171     
1172        procedure Put
1173              (Stream : in out Source_Data_Stream.Write_Stream;
1174               Sval   : in     Sv_Enumerated_Val_8);
1175        procedure Get
1176              (Stream : in out Source_Data_Stream.Read_Stream;
1177               Sval   :    out Sv_Enumerated_Val_8);
1178        function "<"
1179              (S1, S2 : in     Sv_Enumerated_Val_8)
1180              return Boolean;
1181        function ">"
1182              (S1, S2 : in     Sv_Enumerated_Val_8)
1183              return Boolean;
1184        function Equal
1185              (S1, S2 : in     Sv_Enumerated_Val_8)
1186              return Boolean;
1187        function Position
1188              (Parameter :        Sv_Enumerated_Val_8)
1189              return Universal_Parameter_Representation.Universal_Parameter_Type'
1190                 Class;
1191     
1192        procedure Put
1193              (Stream : in out Source_Data_Stream.Write_Stream;
1194               Sval   : in     Sv_Enumerated_Val_12);
1195        procedure Get
1196              (Stream : in out Source_Data_Stream.Read_Stream;
1197               Sval   :    out Sv_Enumerated_Val_12);
1198        function "<"
1199              (S1, S2 : in     Sv_Enumerated_Val_12)
1200              return Boolean;
1201        function ">"
1202              (S1, S2 : in     Sv_Enumerated_Val_12)
1203              return Boolean;
1204        function Equal
1205              (S1, S2 : in     Sv_Enumerated_Val_12)
1206              return Boolean;
1207        function Position
1208              (Parameter :        Sv_Enumerated_Val_12)
1209              return Universal_Parameter_Representation.Universal_Parameter_Type'
1210                 Class;
1211     
1212        procedure Put
1213              (Stream : in out Source_Data_Stream.Write_Stream;
1214               Sval   : in     Sv_Enumerated_Val_16);
1215        procedure Get
1216              (Stream : in out Source_Data_Stream.Read_Stream;
1217               Sval   :    out Sv_Enumerated_Val_16);
1218        function "<"
1219              (S1, S2 : in     Sv_Enumerated_Val_16)
1220              return Boolean;
1221        function ">"
1222              (S1, S2 : in     Sv_Enumerated_Val_16)
1223              return Boolean;
1224        function Equal
1225              (S1, S2 : in     Sv_Enumerated_Val_16)
1226              return Boolean;
1227        function Position
1228              (Parameter :        Sv_Enumerated_Val_16)
1229              return Universal_Parameter_Representation.Universal_Parameter_Type'
1230                 Class;
1231     
1232        procedure Put
1233              (Stream : in out Source_Data_Stream.Write_Stream;
1234               Sval   : in     Sv_Enumerated_Val_24);
1235        procedure Get
1236              (Stream : in out Source_Data_Stream.Read_Stream;
1237               Sval   :    out Sv_Enumerated_Val_24);
1238        function "<"
1239              (S1, S2 : in     Sv_Enumerated_Val_24)
1240              return Boolean;
1241        function ">"
1242              (S1, S2 : in     Sv_Enumerated_Val_24)
1243              return Boolean;
1244        function Equal
1245              (S1, S2 : in     Sv_Enumerated_Val_24)
1246              return Boolean;
1247        function Position
1248              (Parameter :        Sv_Enumerated_Val_24)
1249              return Universal_Parameter_Representation.Universal_Parameter_Type'
1250                 Class;
1251     
1252        procedure Put
1253              (Stream : in out Source_Data_Stream.Write_Stream;
1254               Sval   : in     Sv_Enumerated_Val_32);
1255        procedure Get
1256              (Stream : in out Source_Data_Stream.Read_Stream;
1257               Sval   :    out Sv_Enumerated_Val_32);
1258        function "<"
1259              (S1, S2 : in     Sv_Enumerated_Val_32)
1260              return Boolean;
1261        function ">"
1262              (S1, S2 : in     Sv_Enumerated_Val_32)
1263              return Boolean;
1264        function Equal
1265              (S1, S2 : in     Sv_Enumerated_Val_32)
1266              return Boolean;
1267        function Position
1268              (Parameter :        Sv_Enumerated_Val_32)
1269              return Universal_Parameter_Representation.Universal_Parameter_Type'
1270                 Class;
1271     
1272     
1273        -------------------------------------------------
1274     
1275        -- Put Operations:
1276        --% Subprogram:
1277        --    Collection of source data stream write operation on
1278        --+    SV_Unsigned_Integer_Val_? parameters.
1279        --    Appends external representation of Val at tail of write stream Stream.
1280        --+
1281        --% Parameter Constraints:
1282        -->   None
1283        --% Exceptions Raised:
1284        -->   Source_Data_Stream.Write_Stream_Exhausted - End of stream was met
1285        --+    while appending object.
1286     
1287        -- Get Operations:
1288        --% Subprogram:
1289        --    Collection of source data stream read operation on
1290        --+    SV_Unsigned_Integer_Val_? parameters.
1291        --    Reads external representation of Val at head of read stream Stream.
1292        --% Parameter Constraints:
1293        -->   None
1294        --% Exceptions Raised:
1295        -->   Source_Data_Stream.Read_Stream_Exhausted - End of stream was met while
1296        --+    reading object.
1297     
1298        -- Ordering_Relation_Exists Operations:
1299        --% Subprogram:
1300        --    Predicate indicating whether ordering relations (i.e. Equal, "<", and
1301        --+    ">") exist for S1 and S2.
1302        --    S1 and S2 shall have identical parameter codes.
1303        --% Parameter Constraints:
1304        -->   None
1305        --% Exceptions Raised:
1306        -->   Illegal_Parameter_Format_Code - Parameter code for S1 and S2 differs.
1307     
1308        -- "<" Operations
1309        --% Subprogram:
1310        --    Predicate indicating whether S1 is a predecessor of S2. S1 and S2
1311        --+    shall have identical parameter codes.
1312        --% Parameter Constraints:
1313        -->   None
1314        --% Exceptions Raised:
1315        -->   Illegal_Parameter_Format_Code - Parameter code for S1 and S2 differs
1316        --+    or designates a parameter type on which predecessor is not defined.
1317     
1318        -- ">" Operations
1319        --% Subprogram:
1320        --    Predicate indicating whether S1 is a successor of S2.
1321        --    S1 and S2 shall have identical parameter codes.
1322        --% Parameter Constraints:
1323        -->   None
1324        --% Exceptions Raised:
1325        -->   Illegal_Parameter_Format_Code - Parameter code for S1 and S2 differs
1326        --+    or designates a parameter type on which successor is not defined.
1327     
1328        -- Equal Operations
1329        --% Subprogram:
1330        --    Predicate indicating whether S1 and S2 are equal wrt. parameter value
1331        --+    and parameter code.
1332        --% Parameter Constraints:
1333        -->   None
1334        --% Exceptions Raised:
1335        -->   Illegal_Parameter_Format_Code - Parameter code for S1 and S2 differs
1336        --+    or designates a parameter type on which equality is not defined.
1337     
1338        procedure Put
1339              (Stream : in out Source_Data_Stream.Write_Stream;
1340               Sval   : in     Sv_Unsigned_Integer_Val_0);
1341        procedure Get
1342              (Stream : in out Source_Data_Stream.Read_Stream;
1343               Sval   :    out Sv_Unsigned_Integer_Val_0);
1344        function "<"
1345              (S1, S2 : in     Sv_Unsigned_Integer_Val_0)
1346              return Boolean;
1347        function ">"
1348              (S1, S2 : in     Sv_Unsigned_Integer_Val_0)
1349              return Boolean;
1350        function Equal
1351              (S1, S2 : in     Sv_Unsigned_Integer_Val_0)
1352              return Boolean;
1353        function Position
1354              (Parameter :        Sv_Unsigned_Integer_Val_0)
1355              return Universal_Parameter_Representation.Universal_Parameter_Type'
1356                 Class;
1357     
1358        procedure Put
1359              (Stream : in out Source_Data_Stream.Write_Stream;
1360               Sval   : in     Sv_Unsigned_Integer_Val_1);
1361        procedure Get
1362              (Stream : in out Source_Data_Stream.Read_Stream;
1363               Sval   :    out Sv_Unsigned_Integer_Val_1);
1364        function "<"
1365              (S1, S2 : in     Sv_Unsigned_Integer_Val_1)
1366              return Boolean;
1367        function ">"
1368              (S1, S2 : in     Sv_Unsigned_Integer_Val_1)
1369              return Boolean;
1370        function Equal
1371              (S1, S2 : in     Sv_Unsigned_Integer_Val_1)
1372              return Boolean;
1373        function Position
1374              (Parameter :        Sv_Unsigned_Integer_Val_1)
1375              return Universal_Parameter_Representation.Universal_Parameter_Type'
1376                 Class;
1377     
1378        procedure Put
1379              (Stream : in out Source_Data_Stream.Write_Stream;
1380               Sval   : in     Sv_Unsigned_Integer_Val_2);
1381        procedure Get
1382              (Stream : in out Source_Data_Stream.Read_Stream;
1383               Sval   :    out Sv_Unsigned_Integer_Val_2);
1384        function "<"
1385              (S1, S2 : in     Sv_Unsigned_Integer_Val_2)
1386              return Boolean;
1387        function ">"
1388              (S1, S2 : in     Sv_Unsigned_Integer_Val_2)
1389              return Boolean;
1390        function Equal
1391              (S1, S2 : in     Sv_Unsigned_Integer_Val_2)
1392              return Boolean;
1393        function Position
1394              (Parameter :        Sv_Unsigned_Integer_Val_2)
1395              return Universal_Parameter_Representation.Universal_Parameter_Type'
1396                 Class;
1397     
1398        procedure Put
1399              (Stream : in out Source_Data_Stream.Write_Stream;
1400               Sval   : in     Sv_Unsigned_Integer_Val_3);
1401        procedure Get
1402              (Stream : in out Source_Data_Stream.Read_Stream;
1403               Sval   :    out Sv_Unsigned_Integer_Val_3);
1404        function "<"
1405              (S1, S2 : in     Sv_Unsigned_Integer_Val_3)
1406              return Boolean;
1407        function ">"
1408              (S1, S2 : in     Sv_Unsigned_Integer_Val_3)
1409              return Boolean;
1410        function Equal
1411              (S1, S2 : in     Sv_Unsigned_Integer_Val_3)
1412              return Boolean;
1413        function Position
1414              (Parameter :        Sv_Unsigned_Integer_Val_3)
1415              return Universal_Parameter_Representation.Universal_Parameter_Type'
1416                 Class;
1417     
1418        procedure Put
1419              (Stream : in out Source_Data_Stream.Write_Stream;
1420               Sval   : in     Sv_Unsigned_Integer_Val_4);
1421        procedure Get
1422              (Stream : in out Source_Data_Stream.Read_Stream;
1423               Sval   :    out Sv_Unsigned_Integer_Val_4);
1424        function "<"
1425              (S1, S2 : in     Sv_Unsigned_Integer_Val_4)
1426              return Boolean;
1427        function ">"
1428              (S1, S2 : in     Sv_Unsigned_Integer_Val_4)
1429              return Boolean;
1430        function Equal
1431              (S1, S2 : in     Sv_Unsigned_Integer_Val_4)
1432              return Boolean;
1433        function Position
1434              (Parameter :        Sv_Unsigned_Integer_Val_4)
1435              return Universal_Parameter_Representation.Universal_Parameter_Type'
1436                 Class;
1437     
1438        procedure Put
1439              (Stream : in out Source_Data_Stream.Write_Stream;
1440               Sval   : in     Sv_Unsigned_Integer_Val_5);
1441        procedure Get
1442              (Stream : in out Source_Data_Stream.Read_Stream;
1443               Sval   :    out Sv_Unsigned_Integer_Val_5);
1444        function "<"
1445              (S1, S2 : in     Sv_Unsigned_Integer_Val_5)
1446              return Boolean;
1447        function ">"
1448              (S1, S2 : in     Sv_Unsigned_Integer_Val_5)
1449              return Boolean;
1450        function Equal
1451              (S1, S2 : in     Sv_Unsigned_Integer_Val_5)
1452              return Boolean;
1453        function Position
1454              (Parameter :        Sv_Unsigned_Integer_Val_5)
1455              return Universal_Parameter_Representation.Universal_Parameter_Type'
1456                 Class;
1457     
1458        procedure Put
1459              (Stream : in out Source_Data_Stream.Write_Stream;
1460               Sval   : in     Sv_Unsigned_Integer_Val_6);
1461        procedure Get
1462              (Stream : in out Source_Data_Stream.Read_Stream;
1463               Sval   :    out Sv_Unsigned_Integer_Val_6);
1464        function "<"
1465              (S1, S2 : in     Sv_Unsigned_Integer_Val_6)
1466              return Boolean;
1467        function ">"
1468              (S1, S2 : in     Sv_Unsigned_Integer_Val_6)
1469              return Boolean;
1470        function Equal
1471              (S1, S2 : in     Sv_Unsigned_Integer_Val_6)
1472              return Boolean;
1473        function Position
1474              (Parameter :        Sv_Unsigned_Integer_Val_6)
1475              return Universal_Parameter_Representation.Universal_Parameter_Type'
1476                 Class;
1477     
1478        procedure Put
1479              (Stream : in out Source_Data_Stream.Write_Stream;
1480               Sval   : in     Sv_Unsigned_Integer_Val_7);
1481        procedure Get
1482              (Stream : in out Source_Data_Stream.Read_Stream;
1483               Sval   :    out Sv_Unsigned_Integer_Val_7);
1484        function "<"
1485              (S1, S2 : in     Sv_Unsigned_Integer_Val_7)
1486              return Boolean;
1487        function ">"
1488              (S1, S2 : in     Sv_Unsigned_Integer_Val_7)
1489              return Boolean;
1490        function Equal
1491              (S1, S2 : in     Sv_Unsigned_Integer_Val_7)
1492              return Boolean;
1493        function Position
1494              (Parameter :        Sv_Unsigned_Integer_Val_7)
1495              return Universal_Parameter_Representation.Universal_Parameter_Type'
1496                 Class;
1497     
1498        procedure Put
1499              (Stream : in out Source_Data_Stream.Write_Stream;
1500               Sval   : in     Sv_Unsigned_Integer_Val_8);
1501        procedure Get
1502              (Stream : in out Source_Data_Stream.Read_Stream;
1503               Sval   :    out Sv_Unsigned_Integer_Val_8);
1504        function "<"
1505              (S1, S2 : in     Sv_Unsigned_Integer_Val_8)
1506              return Boolean;
1507        function ">"
1508              (S1, S2 : in     Sv_Unsigned_Integer_Val_8)
1509              return Boolean;
1510        function Equal
1511              (S1, S2 : in     Sv_Unsigned_Integer_Val_8)
1512              return Boolean;
1513        function Position
1514              (Parameter :        Sv_Unsigned_Integer_Val_8)
1515              return Universal_Parameter_Representation.Universal_Parameter_Type'
1516                 Class;
1517     
1518        procedure Put
1519              (Stream : in out Source_Data_Stream.Write_Stream;
1520               Sval   : in     Sv_Unsigned_Integer_Val_9);
1521        procedure Get
1522              (Stream : in out Source_Data_Stream.Read_Stream;
1523               Sval   :    out Sv_Unsigned_Integer_Val_9);
1524        function "<"
1525              (S1, S2 : in     Sv_Unsigned_Integer_Val_9)
1526              return Boolean;
1527        function ">"
1528              (S1, S2 : in     Sv_Unsigned_Integer_Val_9)
1529              return Boolean;
1530        function Equal
1531              (S1, S2 : in     Sv_Unsigned_Integer_Val_9)
1532              return Boolean;
1533        function Position
1534              (Parameter :        Sv_Unsigned_Integer_Val_9)
1535              return Universal_Parameter_Representation.Universal_Parameter_Type'
1536                 Class;
1537     
1538        procedure Put
1539              (Stream : in out Source_Data_Stream.Write_Stream;
1540               Sval   : in     Sv_Unsigned_Integer_Val_10);
1541        procedure Get
1542              (Stream : in out Source_Data_Stream.Read_Stream;
1543               Sval   :    out Sv_Unsigned_Integer_Val_10);
1544        function "<"
1545              (S1, S2 : in     Sv_Unsigned_Integer_Val_10)
1546              return Boolean;
1547        function ">"
1548              (S1, S2 : in     Sv_Unsigned_Integer_Val_10)
1549              return Boolean;
1550        function Equal
1551              (S1, S2 : in     Sv_Unsigned_Integer_Val_10)
1552              return Boolean;
1553        function Position
1554              (Parameter :        Sv_Unsigned_Integer_Val_10)
1555              return Universal_Parameter_Representation.Universal_Parameter_Type'
1556                 Class;
1557     
1558        procedure Put
1559              (Stream : in out Source_Data_Stream.Write_Stream;
1560               Sval   : in     Sv_Unsigned_Integer_Val_11);
1561        procedure Get
1562              (Stream : in out Source_Data_Stream.Read_Stream;
1563               Sval   :    out Sv_Unsigned_Integer_Val_11);
1564        function "<"
1565              (S1, S2 : in     Sv_Unsigned_Integer_Val_11)
1566              return Boolean;
1567        function ">"
1568              (S1, S2 : in     Sv_Unsigned_Integer_Val_11)
1569              return Boolean;
1570        function Equal
1571              (S1, S2 : in     Sv_Unsigned_Integer_Val_11)
1572              return Boolean;
1573        function Position
1574              (Parameter :        Sv_Unsigned_Integer_Val_11)
1575              return Universal_Parameter_Representation.Universal_Parameter_Type'
1576                 Class;
1577     
1578        procedure Put
1579              (Stream : in out Source_Data_Stream.Write_Stream;
1580               Sval   : in     Sv_Unsigned_Integer_Val_12);
1581        procedure Get
1582              (Stream : in out Source_Data_Stream.Read_Stream;
1583               Sval   :    out Sv_Unsigned_Integer_Val_12);
1584        function "<"
1585              (S1, S2 : in     Sv_Unsigned_Integer_Val_12)
1586              return Boolean;
1587        function ">"
1588              (S1, S2 : in     Sv_Unsigned_Integer_Val_12)
1589              return Boolean;
1590        function Equal
1591              (S1, S2 : in     Sv_Unsigned_Integer_Val_12)
1592              return Boolean;
1593        function Position
1594              (Parameter :        Sv_Unsigned_Integer_Val_12)
1595              return Universal_Parameter_Representation.Universal_Parameter_Type'
1596                 Class;
1597     
1598        procedure Put
1599              (Stream : in out Source_Data_Stream.Write_Stream;
1600               Sval   : in     Sv_Unsigned_Integer_Val_13);
1601        procedure Get
1602              (Stream : in out Source_Data_Stream.Read_Stream;
1603               Sval   :    out Sv_Unsigned_Integer_Val_13);
1604        function "<"
1605              (S1, S2 : in     Sv_Unsigned_Integer_Val_13)
1606              return Boolean;
1607        function ">"
1608              (S1, S2 : in     Sv_Unsigned_Integer_Val_13)
1609              return Boolean;
1610        function Equal
1611              (S1, S2 : in     Sv_Unsigned_Integer_Val_13)
1612              return Boolean;
1613        function Position
1614              (Parameter :        Sv_Unsigned_Integer_Val_13)
1615              return Universal_Parameter_Representation.Universal_Parameter_Type'
1616                 Class;
1617     
1618        procedure Put
1619              (Stream : in out Source_Data_Stream.Write_Stream;
1620               Sval   : in     Sv_Unsigned_Integer_Val_14);
1621        procedure Get
1622              (Stream : in out Source_Data_Stream.Read_Stream;
1623               Sval   :    out Sv_Unsigned_Integer_Val_14);
1624        function "<"
1625              (S1, S2 : in     Sv_Unsigned_Integer_Val_14)
1626              return Boolean;
1627        function ">"
1628              (S1, S2 : in     Sv_Unsigned_Integer_Val_14)
1629              return Boolean;
1630        function Equal
1631              (S1, S2 : in     Sv_Unsigned_Integer_Val_14)
1632              return Boolean;
1633        function Position
1634              (Parameter :        Sv_Unsigned_Integer_Val_14)
1635              return Universal_Parameter_Representation.Universal_Parameter_Type'
1636                 Class;
1637     
1638        procedure Put
1639              (Stream : in out Source_Data_Stream.Write_Stream;
1640               Sval   : in     Sv_Unsigned_Integer_Val_15);
1641        procedure Get
1642              (Stream : in out Source_Data_Stream.Read_Stream;
1643               Sval   :    out Sv_Unsigned_Integer_Val_15);
1644        function "<"
1645              (S1, S2 : in     Sv_Unsigned_Integer_Val_15)
1646              return Boolean;
1647        function ">"
1648              (S1, S2 : in     Sv_Unsigned_Integer_Val_15)
1649              return Boolean;
1650        function Equal
1651              (S1, S2 : in     Sv_Unsigned_Integer_Val_15)
1652              return Boolean;
1653        function Position
1654              (Parameter :        Sv_Unsigned_Integer_Val_15)
1655              return Universal_Parameter_Representation.Universal_Parameter_Type'
1656                 Class;
1657     
1658        -------------------------------------------------
1659     
1660        -- Put Operations:
1661        --% Subprogram:
1662        --    Collection of source data stream write operation on
1663        --+    SV_Signed_Integer_Val_? parameters.
1664        --    Appends external representation of Val at tail of write stream Stream.
1665        --+
1666        --% Parameter Constraints:
1667        -->   None
1668        --% Exceptions Raised:
1669        -->   Source_Data_Stream.Write_Stream_Exhausted - End of stream was met
1670        --+    while appending object.
1671     
1672        -- Get Operations:
1673        --% Subprogram:
1674        --    Collection of source data stream read operation on
1675        --+    SV_Signed_Integer_Val_? parameters.
1676        --    Reads external representation of Val at head of read stream Stream.
1677        --% Parameter Constraints:
1678        -->   None
1679        --% Exceptions Raised:
1680        -->   Source_Data_Stream.Read_Stream_Exhausted - End of stream was met while
1681        --+    reading object.
1682     
1683        -- Ordering_Relation_Exists Operations:
1684        --% Subprogram:
1685        --    Predicate indicating whether ordering relations (i.e. Equal, "<", and
1686        --+    ">") exist for S1 and S2.
1687        --    S1 and S2 shall have identical parameter codes.
1688        --% Parameter Constraints:
1689        -->   None
1690        --% Exceptions Raised:
1691        -->   Illegal_Parameter_Format_Code - Parameter code for S1 and S2 differs.
1692     
1693        -- "<" Operations
1694        --% Subprogram:
1695        --    Predicate indicating whether S1 is a predecessor of S2. S1 and S2
1696        --+    shall have identical parameter codes.
1697        --% Parameter Constraints:
1698        -->   None
1699        --% Exceptions Raised:
1700        -->   Illegal_Parameter_Format_Code - Parameter code for S1 and S2 differs
1701        --+    or designates a parameter type on which predecessor is not defined.
1702     
1703        -- ">" Operations
1704        --% Subprogram:
1705        --    Predicate indicating whether S1 is a successor of S2.
1706        --    S1 and S2 shall have identical parameter codes.
1707        --% Parameter Constraints:
1708        -->   None
1709        --% Exceptions Raised:
1710        -->   Illegal_Parameter_Format_Code - Parameter code for S1 and S2 differs
1711        --+    or designates a parameter type on which successor is not defined.
1712     
1713        -- Equal Operations
1714        --% Subprogram:
1715        --    Predicate indicating whether S1 and S2 are equal wrt. parameter value
1716        --+    and parameter code.
1717        --% Parameter Constraints:
1718        -->   None
1719        --% Exceptions Raised:
1720        -->   Illegal_Parameter_Format_Code - Parameter code for S1 and S2 differs
1721        --+    or designates a parameter type on which equality is not defined.
1722     
1723        procedure Put
1724              (Stream : in out Source_Data_Stream.Write_Stream;
1725               Sval   : in     Sv_Signed_Integer_Val_0);
1726        procedure Get
1727              (Stream : in out Source_Data_Stream.Read_Stream;
1728               Sval   :    out Sv_Signed_Integer_Val_0);
1729        function "<"
1730              (S1, S2 : in     Sv_Signed_Integer_Val_0)
1731              return Boolean;
1732        function ">"
1733              (S1, S2 : in     Sv_Signed_Integer_Val_0)
1734              return Boolean;
1735        function Equal
1736              (S1, S2 : in     Sv_Signed_Integer_Val_0)
1737              return Boolean;
1738        function Position
1739              (Parameter :        Sv_Signed_Integer_Val_0)
1740              return Universal_Parameter_Representation.Universal_Parameter_Type'
1741                 Class;
1742     
1743        procedure Put
1744              (Stream : in out Source_Data_Stream.Write_Stream;
1745               Sval   : in     Sv_Signed_Integer_Val_1);
1746        procedure Get
1747              (Stream : in out Source_Data_Stream.Read_Stream;
1748               Sval   :    out Sv_Signed_Integer_Val_1);
1749        function "<"
1750              (S1, S2 : in     Sv_Signed_Integer_Val_1)
1751              return Boolean;
1752        function ">"
1753              (S1, S2 : in     Sv_Signed_Integer_Val_1)
1754              return Boolean;
1755        function Equal
1756              (S1, S2 : in     Sv_Signed_Integer_Val_1)
1757              return Boolean;
1758        function Position
1759              (Parameter :        Sv_Signed_Integer_Val_1)
1760              return Universal_Parameter_Representation.Universal_Parameter_Type'
1761                 Class;
1762     
1763        procedure Put
1764              (Stream : in out Source_Data_Stream.Write_Stream;
1765               Sval   : in     Sv_Signed_Integer_Val_2);
1766        procedure Get
1767              (Stream : in out Source_Data_Stream.Read_Stream;
1768               Sval   :    out Sv_Signed_Integer_Val_2);
1769        function "<"
1770              (S1, S2 : in     Sv_Signed_Integer_Val_2)
1771              return Boolean;
1772        function ">"
1773              (S1, S2 : in     Sv_Signed_Integer_Val_2)
1774              return Boolean;
1775        function Equal
1776              (S1, S2 : in     Sv_Signed_Integer_Val_2)
1777              return Boolean;
1778        function Position
1779              (Parameter :        Sv_Signed_Integer_Val_2)
1780              return Universal_Parameter_Representation.Universal_Parameter_Type'
1781                 Class;
1782     
1783        procedure Put
1784              (Stream : in out Source_Data_Stream.Write_Stream;
1785               Sval   : in     Sv_Signed_Integer_Val_3);
1786        procedure Get
1787              (Stream : in out Source_Data_Stream.Read_Stream;
1788               Sval   :    out Sv_Signed_Integer_Val_3);
1789        function "<"
1790              (S1, S2 : in     Sv_Signed_Integer_Val_3)
1791              return Boolean;
1792        function ">"
1793              (S1, S2 : in     Sv_Signed_Integer_Val_3)
1794              return Boolean;
1795        function Equal
1796              (S1, S2 : in     Sv_Signed_Integer_Val_3)
1797              return Boolean;
1798        function Position
1799              (Parameter :        Sv_Signed_Integer_Val_3)
1800              return Universal_Parameter_Representation.Universal_Parameter_Type'
1801                 Class;
1802     
1803        procedure Put
1804              (Stream : in out Source_Data_Stream.Write_Stream;
1805               Sval   : in     Sv_Signed_Integer_Val_4);
1806        procedure Get
1807              (Stream : in out Source_Data_Stream.Read_Stream;
1808               Sval   :    out Sv_Signed_Integer_Val_4);
1809        function "<"
1810              (S1, S2 : in     Sv_Signed_Integer_Val_4)
1811              return Boolean;
1812        function ">"
1813              (S1, S2 : in     Sv_Signed_Integer_Val_4)
1814              return Boolean;
1815        function Equal
1816              (S1, S2 : in     Sv_Signed_Integer_Val_4)
1817              return Boolean;
1818        function Position
1819              (Parameter :        Sv_Signed_Integer_Val_4)
1820              return Universal_Parameter_Representation.Universal_Parameter_Type'
1821                 Class;
1822     
1823        procedure Put
1824              (Stream : in out Source_Data_Stream.Write_Stream;
1825               Sval   : in     Sv_Signed_Integer_Val_5);
1826        procedure Get
1827              (Stream : in out Source_Data_Stream.Read_Stream;
1828               Sval   :    out Sv_Signed_Integer_Val_5);
1829        function "<"
1830              (S1, S2 : in     Sv_Signed_Integer_Val_5)
1831              return Boolean;
1832        function ">"
1833              (S1, S2 : in     Sv_Signed_Integer_Val_5)
1834              return Boolean;
1835        function Equal
1836              (S1, S2 : in     Sv_Signed_Integer_Val_5)
1837              return Boolean;
1838        function Position
1839              (Parameter :        Sv_Signed_Integer_Val_5)
1840              return Universal_Parameter_Representation.Universal_Parameter_Type'
1841                 Class;
1842     
1843        procedure Put
1844              (Stream : in out Source_Data_Stream.Write_Stream;
1845               Sval   : in     Sv_Signed_Integer_Val_6);
1846        procedure Get
1847              (Stream : in out Source_Data_Stream.Read_Stream;
1848               Sval   :    out Sv_Signed_Integer_Val_6);
1849        function "<"
1850              (S1, S2 : in     Sv_Signed_Integer_Val_6)
1851              return Boolean;
1852        function ">"
1853              (S1, S2 : in     Sv_Signed_Integer_Val_6)
1854              return Boolean;
1855        function Equal
1856              (S1, S2 : in     Sv_Signed_Integer_Val_6)
1857              return Boolean;
1858        function Position
1859              (Parameter :        Sv_Signed_Integer_Val_6)
1860              return Universal_Parameter_Representation.Universal_Parameter_Type'
1861                 Class;
1862     
1863        procedure Put
1864              (Stream : in out Source_Data_Stream.Write_Stream;
1865               Sval   : in     Sv_Signed_Integer_Val_7);
1866        procedure Get
1867              (Stream : in out Source_Data_Stream.Read_Stream;
1868               Sval   :    out Sv_Signed_Integer_Val_7);
1869        function "<"
1870              (S1, S2 : in     Sv_Signed_Integer_Val_7)
1871              return Boolean;
1872        function ">"
1873              (S1, S2 : in     Sv_Signed_Integer_Val_7)
1874              return Boolean;
1875        function Equal
1876              (S1, S2 : in     Sv_Signed_Integer_Val_7)
1877              return Boolean;
1878        function Position
1879              (Parameter :        Sv_Signed_Integer_Val_7)
1880              return Universal_Parameter_Representation.Universal_Parameter_Type'
1881                 Class;
1882     
1883        procedure Put
1884              (Stream : in out Source_Data_Stream.Write_Stream;
1885               Sval   : in     Sv_Signed_Integer_Val_8);
1886        procedure Get
1887              (Stream : in out Source_Data_Stream.Read_Stream;
1888               Sval   :    out Sv_Signed_Integer_Val_8);
1889        function "<"
1890              (S1, S2 : in     Sv_Signed_Integer_Val_8)
1891              return Boolean;
1892        function ">"
1893              (S1, S2 : in     Sv_Signed_Integer_Val_8)
1894              return Boolean;
1895        function Equal
1896              (S1, S2 : in     Sv_Signed_Integer_Val_8)
1897              return Boolean;
1898        function Position
1899              (Parameter :        Sv_Signed_Integer_Val_8)
1900              return Universal_Parameter_Representation.Universal_Parameter_Type'
1901                 Class;
1902     
1903        procedure Put
1904              (Stream : in out Source_Data_Stream.Write_Stream;
1905               Sval   : in     Sv_Signed_Integer_Val_9);
1906        procedure Get
1907              (Stream : in out Source_Data_Stream.Read_Stream;
1908               Sval   :    out Sv_Signed_Integer_Val_9);
1909        function "<"
1910              (S1, S2 : in     Sv_Signed_Integer_Val_9)
1911              return Boolean;
1912        function ">"
1913              (S1, S2 : in     Sv_Signed_Integer_Val_9)
1914              return Boolean;
1915        function Equal
1916              (S1, S2 : in     Sv_Signed_Integer_Val_9)
1917              return Boolean;
1918        function Position
1919              (Parameter :        Sv_Signed_Integer_Val_9)
1920              return Universal_Parameter_Representation.Universal_Parameter_Type'
1921                 Class;
1922     
1923        procedure Put
1924              (Stream : in out Source_Data_Stream.Write_Stream;
1925               Sval   : in     Sv_Signed_Integer_Val_10);
1926        procedure Get
1927              (Stream : in out Source_Data_Stream.Read_Stream;
1928               Sval   :    out Sv_Signed_Integer_Val_10);
1929        function "<"
1930              (S1, S2 : in     Sv_Signed_Integer_Val_10)
1931              return Boolean;
1932        function ">"
1933              (S1, S2 : in     Sv_Signed_Integer_Val_10)
1934              return Boolean;
1935        function Equal
1936              (S1, S2 : in     Sv_Signed_Integer_Val_10)
1937              return Boolean;
1938        function Position
1939              (Parameter :        Sv_Signed_Integer_Val_10)
1940              return Universal_Parameter_Representation.Universal_Parameter_Type'
1941                 Class;
1942     
1943        procedure Put
1944              (Stream : in out Source_Data_Stream.Write_Stream;
1945               Sval   : in     Sv_Signed_Integer_Val_11);
1946        procedure Get
1947              (Stream : in out Source_Data_Stream.Read_Stream;
1948               Sval   :    out Sv_Signed_Integer_Val_11);
1949        function "<"
1950              (S1, S2 : in     Sv_Signed_Integer_Val_11)
1951              return Boolean;
1952        function ">"
1953              (S1, S2 : in     Sv_Signed_Integer_Val_11)
1954              return Boolean;
1955        function Equal
1956              (S1, S2 : in     Sv_Signed_Integer_Val_11)
1957              return Boolean;
1958        function Position
1959              (Parameter :        Sv_Signed_Integer_Val_11)
1960              return Universal_Parameter_Representation.Universal_Parameter_Type'
1961                 Class;
1962     
1963        procedure Put
1964              (Stream : in out Source_Data_Stream.Write_Stream;
1965               Sval   : in     Sv_Signed_Integer_Val_12);
1966        procedure Get
1967              (Stream : in out Source_Data_Stream.Read_Stream;
1968               Sval   :    out Sv_Signed_Integer_Val_12);
1969        function "<"
1970              (S1, S2 : in     Sv_Signed_Integer_Val_12)
1971              return Boolean;
1972        function ">"
1973              (S1, S2 : in     Sv_Signed_Integer_Val_12)
1974              return Boolean;
1975        function Equal
1976              (S1, S2 : in     Sv_Signed_Integer_Val_12)
1977              return Boolean;
1978        function Position
1979              (Parameter :        Sv_Signed_Integer_Val_12)
1980              return Universal_Parameter_Representation.Universal_Parameter_Type'
1981                 Class;
1982     
1983        procedure Put
1984              (Stream : in out Source_Data_Stream.Write_Stream;
1985               Sval   : in     Sv_Signed_Integer_Val_13);
1986        procedure Get
1987              (Stream : in out Source_Data_Stream.Read_Stream;
1988               Sval   :    out Sv_Signed_Integer_Val_13);
1989        function "<"
1990              (S1, S2 : in     Sv_Signed_Integer_Val_13)
1991              return Boolean;
1992        function ">"
1993              (S1, S2 : in     Sv_Signed_Integer_Val_13)
1994              return Boolean;
1995        function Equal
1996              (S1, S2 : in     Sv_Signed_Integer_Val_13)
1997              return Boolean;
1998        function Position
1999              (Parameter :        Sv_Signed_Integer_Val_13)
2000              return Universal_Parameter_Representation.Universal_Parameter_Type'
2001                 Class;
2002     
2003        procedure Put
2004              (Stream : in out Source_Data_Stream.Write_Stream;
2005               Sval   : in     Sv_Signed_Integer_Val_14);
2006        procedure Get
2007              (Stream : in out Source_Data_Stream.Read_Stream;
2008               Sval   :    out Sv_Signed_Integer_Val_14);
2009        function "<"
2010              (S1, S2 : in     Sv_Signed_Integer_Val_14)
2011              return Boolean;
2012        function ">"
2013              (S1, S2 : in     Sv_Signed_Integer_Val_14)
2014              return Boolean;
2015        function Equal
2016              (S1, S2 : in     Sv_Signed_Integer_Val_14)
2017              return Boolean;
2018        function Position
2019              (Parameter :        Sv_Signed_Integer_Val_14)
2020              return Universal_Parameter_Representation.Universal_Parameter_Type'
2021                 Class;
2022     
2023        procedure Put
2024              (Stream : in out Source_Data_Stream.Write_Stream;
2025               Sval   : in     Sv_Signed_Integer_Val_15);
2026        procedure Get
2027              (Stream : in out Source_Data_Stream.Read_Stream;
2028               Sval   :    out Sv_Signed_Integer_Val_15);
2029        function "<"
2030              (S1, S2 : in     Sv_Signed_Integer_Val_15)
2031              return Boolean;
2032        function ">"
2033              (S1, S2 : in     Sv_Signed_Integer_Val_15)
2034              return Boolean;
2035        function Equal
2036              (S1, S2 : in     Sv_Signed_Integer_Val_15)
2037              return Boolean;
2038        function Position
2039              (Parameter :        Sv_Signed_Integer_Val_15)
2040              return Universal_Parameter_Representation.Universal_Parameter_Type'
2041                 Class;
2042     
2043        procedure Put
2044              (Stream : in out Source_Data_Stream.Write_Stream;
2045               Sval   : in     Sv_Signed_Integer_Val_16);
2046        procedure Get
2047              (Stream : in out Source_Data_Stream.Read_Stream;
2048               Sval   :    out Sv_Signed_Integer_Val_16);
2049        function "<"
2050              (S1, S2 : in     Sv_Signed_Integer_Val_16)
2051              return Boolean;
2052        function ">"
2053              (S1, S2 : in     Sv_Signed_Integer_Val_16)
2054              return Boolean;
2055        function Equal
2056              (S1, S2 : in     Sv_Signed_Integer_Val_16)
2057              return Boolean;
2058        function Position
2059              (Parameter :        Sv_Signed_Integer_Val_16)
2060              return Universal_Parameter_Representation.Universal_Parameter_Type'
2061                 Class;
2062     
2063        -------------------------------------------------
2064     
2065        -- Put Operations:
2066        --% Subprogram:
2067        --    Collection of source data stream write operation on SV_Real_Val_?
2068        --+    parameters..
2069        --    Appends external representation of Val at tail of write stream Stream.
2070        --+
2071        --% Parameter Constraints:
2072        -->   None
2073        --% Exceptions Raised:
2074        -->   Source_Data_Stream.Write_Stream_Exhausted - End of stream was met
2075        --+    while appending object.
2076     
2077        -- Get Operations:
2078        --% Subprogram:
2079        --    Collection of source data stream read operation on SV_Real_Val_?
2080        --+    parameters.
2081        --    Reads external representation of Val at head of read stream Stream.
2082        --% Parameter Constraints:
2083        -->   None
2084        --% Exceptions Raised:
2085        -->   Source_Data_Stream.Read_Stream_Exhausted - End of stream was met while
2086        --+    reading object.
2087     
2088        -- Ordering_Relation_Exists Operations:
2089        --% Subprogram:
2090        --    Predicate indicating whether ordering relations (i.e. Equal, "<", and
2091        --+    ">") exist for S1 and S2.
2092        --    S1 and S2 shall have identical parameter codes.
2093        --% Parameter Constraints:
2094        -->   None
2095        --% Exceptions Raised:
2096        -->   Illegal_Parameter_Format_Code - Parameter code for S1 and S2 differs.
2097     
2098        -- "<" Operations
2099        --% Subprogram:
2100        --    Predicate indicating whether S1 is a predecessor of S2. S1 and S2
2101        --+    shall have identical parameter codes.
2102        --% Parameter Constraints:
2103        -->   None
2104        --% Exceptions Raised:
2105        -->   Illegal_Parameter_Format_Code - Parameter code for S1 and S2 differs
2106        --+    or designates a parameter type on which predecessor is not defined.
2107     
2108        -- ">" Operations
2109        --% Subprogram:
2110        --    Predicate indicating whether S1 is a successor of S2.
2111        --    S1 and S2 shall have identical parameter codes.
2112        --% Parameter Constraints:
2113        -->   None
2114        --% Exceptions Raised:
2115        -->   Illegal_Parameter_Format_Code - Parameter code for S1 and S2 differs
2116        --+    or designates a parameter type on which successor is not defined.
2117     
2118        -- Equal Operations
2119        --% Subprogram:
2120        --    Predicate indicating whether S1 and S2 are equal wrt. parameter value
2121        --+    and parameter code.
2122        --% Parameter Constraints:
2123        -->   None
2124        --% Exceptions Raised:
2125        -->   Illegal_Parameter_Format_Code - Parameter code for S1 and S2 differs
2126        --+    or designates a parameter type on which equality is not defined.
2127     
2128        procedure Put
2129              (Stream : in out Source_Data_Stream.Write_Stream;
2130               Sval   : in     Sv_Real_Val_1);
2131        procedure Get
2132              (Stream : in out Source_Data_Stream.Read_Stream;
2133               Sval   :    out Sv_Real_Val_1);
2134        function "<"
2135              (S1, S2 : in     Sv_Real_Val_1)
2136              return Boolean;
2137        function ">"
2138              (S1, S2 : in     Sv_Real_Val_1)
2139              return Boolean;
2140        function Equal
2141              (S1, S2 : in     Sv_Real_Val_1)
2142              return Boolean;
2143        function Position
2144              (Parameter :        Sv_Real_Val_1)
2145              return Universal_Parameter_Representation.Universal_Parameter_Type'
2146                 Class;
2147     
2148        procedure Put
2149              (Stream : in out Source_Data_Stream.Write_Stream;
2150               Sval   : in     Sv_Real_Val_2);
2151        procedure Get
2152              (Stream : in out Source_Data_Stream.Read_Stream;
2153               Sval   :    out Sv_Real_Val_2);
2154        function "<"
2155              (S1, S2 : in     Sv_Real_Val_2)
2156              return Boolean;
2157        function ">"
2158              (S1, S2 : in     Sv_Real_Val_2)
2159              return Boolean;
2160        function Equal
2161              (S1, S2 : in     Sv_Real_Val_2)
2162              return Boolean;
2163        function Position
2164              (Parameter :        Sv_Real_Val_2)
2165              return Universal_Parameter_Representation.Universal_Parameter_Type'
2166                 Class;
2167     
2168        -------------------------------------------------
2169     
2170        -- Put Operations:
2171        --% Subprogram:
2172        --    Collection of source data stream write operation on SV_Bit_String
2173        --+    parameters.
2174        --    Appends external representation of Val at tail of write stream Stream.
2175        --+
2176        --% Parameter Constraints:
2177        -->   None
2178        --% Exceptions Raised:
2179        -->   Source_Data_Stream.Write_Stream_Exhausted - End of stream was met
2180        --+    while appending object.
2181     
2182        -- Get Operations:
2183        --% Subprogram:
2184        --    Collection of source data stream read operation on SV_Bit_String
2185        --+    parameters.
2186        --    Reads external representation of Val at head of read stream Stream.
2187        --% Parameter Constraints:
2188        -->   None
2189        --% Exceptions Raised:
2190        -->   Source_Data_Stream.Read_Stream_Exhausted - End of stream was met while
2191        --+    reading object.
2192     
2193        -- Ordering_Relation_Exists Operations:
2194        --% Subprogram:
2195        --    Predicate indicating whether ordering relations (i.e. Equal, "<", and
2196        --+    ">") exist for S1 and S2.
2197        --    S1 and S2 shall have identical parameter codes.
2198        --% Parameter Constraints:
2199        -->   None
2200        --% Exceptions Raised:
2201        -->   Illegal_Parameter_Format_Code - Parameter code for S1 and S2 differs.
2202     
2203        procedure Put
2204              (Stream : in out Source_Data_Stream.Write_Stream;
2205               Sval   : in     Sv_Bit_String_Val_0);
2206        procedure Get
2207              (Stream : in out Source_Data_Stream.Read_Stream;
2208               Sval   :    out Sv_Bit_String_Val_0);
2209     
2210        procedure Put
2211              (Stream : in out Source_Data_Stream.Write_Stream;
2212               Sval   : in     Sv_Bit_String_Others);
2213        procedure Get
2214              (Stream : in out Source_Data_Stream.Read_Stream;
2215               Sval   :    out Sv_Bit_String_Others);
2216     
2217        -------------------------------------------------
2218     
2219        -- Put Operations:
2220        --% Subprogram:
2221        --    Collection of source data stream write operation on SV_Octet_String
2222        --+    parameters.
2223        --    Appends external representation of Val at tail of write stream Stream.
2224        --+
2225        --% Parameter Constraints:
2226        -->   None
2227        --% Exceptions Raised:
2228        -->   Source_Data_Stream.Write_Stream_Exhausted - End of stream was met
2229        --+    while appending object.
2230     
2231        -- Get Operations:
2232        --% Subprogram:
2233        --    Collection of source data stream read operation on SV_Octet_String
2234        --+    parameters.
2235        --    Reads external representation of Val at head of read stream Stream.
2236        --% Parameter Constraints:
2237        -->   None
2238        --% Exceptions Raised:
2239        -->   Source_Data_Stream.Read_Stream_Exhausted - End of stream was met while
2240        --+    reading object.
2241     
2242        -- Ordering_Relation_Exists Operations:
2243        --% Subprogram:
2244        --    Predicate indicating whether ordering relations (i.e. Equal, "<", and
2245        --+    ">") exist for S1 and S2.
2246        --    S1 and S2 shall have identical parameter codes.
2247        --% Parameter Constraints:
2248        -->   None
2249        --% Exceptions Raised:
2250        -->   Illegal_Parameter_Format_Code - Parameter code for S1 and S2 differs.
2251     
2252        procedure Put
2253              (Stream : in out Source_Data_Stream.Write_Stream;
2254               Sval   : in     Sv_Octet_String_Val_0);
2255        procedure Get
2256              (Stream : in out Source_Data_Stream.Read_Stream;
2257               Sval   :    out Sv_Octet_String_Val_0);
2258     
2259        procedure Put
2260              (Stream : in out Source_Data_Stream.Write_Stream;
2261               Sval   : in     Sv_Octet_String_Others);
2262        procedure Get
2263              (Stream : in out Source_Data_Stream.Read_Stream;
2264               Sval   :    out Sv_Octet_String_Others);
2265     
2266        -------------------------------------------------
2267     
2268        -- Put Operations:
2269        --% Subprogram:
2270        --    Collection of source data stream write operation on
2271        --+    SV_Character_String parameters.
2272        --    Appends external representation of Val at tail of write stream Stream.
2273        --+
2274        --% Parameter Constraints:
2275        -->   None
2276        --% Exceptions Raised:
2277        -->   Source_Data_Stream.Write_Stream_Exhausted - End of stream was met
2278        --+    while appending object.
2279     
2280        -- Get Operations:
2281        --% Subprogram:
2282        --    Collection of source data stream read operation on SV_Character_String
2283        --+    parameters.
2284        --    Reads external representation of Val at head of read stream Stream.
2285        --% Parameter Constraints:
2286        -->   None
2287        --% Exceptions Raised:
2288        -->   Source_Data_Stream.Read_Stream_Exhausted - End of stream was met while
2289        --+    reading object.
2290     
2291        -- Ordering_Relation_Exists Operations:
2292        --% Subprogram:
2293        --    Predicate indicating whether ordering relations (i.e. Equal, "<", and
2294        --+    ">") exist for S1 and S2.
2295        --    S1 and S2 shall have identical parameter codes.
2296        --% Parameter Constraints:
2297        -->   None
2298        --% Exceptions Raised:
2299        -->   Illegal_Parameter_Format_Code - Parameter code for S1 and S2 differs.
2300     
2301        procedure Put
2302              (Stream : in out Source_Data_Stream.Write_Stream;
2303               Sval   : in     Sv_Character_String_Val_0);
2304        procedure Get
2305              (Stream : in out Source_Data_Stream.Read_Stream;
2306               Sval   :    out Sv_Character_String_Val_0);
2307     
2308        procedure Put
2309              (Stream : in out Source_Data_Stream.Write_Stream;
2310               Sval   : in     Sv_Character_String_Others);
2311        procedure Get
2312              (Stream : in out Source_Data_Stream.Read_Stream;
2313               Sval   :    out Sv_Character_String_Others);
2314     
2315        -------------------------------------------------
2316     
2317        -- Put Operations:
2318        --% Subprogram:
2319        --    Collection of source data stream write operation on time parameters
2320        --+    SV_Time_Val_0 and relative time parameters SV_Relative_Time_Val_0.
2321        --    Appends external representation of Val at tail of write stream Stream.
2322        --+
2323        --% Parameter Constraints:
2324        -->   None
2325        --% Exceptions Raised:
2326        -->   Source_Data_Stream.Write_Stream_Exhausted - End of stream was met
2327        --+    while appending object.
2328     
2329        -- Get Operations:
2330        --% Subprogram:
2331        --    Collection of source data stream read operation on time parameters
2332        --+    SV_Time_Val_0 and relative time parameters SV_Relative_Time_Val_0.
2333        --    Reads external representation of Val at head of read stream Stream.
2334        --% Parameter Constraints:
2335        -->   None
2336        --% Exceptions Raised:
2337        -->   Source_Data_Stream.Read_Stream_Exhausted - End of stream was met while
2338        --+    reading object.
2339     
2340        -- Ordering_Relation_Exists Operations:
2341        --% Subprogram:
2342        --    Predicate indicating whether ordering relations (i.e. Equal, "<", and
2343        --+    ">") exist for S1 and S2.
2344        --    S1 and S2 shall have identical parameter codes.
2345        --% Parameter Constraints:
2346        -->   None
2347        --% Exceptions Raised:
2348        -->   Illegal_Parameter_Format_Code - Parameter code for S1 and S2 differs.
2349     
2350        -- "<" Operations
2351        --% Subprogram:
2352        --    Predicate indicating whether S1 is a predecessor of S2. S1 and S2
2353        --+    shall have identical parameter codes.
2354        --% Parameter Constraints:
2355        -->   None
2356        --% Exceptions Raised:
2357        -->   Illegal_Parameter_Format_Code - Parameter code for S1 and S2 differs
2358        --+    or designates a parameter type on which predecessor is not defined.
2359     
2360        -- ">" Operations
2361        --% Subprogram:
2362        --    Predicate indicating whether S1 is a successor of S2.
2363        --    S1 and S2 shall have identical parameter codes.
2364        --% Parameter Constraints:
2365        -->   None
2366        --% Exceptions Raised:
2367        -->   Illegal_Parameter_Format_Code - Parameter code for S1 and S2 differs
2368        --+    or designates a parameter type on which successor is not defined.
2369     
2370        -- Equal Operations
2371        --% Subprogram:
2372        --    Predicate indicating whether S1 and S2 are equal wrt. parameter value
2373        --+    and parameter code.
2374        --% Parameter Constraints:
2375        -->   None
2376        --% Exceptions Raised:
2377        -->   Illegal_Parameter_Format_Code - Parameter code for S1 and S2 differs
2378        --+    or designates a parameter type on which equality is not defined.
2379     
2380        procedure Put
2381              (Stream : in out Source_Data_Stream.Write_Stream;
2382               Sval   : in     Sv_Time_Val_0);
2383        procedure Get
2384              (Stream : in out Source_Data_Stream.Read_Stream;
2385               Sval   :    out Sv_Time_Val_0);
2386        function "<"
2387              (S1, S2 : in     Sv_Time_Val_0)
2388              return Boolean;
2389        function ">"
2390              (S1, S2 : in     Sv_Time_Val_0)
2391              return Boolean;
2392        function Equal
2393              (S1, S2 : in     Sv_Time_Val_0)
2394              return Boolean;
2395     
2396        procedure Put
2397              (Stream : in out Source_Data_Stream.Write_Stream;
2398               Sval   : in     Sv_Relative_Time_Val_0);
2399        procedure Get
2400              (Stream : in out Source_Data_Stream.Read_Stream;
2401               Sval   :    out Sv_Relative_Time_Val_0);
2402        function "<"
2403              (S1, S2 : in     Sv_Relative_Time_Val_0)
2404              return Boolean;
2405        function ">"
2406              (S1, S2 : in     Sv_Relative_Time_Val_0)
2407              return Boolean;
2408        function Equal
2409              (S1, S2 : in     Sv_Relative_Time_Val_0)
2410              return Boolean;
2411     
2412     
2413        -------------------------------------------------
2414     
2415        -- Put Operations:
2416        --% Subprogram:
2417        --    Collection of source data stream write operation on boolean parameters
2418        --+    (PTC = 1).
2419        --    Appends external representation of Val at tail of write stream Stream.
2420        --+
2421        --% Parameter Constraints:
2422        -->   None
2423        --% Exceptions Raised:
2424        -->   Source_Data_Stream.Write_Stream_Exhausted - End of stream was met
2425        --+    while appending object.
2426     
2427        -- Get Operations:
2428        --% Subprogram:
2429        --    Collection of source data stream read operation on boolean parameters
2430        --+    (PTC = 1).
2431        --    Reads external representation of Val at head of read stream Stream.
2432        --% Parameter Constraints:
2433        -->   None
2434        --% Exceptions Raised:
2435        -->   Source_Data_Stream.Read_Stream_Exhausted - End of stream was met while
2436        --+    reading object.
2437     
2438        procedure Put
2439              (Stream : in out Source_Data_Stream.Write_Stream;
2440               Val    : in     Boolean_0);
2441        procedure Get
2442              (Stream : in out Source_Data_Stream.Read_Stream;
2443               Val    :    out Boolean_0);
2444     
2445        -------------------------------------------------
2446     
2447        -- Put Operations:
2448        --% Subprogram:
2449        --    Collection of source data stream write operation on enumerated
2450        --+    parameters (PTC = 2).
2451        --    Appends external representation of Val at tail of write stream Stream.
2452        --+
2453        --% Parameter Constraints:
2454        -->   None
2455        --% Exceptions Raised:
2456        -->   Source_Data_Stream.Write_Stream_Exhausted - End of stream was met
2457        --+    while appending object.
2458     
2459        -- Get Operations:
2460        --% Subprogram:
2461        --    Collection of source data stream read operation on enumerated
2462        --+    parameters (PTC = 2).
2463        --    Reads external representation of Val at head of read stream Stream.
2464        --% Parameter Constraints:
2465        -->   None
2466        --% Exceptions Raised:
2467        -->   Source_Data_Stream.Read_Stream_Exhausted - End of stream was met while
2468        --+    reading object.
2469     
2470        procedure Put
2471              (Stream : in out Source_Data_Stream.Write_Stream;
2472               Val    : in     Enumerated_1);
2473        procedure Get
2474              (Stream : in out Source_Data_Stream.Read_Stream;
2475               Val    :    out Enumerated_1);
2476     
2477        procedure Put
2478              (Stream : in out Source_Data_Stream.Write_Stream;
2479               Val    : in     Enumerated_2);
2480        procedure Get
2481              (Stream : in out Source_Data_Stream.Read_Stream;
2482               Val    :    out Enumerated_2);
2483     
2484        procedure Put
2485              (Stream : in out Source_Data_Stream.Write_Stream;
2486               Val    : in     Enumerated_4);
2487        procedure Get
2488              (Stream : in out Source_Data_Stream.Read_Stream;
2489               Val    :    out Enumerated_4);
2490     
2491        procedure Put
2492              (Stream : in out Source_Data_Stream.Write_Stream;
2493               Val    : in     Enumerated_8);
2494        procedure Get
2495              (Stream : in out Source_Data_Stream.Read_Stream;
2496               Val    :    out Enumerated_8);
2497     
2498        procedure Put
2499              (Stream : in out Source_Data_Stream.Write_Stream;
2500               Val    : in     Enumerated_12);
2501        procedure Get
2502              (Stream : in out Source_Data_Stream.Read_Stream;
2503               Val    :    out Enumerated_12);
2504     
2505        procedure Put
2506              (Stream : in out Source_Data_Stream.Write_Stream;
2507               Val    : in     Enumerated_16);
2508        procedure Get
2509              (Stream : in out Source_Data_Stream.Read_Stream;
2510               Val    :    out Enumerated_16);
2511     
2512        procedure Put
2513              (Stream : in out Source_Data_Stream.Write_Stream;
2514               Val    : in     Enumerated_24);
2515        procedure Get
2516              (Stream : in out Source_Data_Stream.Read_Stream;
2517               Val    :    out Enumerated_24);
2518     
2519        procedure Put
2520              (Stream : in out Source_Data_Stream.Write_Stream;
2521               Val    : in     Enumerated_32);
2522        procedure Get
2523              (Stream : in out Source_Data_Stream.Read_Stream;
2524               Val    :    out Enumerated_32);
2525     
2526     
2527        -------------------------------------------------
2528     
2529        -- Put Operations:
2530        --% Subprogram:
2531        --    Collection of source data stream write operation on unsigned integer
2532        --+    parameters (PTC = 3).
2533        --    Appends external representation of Val at tail of write stream Stream.
2534        --+
2535        --% Parameter Constraints:
2536        -->   None
2537        --% Exceptions Raised:
2538        -->   Source_Data_Stream.Write_Stream_Exhausted - End of stream was met
2539        --+    while appending object.
2540     
2541        -- Get Operations:
2542        --% Subprogram:
2543        --    Collection of source data stream read operation on unsigned integer
2544        --+    parameters (PTC = 3).
2545        --    Reads external representation of Val at head of read stream Stream.
2546        --% Parameter Constraints:
2547        -->   None
2548        --% Exceptions Raised:
2549        -->   Source_Data_Stream.Read_Stream_Exhausted - End of stream was met while
2550        --+    reading object.
2551     
2552        procedure Put
2553              (Stream : in out Source_Data_Stream.Write_Stream;
2554               Val    : in     Unsigned_Integer_0);
2555        procedure Get
2556              (Stream : in out Source_Data_Stream.Read_Stream;
2557               Val    :    out Unsigned_Integer_0);
2558     
2559        procedure Put
2560              (Stream : in out Source_Data_Stream.Write_Stream;
2561               Val    : in     Unsigned_Integer_1);
2562        procedure Get
2563              (Stream : in out Source_Data_Stream.Read_Stream;
2564               Val    :    out Unsigned_Integer_1);
2565     
2566        procedure Put
2567              (Stream : in out Source_Data_Stream.Write_Stream;
2568               Val    : in     Unsigned_Integer_2);
2569        procedure Get
2570              (Stream : in out Source_Data_Stream.Read_Stream;
2571               Val    :    out Unsigned_Integer_2);
2572     
2573        procedure Put
2574              (Stream : in out Source_Data_Stream.Write_Stream;
2575               Val    : in     Unsigned_Integer_3);
2576        procedure Get
2577              (Stream : in out Source_Data_Stream.Read_Stream;
2578               Val    :    out Unsigned_Integer_3);
2579     
2580        procedure Put
2581              (Stream : in out Source_Data_Stream.Write_Stream;
2582               Val    : in     Unsigned_Integer_4);
2583        procedure Get
2584              (Stream : in out Source_Data_Stream.Read_Stream;
2585               Val    :    out Unsigned_Integer_4);
2586     
2587        procedure Put
2588              (Stream : in out Source_Data_Stream.Write_Stream;
2589               Val    : in     Unsigned_Integer_5);
2590        procedure Get
2591              (Stream : in out Source_Data_Stream.Read_Stream;
2592               Val    :    out Unsigned_Integer_5);
2593     
2594        procedure Put
2595              (Stream : in out Source_Data_Stream.Write_Stream;
2596               Val    : in     Unsigned_Integer_6);
2597        procedure Get
2598              (Stream : in out Source_Data_Stream.Read_Stream;
2599               Val    :    out Unsigned_Integer_6);
2600     
2601        procedure Put
2602              (Stream : in out Source_Data_Stream.Write_Stream;
2603               Val    : in     Unsigned_Integer_7);
2604        procedure Get
2605              (Stream : in out Source_Data_Stream.Read_Stream;
2606               Val    :    out Unsigned_Integer_7);
2607     
2608        procedure Put
2609              (Stream : in out Source_Data_Stream.Write_Stream;
2610               Val    : in     Unsigned_Integer_8);
2611        procedure Get
2612              (Stream : in out Source_Data_Stream.Read_Stream;
2613               Val    :    out Unsigned_Integer_8);
2614     
2615        procedure Put
2616              (Stream : in out Source_Data_Stream.Write_Stream;
2617               Val    : in     Unsigned_Integer_9);
2618        procedure Get
2619              (Stream : in out Source_Data_Stream.Read_Stream;
2620               Val    :    out Unsigned_Integer_9);
2621     
2622        procedure Put
2623              (Stream : in out Source_Data_Stream.Write_Stream;
2624               Val    : in     Unsigned_Integer_10);
2625        procedure Get
2626              (Stream : in out Source_Data_Stream.Read_Stream;
2627               Val    :    out Unsigned_Integer_10);
2628     
2629        procedure Put
2630              (Stream : in out Source_Data_Stream.Write_Stream;
2631               Val    : in     Unsigned_Integer_11);
2632        procedure Get
2633              (Stream : in out Source_Data_Stream.Read_Stream;
2634               Val    :    out Unsigned_Integer_11);
2635     
2636        procedure Put
2637              (Stream : in out Source_Data_Stream.Write_Stream;
2638               Val    : in     Unsigned_Integer_12);
2639        procedure Get
2640              (Stream : in out Source_Data_Stream.Read_Stream;
2641               Val    :    out Unsigned_Integer_12);
2642     
2643        procedure Put
2644              (Stream : in out Source_Data_Stream.Write_Stream;
2645               Val    : in     Unsigned_Integer_13);
2646        procedure Get
2647              (Stream : in out Source_Data_Stream.Read_Stream;
2648               Val    :    out Unsigned_Integer_13);
2649     
2650        procedure Put
2651              (Stream : in out Source_Data_Stream.Write_Stream;
2652               Val    : in     Unsigned_Integer_14);
2653        procedure Get
2654              (Stream : in out Source_Data_Stream.Read_Stream;
2655               Val    :    out Unsigned_Integer_14);
2656     
2657        procedure Put
2658              (Stream : in out Source_Data_Stream.Write_Stream;
2659               Val    : in     Unsigned_Integer_15);
2660        procedure Get
2661              (Stream : in out Source_Data_Stream.Read_Stream;
2662               Val    :    out Unsigned_Integer_15);
2663     
2664        -------------------------------------------------
2665     
2666        -- Put Operations:
2667        --% Subprogram:
2668        --    Collection of source data stream write operation on signed integer
2669        --+    parameters (PTC = 4).
2670        --    Appends external representation of Val at tail of write stream Stream.
2671        --+
2672        --% Parameter Constraints:
2673        -->   None
2674        --% Exceptions Raised:
2675        -->   Source_Data_Stream.Write_Stream_Exhausted - End of stream was met
2676        --+    while appending object.
2677     
2678        -- Get Operations:
2679        --% Subprogram:
2680        --    Collection of source data stream read operation on signed integer
2681        --+    parameters (PTC = 4).
2682        --    Reads external representation of Val at head of read stream Stream.
2683        --% Parameter Constraints:
2684        -->   None
2685        --% Exceptions Raised:
2686        -->   Source_Data_Stream.Read_Stream_Exhausted - End of stream was met while
2687        --+    reading object.
2688     
2689        procedure Put
2690              (Stream : in out Source_Data_Stream.Write_Stream;
2691               Val    : in     Signed_Integer_0);
2692        procedure Get
2693              (Stream : in out Source_Data_Stream.Read_Stream;
2694               Val    :    out Signed_Integer_0);
2695     
2696        procedure Put
2697              (Stream : in out Source_Data_Stream.Write_Stream;
2698               Val    : in     Signed_Integer_1);
2699        procedure Get
2700              (Stream : in out Source_Data_Stream.Read_Stream;
2701               Val    :    out Signed_Integer_1);
2702     
2703        procedure Put
2704              (Stream : in out Source_Data_Stream.Write_Stream;
2705               Val    : in     Signed_Integer_2);
2706        procedure Get
2707              (Stream : in out Source_Data_Stream.Read_Stream;
2708               Val    :    out Signed_Integer_2);
2709     
2710        procedure Put
2711              (Stream : in out Source_Data_Stream.Write_Stream;
2712               Val    : in     Signed_Integer_3);
2713        procedure Get
2714              (Stream : in out Source_Data_Stream.Read_Stream;
2715               Val    :    out Signed_Integer_3);
2716     
2717        procedure Put
2718              (Stream : in out Source_Data_Stream.Write_Stream;
2719               Val    : in     Signed_Integer_4);
2720        procedure Get
2721              (Stream : in out Source_Data_Stream.Read_Stream;
2722               Val    :    out Signed_Integer_4);
2723     
2724        procedure Put
2725              (Stream : in out Source_Data_Stream.Write_Stream;
2726               Val    : in     Signed_Integer_5);
2727        procedure Get
2728              (Stream : in out Source_Data_Stream.Read_Stream;
2729               Val    :    out Signed_Integer_5);
2730     
2731        procedure Put
2732              (Stream : in out Source_Data_Stream.Write_Stream;
2733               Val    : in     Signed_Integer_6);
2734        procedure Get
2735              (Stream : in out Source_Data_Stream.Read_Stream;
2736               Val    :    out Signed_Integer_6);
2737     
2738        procedure Put
2739              (Stream : in out Source_Data_Stream.Write_Stream;
2740               Val    : in     Signed_Integer_7);
2741        procedure Get
2742              (Stream : in out Source_Data_Stream.Read_Stream;
2743               Val    :    out Signed_Integer_7);
2744     
2745        procedure Put
2746              (Stream : in out Source_Data_Stream.Write_Stream;
2747               Val    : in     Signed_Integer_8);
2748        procedure Get
2749              (Stream : in out Source_Data_Stream.Read_Stream;
2750               Val    :    out Signed_Integer_8);
2751     
2752        procedure Put
2753              (Stream : in out Source_Data_Stream.Write_Stream;
2754               Val    : in     Signed_Integer_9);
2755        procedure Get
2756              (Stream : in out Source_Data_Stream.Read_Stream;
2757               Val    :    out Signed_Integer_9);
2758     
2759        procedure Put
2760              (Stream : in out Source_Data_Stream.Write_Stream;
2761               Val    : in     Signed_Integer_10);
2762        procedure Get
2763              (Stream : in out Source_Data_Stream.Read_Stream;
2764               Val    :    out Signed_Integer_10);
2765     
2766        procedure Put
2767              (Stream : in out Source_Data_Stream.Write_Stream;
2768               Val    : in     Signed_Integer_11);
2769        procedure Get
2770              (Stream : in out Source_Data_Stream.Read_Stream;
2771               Val    :    out Signed_Integer_11);
2772     
2773        procedure Put
2774              (Stream : in out Source_Data_Stream.Write_Stream;
2775               Val    : in     Signed_Integer_12);
2776        procedure Get
2777              (Stream : in out Source_Data_Stream.Read_Stream;
2778               Val    :    out Signed_Integer_12);
2779     
2780        procedure Put
2781              (Stream : in out Source_Data_Stream.Write_Stream;
2782               Val    : in     Signed_Integer_13);
2783        procedure Get
2784              (Stream : in out Source_Data_Stream.Read_Stream;
2785               Val    :    out Signed_Integer_13);
2786     
2787        procedure Put
2788              (Stream : in out Source_Data_Stream.Write_Stream;
2789               Val    : in     Signed_Integer_14);
2790        procedure Get
2791              (Stream : in out Source_Data_Stream.Read_Stream;
2792               Val    :    out Signed_Integer_14);
2793     
2794        procedure Put
2795              (Stream : in out Source_Data_Stream.Write_Stream;
2796               Val    : in     Signed_Integer_15);
2797        procedure Get
2798              (Stream : in out Source_Data_Stream.Read_Stream;
2799               Val    :    out Signed_Integer_15);
2800     
2801        procedure Put
2802              (Stream : in out Source_Data_Stream.Write_Stream;
2803               Val    : in     Signed_Integer_16);
2804        procedure Get
2805              (Stream : in out Source_Data_Stream.Read_Stream;
2806               Val    :    out Signed_Integer_16);
2807     
2808        -------------------------------------------------
2809     
2810        -- Put Operations:
2811        --% Subprogram:
2812        --    Collection of source data stream write operation on real parameters
2813        --+    (PTC = 5).
2814        --    Appends external representation of Val at tail of write stream Stream.
2815        --+
2816        --% Parameter Constraints:
2817        -->   None
2818        --% Exceptions Raised:
2819        -->   Source_Data_Stream.Write_Stream_Exhausted - End of stream was met
2820        --+    while appending object.
2821     
2822        -- Get Operations:
2823        --% Subprogram:
2824        --    Collection of source data stream read operation on real parameters
2825        --+    (PTC = 5).
2826        --    Reads external representation of Val at head of read stream Stream.
2827        --% Parameter Constraints:
2828        -->   None
2829        --% Exceptions Raised:
2830        -->   Source_Data_Stream.Read_Stream_Exhausted - End of stream was met while
2831        --+    reading object.
2832     
2833        procedure Put
2834              (Stream : in out Source_Data_Stream.Write_Stream;
2835               Val    : in     Real_1);
2836        procedure Get
2837              (Stream : in out Source_Data_Stream.Read_Stream;
2838               Val    :    out Real_1);
2839     
2840        procedure Put
2841              (Stream : in out Source_Data_Stream.Write_Stream;
2842               Val    : in     Real_2);
2843        procedure Get
2844              (Stream : in out Source_Data_Stream.Read_Stream;
2845               Val    :    out Real_2);
2846     
2847        -------------------------------------------------
2848     
2849        -- Put Operations:
2850        --% Subprogram:
2851        --    Collection of source data stream write operation on bit-string
2852        --+    parameters (PTC = 6).
2853        --    Appends external representation of Val at tail of write stream Stream.
2854        --+
2855        --% Parameter Constraints:
2856        -->   None
2857        --% Exceptions Raised:
2858        -->   Source_Data_Stream.Write_Stream_Exhausted - End of stream was met
2859        --+    while appending object.
2860     
2861        -- Get Operations:
2862        --% Subprogram:
2863        --    Collection of source data stream read operation on bit-string
2864        --+    parameters (PTC = 6).
2865        --    Reads external representation of Val at head of read stream Stream.
2866        --% Parameter Constraints:
2867        -->   None
2868        --% Exceptions Raised:
2869        -->   Source_Data_Stream.Read_Stream_Exhausted - End of stream was met while
2870        --+    reading object.
2871     
2872        procedure Put
2873              (Stream : in out Source_Data_Stream.Write_Stream;
2874               Val    : in     Bit_String);
2875        procedure Get
2876              (Stream : in out Source_Data_Stream.Read_Stream;
2877               Val    :    out Bit_String);
2878     
2879        procedure Put
2880              (Stream : in out Source_Data_Stream.Write_Stream;
2881               Val    : in     Var_Bit_String);
2882        procedure Get
2883              (Stream : in out Source_Data_Stream.Read_Stream;
2884               Val    :    out Var_Bit_String);
2885     
2886        -------------------------------------------------
2887     
2888        -- Put Operations:
2889        --% Subprogram:
2890        --    Collection of source data stream write operation on octet-string
2891        --+    parameters (PTC = 7).
2892        --    Appends external representation of Val at tail of write stream Stream.
2893        --+
2894        --% Parameter Constraints:
2895        -->   None
2896        --% Exceptions Raised:
2897        -->   Source_Data_Stream.Write_Stream_Exhausted - End of stream was met
2898        --+    while appending object.
2899     
2900        -- Get Operations:
2901        --% Subprogram:
2902        --    Collection of source data stream read operation on octet-string
2903        --+    parameters (PTC = 7).
2904        --    Reads external representation of Val at head of read stream Stream.
2905        --% Parameter Constraints:
2906        -->   None
2907        --% Exceptions Raised:
2908        -->   Source_Data_Stream.Read_Stream_Exhausted - End of stream was met while
2909        --+    reading object.
2910     
2911        procedure Put
2912              (Stream : in out Source_Data_Stream.Write_Stream;
2913               Val    : in     Octet_String);
2914        procedure Get
2915              (Stream : in out Source_Data_Stream.Read_Stream;
2916               Val    :    out Octet_String);
2917     
2918        procedure Put
2919              (Stream : in out Source_Data_Stream.Write_Stream;
2920               Val    : in     Var_Octet_String);
2921        procedure Get
2922              (Stream : in out Source_Data_Stream.Read_Stream;
2923               Val    :    out Var_Octet_String);
2924     
2925        -------------------------------------------------
2926     
2927        -- Put Operations:
2928        --% Subprogram:
2929        --    Collection of source data stream write operation on character-string
2930        --+    parameters (PTC = 8).
2931        --    Appends external representation of Val at tail of write stream Stream.
2932        --+
2933        --% Parameter Constraints:
2934        -->   None
2935        --% Exceptions Raised:
2936        -->   Source_Data_Stream.Write_Stream_Exhausted - End of stream was met
2937        --+    while appending object.
2938     
2939        -- Get Operations:
2940        --% Subprogram:
2941        --    Collection of source data stream read operation on character-string
2942        --+    parameters (PTC = 8).
2943        --    Reads external representation of Val at head of read stream Stream.
2944        --% Parameter Constraints:
2945        -->   None
2946        --% Exceptions Raised:
2947        -->   Source_Data_Stream.Read_Stream_Exhausted - End of stream was met while
2948        --+    reading object.
2949     
2950        procedure Put
2951              (Stream : in out Source_Data_Stream.Write_Stream;
2952               Val    : in     Character_String);
2953        procedure Get
2954              (Stream : in out Source_Data_Stream.Read_Stream;
2955               Val    :    out Character_String);
2956     
2957        procedure Put
2958              (Stream : in out Source_Data_Stream.Write_Stream;
2959               Val    : in     Var_Character_String);
2960        procedure Get
2961              (Stream : in out Source_Data_Stream.Read_Stream;
2962               Val    :    out Var_Character_String);
2963     
2964        -------------------------------------------------
2965     
2966        -- Put Operations:
2967        --% Subprogram:
2968        --    Collection of source data stream write operation on time parameters
2969        --+    (PTC = 9) and relative time parameters (PTC = 10).
2970        --    Appends external representation of Val at tail of write stream Stream.
2971        --+
2972        --% Parameter Constraints:
2973        -->   None
2974        --% Exceptions Raised:
2975        -->   Source_Data_Stream.Write_Stream_Exhausted - End of stream was met
2976        --+    while appending object.
2977     
2978        -- Get Operations:
2979        --% Subprogram:
2980        --    Collection of source data stream read operation on time parameters
2981        --+    (PTC = 9) and relative time parameters (PTC = 10).
2982        --    Reads external representation of Val at head of read stream Stream.
2983        --% Parameter Constraints:
2984        -->   None
2985        --% Exceptions Raised:
2986        -->   Source_Data_Stream.Read_Stream_Exhausted - End of stream was met while
2987        --+    reading object.
2988        procedure Put
2989              (Stream : in out Source_Data_Stream.Write_Stream;
2990               Val    : in     PUS_Time);
2991        procedure Get
2992              (Stream : in out Source_Data_Stream.Read_Stream;
2993               Val    :    out PUS_Time);
2994     
2995        procedure Put
2996              (Stream : in out Source_Data_Stream.Write_Stream;
2997               Val    : in     PUS_Relative_Time);
2998        procedure Get
2999              (Stream : in out Source_Data_Stream.Read_Stream;
3000               Val    :    out PUS_Relative_Time);
3001     
3002     end Parameter_Representation;
3003     
3004     --~-----------------------------------------------------------------------------
3005