OSDN Git Service

* 41intnam.ads, 42intnam.ads, 4aintnam.ads, 4cintnam.ads,
[pf3gnuchains/gcc-fork.git] / gcc / ada / i-cexten.ads
1 ------------------------------------------------------------------------------
2 --                                                                          --
3 --                         GNAT COMPILER COMPONENTS                         --
4 --                                                                          --
5 --              I N T E R F A C E S . C . E X T E N S I O N S               --
6 --                                                                          --
7 --                                 S p e c                                  --
8 --                                                                          --
9 --                            $Revision: 1.2 $                              --
10 --                                                                          --
11 --     Copyright (C) 1992,1993,1994,1995 Free Software Foundation, Inc.     --
12 --                                                                          --
13 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
14 -- terms of the  GNU General Public License as published  by the Free Soft- --
15 -- ware  Foundation;  either version 2,  or (at your option) any later ver- --
16 -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
17 -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
18 -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
19 -- for  more details.  You should have  received  a copy of the GNU General --
20 -- Public License  distributed with GNAT;  see file COPYING.  If not, write --
21 -- to  the Free Software Foundation,  59 Temple Place - Suite 330,  Boston, --
22 -- MA 02111-1307, USA.                                                      --
23 --                                                                          --
24 -- As a special exception,  if other files  instantiate  generics from this --
25 -- unit, or you link  this unit with other files  to produce an executable, --
26 -- this  unit  does not  by itself cause  the resulting  executable  to  be --
27 -- covered  by the  GNU  General  Public  License.  This exception does not --
28 -- however invalidate  any other reasons why  the executable file  might be --
29 -- covered by the  GNU Public License.                                      --
30 --                                                                          --
31 -- GNAT was originally developed  by the GNAT team at  New York University. --
32 -- It is now maintained by Ada Core Technologies Inc (http://www.gnat.com). --
33 --                                                                          --
34 ------------------------------------------------------------------------------
35
36 --  This package contains additional C-related definitions, intended for use
37 --  with either manually or automatically generated bindings to C libraries.
38
39 with System;
40
41 package Interfaces.C.Extensions is
42
43    subtype void     is System.Address;
44    subtype void_ptr is System.Address;
45
46    subtype opaque_structure_def is System.Address;
47    type opaque_structure_def_ptr is access opaque_structure_def;
48
49    subtype incomplete_class_def is System.Address;
50    type incomplete_class_def_ptr is access incomplete_class_def;
51
52    --
53    --  64bit integer types
54    --
55
56    subtype long_long is Long_Long_Integer;
57    type unsigned_long_long is mod 2 ** 64;
58
59    --
60    --  Types for bitfields
61    --
62
63    type Unsigned_1 is mod 2 ** 1;
64    for Unsigned_1'Size use 1;
65
66    type Unsigned_2 is mod 2 ** 2;
67    for Unsigned_2'Size use 2;
68
69    type Unsigned_3 is mod 2 ** 3;
70    for Unsigned_3'Size use 3;
71
72    type Unsigned_4 is mod 2 ** 4;
73    for Unsigned_4'Size use 4;
74
75    type Unsigned_5 is mod 2 ** 5;
76    for Unsigned_5'Size use 5;
77
78    type Unsigned_6 is mod 2 ** 6;
79    for Unsigned_6'Size use 6;
80
81    type Unsigned_7 is mod 2 ** 7;
82    for Unsigned_7'Size use 7;
83
84    type Unsigned_8 is mod 2 ** 8;
85    for Unsigned_8'Size use 8;
86
87    type Unsigned_9 is mod 2 ** 9;
88    for Unsigned_9'Size use 9;
89
90    type Unsigned_10 is mod 2 ** 10;
91    for Unsigned_10'Size use 10;
92
93    type Unsigned_11 is mod 2 ** 11;
94    for Unsigned_11'Size use 11;
95
96    type Unsigned_12 is mod 2 ** 12;
97    for Unsigned_12'Size use 12;
98
99    type Unsigned_13 is mod 2 ** 13;
100    for Unsigned_13'Size use 13;
101
102    type Unsigned_14 is mod 2 ** 14;
103    for Unsigned_14'Size use 14;
104
105    type Unsigned_15 is mod 2 ** 15;
106    for Unsigned_15'Size use 15;
107
108    type Unsigned_16 is mod 2 ** 16;
109    for Unsigned_16'Size use 16;
110
111    type Unsigned_17 is mod 2 ** 17;
112    for Unsigned_17'Size use 17;
113
114    type Unsigned_18 is mod 2 ** 18;
115    for Unsigned_18'Size use 18;
116
117    type Unsigned_19 is mod 2 ** 19;
118    for Unsigned_19'Size use 19;
119
120    type Unsigned_20 is mod 2 ** 20;
121    for Unsigned_20'Size use 20;
122
123    type Unsigned_21 is mod 2 ** 21;
124    for Unsigned_21'Size use 21;
125
126    type Unsigned_22 is mod 2 ** 22;
127    for Unsigned_22'Size use 22;
128
129    type Unsigned_23 is mod 2 ** 23;
130    for Unsigned_23'Size use 23;
131
132    type Unsigned_24 is mod 2 ** 24;
133    for Unsigned_24'Size use 24;
134
135    type Unsigned_25 is mod 2 ** 25;
136    for Unsigned_25'Size use 25;
137
138    type Unsigned_26 is mod 2 ** 26;
139    for Unsigned_26'Size use 26;
140
141    type Unsigned_27 is mod 2 ** 27;
142    for Unsigned_27'Size use 27;
143
144    type Unsigned_28 is mod 2 ** 28;
145    for Unsigned_28'Size use 28;
146
147    type Unsigned_29 is mod 2 ** 29;
148    for Unsigned_29'Size use 29;
149
150    type Unsigned_30 is mod 2 ** 30;
151    for Unsigned_30'Size use 30;
152
153    type Unsigned_31 is mod 2 ** 31;
154    for Unsigned_31'Size use 31;
155
156    type Unsigned_32 is mod 2 ** 32;
157    for Unsigned_32'Size use 32;
158
159    type Signed_2 is range -2 ** 1 .. 2 ** 1 - 1;
160    for Signed_2'Size use 2;
161
162    type Signed_3 is range -2 ** 2 .. 2 ** 2 - 1;
163    for Signed_3'Size use 3;
164
165    type Signed_4 is range -2 ** 3 .. 2 ** 3 - 1;
166    for Signed_4'Size use 4;
167
168    type Signed_5 is range -2 ** 4 .. 2 ** 4 - 1;
169    for Signed_5'Size use 5;
170
171    type Signed_6 is range -2 ** 5 .. 2 ** 5 - 1;
172    for Signed_6'Size use 6;
173
174    type Signed_7 is range -2 ** 6 .. 2 ** 6 - 1;
175    for Signed_7'Size use 7;
176
177    type Signed_8 is range -2 ** 7 .. 2 ** 7 - 1;
178    for Signed_8'Size use 8;
179
180    type Signed_9 is range -2 ** 8 .. 2 ** 8 - 1;
181    for Signed_9'Size use 9;
182
183    type Signed_10 is range -2 ** 9 .. 2 ** 9 - 1;
184    for Signed_10'Size use 10;
185
186    type Signed_11 is range -2 ** 10 .. 2 ** 10 - 1;
187    for Signed_11'Size use 11;
188
189    type Signed_12 is range -2 ** 11 .. 2 ** 11 - 1;
190    for Signed_12'Size use 12;
191
192    type Signed_13 is range -2 ** 12 .. 2 ** 12 - 1;
193    for Signed_13'Size use 13;
194
195    type Signed_14 is range -2 ** 13 .. 2 ** 13 - 1;
196    for Signed_14'Size use 14;
197
198    type Signed_15 is range -2 ** 14 .. 2 ** 14 - 1;
199    for Signed_15'Size use 15;
200
201    type Signed_16 is range -2 ** 15 .. 2 ** 15 - 1;
202    for Signed_16'Size use 16;
203
204    type Signed_17 is range -2 ** 16 .. 2 ** 16 - 1;
205    for Signed_17'Size use 17;
206
207    type Signed_18 is range -2 ** 17 .. 2 ** 17 - 1;
208    for Signed_18'Size use 18;
209
210    type Signed_19 is range -2 ** 18 .. 2 ** 18 - 1;
211    for Signed_19'Size use 19;
212
213    type Signed_20 is range -2 ** 19 .. 2 ** 19 - 1;
214    for Signed_20'Size use 20;
215
216    type Signed_21 is range -2 ** 20 .. 2 ** 20 - 1;
217    for Signed_21'Size use 21;
218
219    type Signed_22 is range -2 ** 21 .. 2 ** 21 - 1;
220    for Signed_22'Size use 22;
221
222    type Signed_23 is range -2 ** 22 .. 2 ** 22 - 1;
223    for Signed_23'Size use 23;
224
225    type Signed_24 is range -2 ** 23 .. 2 ** 23 - 1;
226    for Signed_24'Size use 24;
227
228    type Signed_25 is range -2 ** 24 .. 2 ** 24 - 1;
229    for Signed_25'Size use 25;
230
231    type Signed_26 is range -2 ** 25 .. 2 ** 25 - 1;
232    for Signed_26'Size use 26;
233
234    type Signed_27 is range -2 ** 26 .. 2 ** 26 - 1;
235    for Signed_27'Size use 27;
236
237    type Signed_28 is range -2 ** 27 .. 2 ** 27 - 1;
238    for Signed_28'Size use 28;
239
240    type Signed_29 is range -2 ** 28 .. 2 ** 28 - 1;
241    for Signed_29'Size use 29;
242
243    type Signed_30 is range -2 ** 29 .. 2 ** 29 - 1;
244    for Signed_30'Size use 30;
245
246    type Signed_31 is range -2 ** 30 .. 2 ** 30 - 1;
247    for Signed_31'Size use 31;
248
249    type Signed_32 is range -2 ** 31 .. 2 ** 31 - 1;
250    for Signed_32'Size use 32;
251
252
253 end Interfaces.C.Extensions;