/[eiffelstudio]/FreeELKS/trunk/library/kernel/platform.e
ViewVC logotype

Diff of /FreeELKS/trunk/library/kernel/platform.e

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 91463 by manus_eiffel, Thu Oct 28 22:23:37 2004 UTC revision 91464 by ericb, Sat Feb 18 15:02:35 2006 UTC
# Line 1  Line 1 
1  indexing  indexing
2          description: "Platform-dependent properties."          description: "Platform-dependent properties."
3          library: "Free implementation of ELKS library"          library: "Free implementation of ELKS library"
4          copyright: "Copyright (c) 1986-2004, Eiffel Software and others"          copyright: "Copyright (c) 1986-2006, Eiffel Software and others"
5          license: "Eiffel Forum License v2 (see forum.txt)"          license: "Eiffel Forum License v2 (see forum.txt)"
6          date: "$Date$"          date: "$Date$"
7          revision: "$Revision$"          revision: "$Revision$"
# Line 10  class PLATFORM Line 10  class PLATFORM
10    
11  feature -- Platform  feature -- Platform
12    
13          is_dotnet: BOOLEAN is False          is_dotnet: BOOLEAN is
14                          -- Are we targetting .NET?                          -- Are we targetting .NET?
15                                            external
16                            "built_in"
17                    end
18    
19          is_windows: BOOLEAN is          is_windows: BOOLEAN is
20                          -- Are we running on Windows platform?                          -- Are we running on Windows platform?
21                  external                  external
22                          "C macro use %"eif_eiffel.h%""                          "built_in"
                 alias  
                         "EIF_IS_WINDOWS"  
23                  end                  end
24    
25          is_unix: BOOLEAN is          is_unix: BOOLEAN is
26                          -- Are we running on a Unix like platform?                          -- Are we running on a Unix like platform?
27                  once                  external
28                          Result := not (is_vms or is_windows)                          "built_in"
29                  end                  end
30    
31          is_vms: BOOLEAN is          is_vms: BOOLEAN is
32                          -- Are we running on VMS?                          -- Are we running on VMS?
33                  external                  external
34                          "C macro use %"eif_eiffel.h%""                          "built_in"
35                  alias                  end
36                          "EIF_IS_VMS"  
37            is_little_endian: BOOLEAN is
38                            -- Is current platform a little endian one?
39                    local
40                            l_pointer: MANAGED_POINTER
41                            l_int16: INTEGER_16
42                    once
43                            l_int16 := 1
44                            create l_pointer.make (2)
45                            l_pointer.put_integer_16 (l_int16, 0)
46                            Result := l_pointer.read_integer_16_le (0) = l_int16
47                  end                  end
48    
49  feature -- Access bytes size  feature -- Access bytes size
50    
51          Boolean_bytes: INTEGER is          boolean_bytes: INTEGER is
52                          -- Number of bytes in a value of type `BOOLEAN'                          -- Number of bytes in a value of type `BOOLEAN'
53                  external                  external
54                          "C macro use %"eif_misc.h%""                          "built_in"
                 alias  
                         "sizeof(EIF_BOOLEAN)"  
55                  end                  end
56    
57          Character_bytes: INTEGER is          character_bytes: INTEGER is
58                          -- Number of bytes in a value of type `CHARACTER'                          -- Number of bytes in a value of type `CHARACTER'
59                  external                  external
60                          "C macro use %"eif_misc.h%""                          "built_in"
                 alias  
                         "sizeof(EIF_CHARACTER)"  
61                  end                  end
62    
63          Wide_character_bytes: INTEGER is          wide_character_bytes: INTEGER is 4
64                          -- Number of bytes in a value of type `WIDE_CHARACTER'                          -- Number of bytes in a value of type `WIDE_CHARACTER'
                 external  
                         "C macro use %"eif_misc.h%""  
                 alias  
                         "sizeof(EIF_WIDE_CHAR)"  
                 end  
65    
66          Integer_8_bytes: INTEGER is          natural_8_bytes: INTEGER is 1
67                          -- Number of bytes in a value of type `INTEGER_8'                          -- Number of bytes in a value of type `INTEGER_8'
                 external  
                         "C macro use %"eif_misc.h%""  
                 alias  
                         "sizeof(EIF_INTEGER_8)"  
                 end  
