File: /home/oboss/Users/gec/sources/PUS_Services/Memory_Management/memory_management_types.ads
1 --% Compilation Unit: Memory_Management_Types
2 --
3 --% Category: Package Declaration
4 --
5 --% Release: $Name: $
6 --
7 --% Version: $Revision: 2.1 $
8 --
9 --% Author: $Author: gec $
10 --
11 --% Revision Log:
12 -- $Log: memory_management_types.ads,v $
13 -- Revision 2.1 2003/11/13 14:57:49 gec
14 -- Merged ECSS Migration branch to main trunk.
15 --
16 -- Revision 2.0.8.2 2003/11/10 14:35:45 gec
17 -- Updated Memory Management Service to use mission parameter <SMALLEST_ADDRESSABLE_UNIT> as unit for absolute addresses and lengths of data block.
18 --
19 -- Revision 2.0.8.1 2003/11/10 10:03:40 gec
20 -- Updated memory management service in accordance with ECSS-E-70-41A.
21 --
22 -- Revision 2.0 2003/04/04 08:51:10 gec
23 -- Initial release of source files serving as baseline for OBOSS-III
24 --+ project.
25 --
26 -- Revision 1.1.1.1 2003/04/04 08:13:13 gec
27 -- Imported using TkCVS
28 --
29 --
30 --
31 --% Project: OBOSS
32 --
33 --% Copyright (C) 2003 by Terma A/S
34 -- Proprietary and intellectual rights of Terma A/S, Denmark,
35 -- are involved in the subject-matter of this material and
36 -- all manufacturing, reproduction, use, disclosure, and
37 -- sales rights pertaining to such subject-matter are
38 -- expressly reserved. This material is submitted for a
39 -- specific purpose as agreed, and the recipient by
40 -- accepting this material agrees that this material will
41 -- not be used, copied, or reproduced in whole or in part
42 -- nor its contents revealed in any manner or to any person,
43 -- except to meet the purpose for which it was submitted and
44 -- subject to the terms of the agreement.
45 --
46 --% Target Dependencies:
47 -- None
48 --% Compiler Dependencies:
49 -- None
50
51 --~-----------------------------------------------------------------------------
52
53 with Basic_Types;
54 with Mission_Parameters;
55 with System;
56 with System.Storage_Elements;
57 package Memory_Management_Types is
58
59 --% Library Package:
60 -- Definition of types specific to the memory management service
61 --% Active Tasks:
62 --> None
63 --% Passive Tasks:
64 --> None
65
66 TM_Destination :
67 constant Mission_Parameters.APID := Mission_Parameters.Ground;
68
69 type List_Length is new Natural;
70
71 subtype Absolute_Address is System.Address;
72 -- Start addresses are multipla of System.Storage_Unit
73 type Start_Address is new System.Storage_Elements.Storage_Offset;
74
75 subtype Data_Index is System.Storage_Elements.Storage_Offset;
76 subtype Data is System.Storage_Elements.Storage_Array;
77
78 subtype Data_Length is System.Storage_Elements.Storage_Offset;
79
80 type Access_Kind is
81 (No_Access,
82 Read,
83 Write,
84 Read_Write);
85
86 -- Exceptions to be raised by specific read and/or write operations in case
87 --+ of errors
88 No_Read_Access, No_Write_Access, Access_Outside_Memory_Area,
89 Unknown_Memory_Access_Error : exception;
90
91 Start_Address_Overflow : exception;
92
93 --% Subprogram:
94 -- Transforms a given block of data into a corresponding byte array
95 --+ representation
96 --% Parameter Constraints:
97 --> None
98 --% Exceptions Raised:
99 --> None
100 function Transform_Data_To_Byte_Array
101 (The_Data : Memory_Management_Types.Data)
102 return Basic_Types.Byte_Array;
103
104 --% Subprogram:
105 -- Transforms given integer representation for addresses into an absolute
106 --+ address
107 --% Parameter Constraints:
108 --> None
109 --% Exceptions Raised:
110 --> None
111 function To_Address
112 (Value : System.Storage_Elements.Integer_Address)
113 return Absolute_Address;
114
115 end Memory_Management_Types;
116
117 --~-----------------------------------------------------------------------------
118