68    
69          Integer_16_bytes: INTEGER is          natural_16_bytes: INTEGER is 2
70                          -- Number of bytes in a value of type `INTEGER_16'                          -- Number of bytes in a value of type `INTEGER_16'
                 external  
                         "C macro use %"eif_misc.h%""  
                 alias  
                         "sizeof(EIF_INTEGER_16)"  
                 end  
71    
72          Integer_32_bytes, Integer_bytes: INTEGER is          natural_32_bytes: INTEGER is 4
73                          -- Number of bytes in a value of type `INTEGER'                          -- Number of bytes in a value of type `INTEGER'
                 external  
                         "C macro use %"eif_misc.h%""  
                 alias  
                         "sizeof(EIF_INTEGER)"  
                 end  
74    
75          Integer_64_bytes: INTEGER is          natural_64_bytes: INTEGER is 8
76                          -- Number of bytes in a value of type `INTEGER_64'                          -- Number of bytes in a value of type `INTEGER_64'
77    
78            integer_bytes: INTEGER is
79                            -- Number of bytes in a value of type `INTEGER'
80                  external                  external
81                          "C macro use %"eif_misc.h%""                          "built_in"
                 alias  
                         "sizeof(EIF_INTEGER_64)"  
82                  end                  end
83    
84          Real_bytes: INTEGER is          integer_8_bytes: INTEGER is 1
85                            -- Number of bytes in a value of type `INTEGER_8'
86    
87            integer_16_bytes: INTEGER is 2
88                            -- Number of bytes in a value of type `INTEGER_16'
89    
90            integer_32_bytes: INTEGER is 4
91                            -- Number of bytes in a value of type `INTEGER_32'
92    
93            integer_64_bytes: INTEGER is 8
94                            -- Number of bytes in a value of type `INTEGER_64'
95    
96            real_bytes: INTEGER is
97                          -- Number of bytes in a value of type `REAL'                          -- Number of bytes in a value of type `REAL'
98                  external                  external
99                          "C macro use %"eif_misc.h%""                          "built_in"
                 alias  
                         "sizeof(EIF_REAL)"  
100                  end                  end
101    
102          Double_bytes: INTEGER is          real_32_bytes: INTEGER is 4
103                          -- Number of bytes in a value of type `DOUBLE'                          -- Number of bytes in a value of type `REAL_32'
104                  external  
105                          "C macro use %"eif_misc.h%""          real_64_bytes, double_bytes: INTEGER is 8
106                  alias                          -- Number of bytes in a value of type `REAL_64'
                         "sizeof(EIF_DOUBLE)"  
                 end  
107    
108          Pointer_bytes: INTEGER is          pointer_bytes: INTEGER is
109                          -- Number of bytes in a value of type `POINTER'                          -- Number of bytes in a value of type `POINTER'
110                  external                  external
111                          "C macro use %"eif_misc.h%""                          "built_in"
                 alias  
                         "sizeof(EIF_POINTER)"  
112                  end                  end
113    
114  feature -- Access bits size  feature -- Access bits size
115    
116          Boolean_bits: INTEGER is          boolean_bits: INTEGER is
117                          -- Number of bits in a value of type `BOOLEAN'                          -- Number of bits in a value of type `BOOLEAN'
118                  external                  once
119                          "C macro use %"eif_misc.h%""                          Result := boolean_bytes * 8
                 alias  
                         "esbool_size"  
120                  end                  end
121    
122          Character_bits: INTEGER is          character_bits: INTEGER is
123                          -- Number of bits in a value of type `CHARACTER'                          -- Number of bits in a value of type `CHARACTER'
124                  external                  once
125                          "C macro use %"eif_misc.h%""                          Result := character_bytes * 8
                 alias  
                         "eschar_size"  
126                  end                  end
127    
128          Integer_8_bits: INTEGER is          natural_8_bits: INTEGER is 8
129                  external                          -- Number of bits in a value of type `NATURAL_8'
                         "C macro use %"eif_misc.h%""  
                 alias  
                         "esint8_size"  
                 end  
130    
131          Integer_16_bits: INTEGER is          natural_16_bits: INTEGER is 16
132                  external                          -- Number of bits in a value of type `NATURAL_16'
                         "C macro use %"eif_misc.h%""  
                 alias  
                         "esint16_size"  
                 end  
133    
134          Integer_32_bits, Integer_bits: INTEGER is          natural_32_bits: INTEGER is 32
135                            -- Number of bits in a value of type `NATURAL_32'
136    
137            natural_64_bits: INTEGER is 64
138                            -- Number of bits in a value of type `NATURAL_64'
139    
140            integer_bits: INTEGER is
141                          -- Number of bits in a value of type `INTEGER'                          -- Number of bits in a value of type `INTEGER'
142                  external                  once
143                          "C macro use %"eif_misc.h%""                          Result := integer_bytes * 8
                 alias  
                         "esint_size"  
144                  end                  end
145    
146          Integer_64_bits: INTEGER is          integer_8_bits: INTEGER is 8
147                  external                          -- Number of bits in a value of type `INTEGER_8'
148                          "C macro use %"eif_misc.h%""  
149                  alias          integer_16_bits: INTEGER is 16
150                          "esint64_size"                          -- Number of bits in a value of type `INTEGER_16'
                 end  
151    
152          Real_bits: INTEGER is          integer_32_bits: INTEGER is 32
153                            -- Number of bits in a value of type `INTEGER_32'
154    
155            integer_64_bits: INTEGER is 64
156                            -- Number of bits in a value of type `INTEGER_64'
157    
158            real_bits: INTEGER is
159                          -- Number of bits in a value of type `REAL'                          -- Number of bits in a value of type `REAL'
160                  external                  once
161                          "C macro use %"eif_misc.h%""                          Result := real_bytes * 8
                 alias  
                         "esreal_size"  
162                  end                  end
163    
164          Double_bits: INTEGER is          real_32_bits: INTEGER is 32
165                          -- Number of bits in a value of type `DOUBLE'                          -- Number of bits in a value of type `REAL_32'
                 external  
                         "C macro use %"eif_misc.h%""  
                 alias  
                         "esdouble_size"  
                 end  
166    
167          Pointer_bits: INTEGER is          real_64_bits, double_bits: INTEGER is 64
168                            -- Number of bits in a value of type `REAL_64'
169    
170            pointer_bits: INTEGER is
171                          -- Number of bits in a value of type `POINTER'                          -- Number of bits in a value of type `POINTER'
172                  external                  once
173                          "C macro use %"eif_misc.h%""                          Result := pointer_bytes * 8
                 alias  
                         "esptr_size"  
174                  end                  end
175    
176  feature -- Access min max values  feature -- Access min max values
177    
178          Maximum_character_code: INTEGER is          maximum_character_code: INTEGER is
179                          -- Largest supported code for CHARACTER values                          -- Largest supported code for CHARACTER values
180                  do                  do
181                          Result := feature {CHARACTER}.Max_value                          Result := {CHARACTER}.max_value
182                  ensure                  ensure
183                          meaningful: Result >= 127                          meaningful: Result >= 127
184                  end                  end
185    
186          Maximum_integer: INTEGER is          maximum_integer: INTEGER is
187                          -- Largest supported value of type INTEGER.                          -- Largest supported value of type INTEGER.
188                  do                  do
189                          Result := feature {INTEGER}.Max_value                          Result := {INTEGER}.max_value
190                  ensure                  ensure
191                          meaningful: Result >= 0                          meaningful: Result >= 0
192                  end                  end
193    
194          Minimum_character_code: INTEGER is          minimum_character_code: INTEGER is
195                          -- Smallest supported code for CHARACTER values                          -- Smallest supported code for CHARACTER values
196                  do                  do
197                          Result := feature {CHARACTER}.Min_value                          Result := {CHARACTER}.min_value
198                  ensure                  ensure
199                          meaningful: Result <= 0                          meaningful: Result <= 0
200                  end                  end
201    
202          Minimum_integer: INTEGER is          minimum_integer: INTEGER is
203                          -- Smallest supported value of type INTEGER                          -- Smallest supported value of type INTEGER
204                  do                  do
205                          Result := feature {INTEGER}.Min_value                          Result := {INTEGER}.min_value
206                  ensure                  ensure
207                          meaningful: Result <= 0                          meaningful: Result <= 0
208                  end                  end

Legend:
Removed from v.91463  
changed lines
  Added in v.91464

  ViewVC Help
Powered by ViewVC 1.1.23