|
| 1 | +pragma Warnings (Off); |
| 2 | +pragma Ada_95; |
| 3 | +pragma Source_File_Name (ada_main, Spec_File_Name => "b__read.ads"); |
| 4 | +pragma Source_File_Name (ada_main, Body_File_Name => "b__read.adb"); |
| 5 | +pragma Suppress (Overflow_Check); |
| 6 | +with Ada.Exceptions; |
| 7 | + |
| 8 | +package body ada_main is |
| 9 | + |
| 10 | + E013 : Short_Integer; pragma Import (Ada, E013, "system__soft_links_E"); |
| 11 | + E025 : Short_Integer; pragma Import (Ada, E025, "system__exception_table_E"); |
| 12 | + E027 : Short_Integer; pragma Import (Ada, E027, "system__exceptions_E"); |
| 13 | + E021 : Short_Integer; pragma Import (Ada, E021, "system__soft_links__initialize_E"); |
| 14 | + E057 : Short_Integer; pragma Import (Ada, E057, "ada__io_exceptions_E"); |
| 15 | + E114 : Short_Integer; pragma Import (Ada, E114, "ada__strings_E"); |
| 16 | + E111 : Short_Integer; pragma Import (Ada, E111, "interfaces__c_E"); |
| 17 | + E080 : Short_Integer; pragma Import (Ada, E080, "system__os_lib_E"); |
| 18 | + E059 : Short_Integer; pragma Import (Ada, E059, "ada__tags_E"); |
| 19 | + E056 : Short_Integer; pragma Import (Ada, E056, "ada__streams_E"); |
| 20 | + E083 : Short_Integer; pragma Import (Ada, E083, "system__file_control_block_E"); |
| 21 | + E078 : Short_Integer; pragma Import (Ada, E078, "system__finalization_root_E"); |
| 22 | + E076 : Short_Integer; pragma Import (Ada, E076, "ada__finalization_E"); |
| 23 | + E075 : Short_Integer; pragma Import (Ada, E075, "system__file_io_E"); |
| 24 | + E140 : Short_Integer; pragma Import (Ada, E140, "system__storage_pools_E"); |
| 25 | + E134 : Short_Integer; pragma Import (Ada, E134, "system__finalization_masters_E"); |
| 26 | + E132 : Short_Integer; pragma Import (Ada, E132, "system__storage_pools__subpools_E"); |
| 27 | + E109 : Short_Integer; pragma Import (Ada, E109, "ada__calendar_E"); |
| 28 | + E107 : Short_Integer; pragma Import (Ada, E107, "ada__calendar__delays_E"); |
| 29 | + E054 : Short_Integer; pragma Import (Ada, E054, "ada__text_io_E"); |
| 30 | + E118 : Short_Integer; pragma Import (Ada, E118, "ada__strings__maps_E"); |
| 31 | + E161 : Short_Integer; pragma Import (Ada, E161, "ada__strings__maps__constants_E"); |
| 32 | + E126 : Short_Integer; pragma Import (Ada, E126, "ada__strings__unbounded_E"); |
| 33 | + E158 : Short_Integer; pragma Import (Ada, E158, "system__regpat_E"); |
| 34 | + E166 : Short_Integer; pragma Import (Ada, E166, "system__pool_global_E"); |
| 35 | + E152 : Short_Integer; pragma Import (Ada, E152, "gnat__expect_E"); |
| 36 | + E105 : Short_Integer; pragma Import (Ada, E105, "i2c_E"); |
| 37 | + |
| 38 | + Sec_Default_Sized_Stacks : array (1 .. 1) of aliased System.Secondary_Stack.SS_Stack (System.Parameters.Runtime_Default_Sec_Stack_Size); |
| 39 | + |
| 40 | + Local_Priority_Specific_Dispatching : constant String := ""; |
| 41 | + Local_Interrupt_States : constant String := ""; |
| 42 | + |
| 43 | + Is_Elaborated : Boolean := False; |
| 44 | + |
| 45 | + procedure finalize_library is |
| 46 | + begin |
| 47 | + E152 := E152 - 1; |
| 48 | + declare |
| 49 | + procedure F1; |
| 50 | + pragma Import (Ada, F1, "gnat__expect__finalize_spec"); |
| 51 | + begin |
| 52 | + F1; |
| 53 | + end; |
| 54 | + E166 := E166 - 1; |
| 55 | + declare |
| 56 | + procedure F2; |
| 57 | + pragma Import (Ada, F2, "system__pool_global__finalize_spec"); |
| 58 | + begin |
| 59 | + F2; |
| 60 | + end; |
| 61 | + E126 := E126 - 1; |
| 62 | + declare |
| 63 | + procedure F3; |
| 64 | + pragma Import (Ada, F3, "ada__strings__unbounded__finalize_spec"); |
| 65 | + begin |
| 66 | + F3; |
| 67 | + end; |
| 68 | + E054 := E054 - 1; |
| 69 | + declare |
| 70 | + procedure F4; |
| 71 | + pragma Import (Ada, F4, "ada__text_io__finalize_spec"); |
| 72 | + begin |
| 73 | + F4; |
| 74 | + end; |
| 75 | + E132 := E132 - 1; |
| 76 | + declare |
| 77 | + procedure F5; |
| 78 | + pragma Import (Ada, F5, "system__storage_pools__subpools__finalize_spec"); |
| 79 | + begin |
| 80 | + F5; |
| 81 | + end; |
| 82 | + E134 := E134 - 1; |
| 83 | + declare |
| 84 | + procedure F6; |
| 85 | + pragma Import (Ada, F6, "system__finalization_masters__finalize_spec"); |
| 86 | + begin |
| 87 | + F6; |
| 88 | + end; |
| 89 | + declare |
| 90 | + procedure F7; |
| 91 | + pragma Import (Ada, F7, "system__file_io__finalize_body"); |
| 92 | + begin |
| 93 | + E075 := E075 - 1; |
| 94 | + F7; |
| 95 | + end; |
| 96 | + declare |
| 97 | + procedure Reraise_Library_Exception_If_Any; |
| 98 | + pragma Import (Ada, Reraise_Library_Exception_If_Any, "__gnat_reraise_library_exception_if_any"); |
| 99 | + begin |
| 100 | + Reraise_Library_Exception_If_Any; |
| 101 | + end; |
| 102 | + end finalize_library; |
| 103 | + |
| 104 | + procedure adafinal is |
| 105 | + procedure s_stalib_adafinal; |
| 106 | + pragma Import (C, s_stalib_adafinal, "system__standard_library__adafinal"); |
| 107 | + |
| 108 | + procedure Runtime_Finalize; |
| 109 | + pragma Import (C, Runtime_Finalize, "__gnat_runtime_finalize"); |
| 110 | + |
| 111 | + begin |
| 112 | + if not Is_Elaborated then |
| 113 | + return; |
| 114 | + end if; |
| 115 | + Is_Elaborated := False; |
| 116 | + Runtime_Finalize; |
| 117 | + s_stalib_adafinal; |
| 118 | + end adafinal; |
| 119 | + |
| 120 | + type No_Param_Proc is access procedure; |
| 121 | + |
| 122 | + procedure adainit is |
| 123 | + Main_Priority : Integer; |
| 124 | + pragma Import (C, Main_Priority, "__gl_main_priority"); |
| 125 | + Time_Slice_Value : Integer; |
| 126 | + pragma Import (C, Time_Slice_Value, "__gl_time_slice_val"); |
| 127 | + WC_Encoding : Character; |
| 128 | + pragma Import (C, WC_Encoding, "__gl_wc_encoding"); |
| 129 | + Locking_Policy : Character; |
| 130 | + pragma Import (C, Locking_Policy, "__gl_locking_policy"); |
| 131 | + Queuing_Policy : Character; |
| 132 | + pragma Import (C, Queuing_Policy, "__gl_queuing_policy"); |
| 133 | + Task_Dispatching_Policy : Character; |
| 134 | + pragma Import (C, Task_Dispatching_Policy, "__gl_task_dispatching_policy"); |
| 135 | + Priority_Specific_Dispatching : System.Address; |
| 136 | + pragma Import (C, Priority_Specific_Dispatching, "__gl_priority_specific_dispatching"); |
| 137 | + Num_Specific_Dispatching : Integer; |
| 138 | + pragma Import (C, Num_Specific_Dispatching, "__gl_num_specific_dispatching"); |
| 139 | + Main_CPU : Integer; |
| 140 | + pragma Import (C, Main_CPU, "__gl_main_cpu"); |
| 141 | + Interrupt_States : System.Address; |
| 142 | + pragma Import (C, Interrupt_States, "__gl_interrupt_states"); |
| 143 | + Num_Interrupt_States : Integer; |
| 144 | + pragma Import (C, Num_Interrupt_States, "__gl_num_interrupt_states"); |
| 145 | + Unreserve_All_Interrupts : Integer; |
| 146 | + pragma Import (C, Unreserve_All_Interrupts, "__gl_unreserve_all_interrupts"); |
| 147 | + Exception_Tracebacks : Integer; |
| 148 | + pragma Import (C, Exception_Tracebacks, "__gl_exception_tracebacks"); |
| 149 | + Detect_Blocking : Integer; |
| 150 | + pragma Import (C, Detect_Blocking, "__gl_detect_blocking"); |
| 151 | + Default_Stack_Size : Integer; |
| 152 | + pragma Import (C, Default_Stack_Size, "__gl_default_stack_size"); |
| 153 | + Default_Secondary_Stack_Size : System.Parameters.Size_Type; |
| 154 | + pragma Import (C, Default_Secondary_Stack_Size, "__gnat_default_ss_size"); |
| 155 | + Leap_Seconds_Support : Integer; |
| 156 | + pragma Import (C, Leap_Seconds_Support, "__gl_leap_seconds_support"); |
| 157 | + Bind_Env_Addr : System.Address; |
| 158 | + pragma Import (C, Bind_Env_Addr, "__gl_bind_env_addr"); |
| 159 | + |
| 160 | + procedure Runtime_Initialize (Install_Handler : Integer); |
| 161 | + pragma Import (C, Runtime_Initialize, "__gnat_runtime_initialize"); |
| 162 | + |
| 163 | + Finalize_Library_Objects : No_Param_Proc; |
| 164 | + pragma Import (C, Finalize_Library_Objects, "__gnat_finalize_library_objects"); |
| 165 | + Binder_Sec_Stacks_Count : Natural; |
| 166 | + pragma Import (Ada, Binder_Sec_Stacks_Count, "__gnat_binder_ss_count"); |
| 167 | + Default_Sized_SS_Pool : System.Address; |
| 168 | + pragma Import (Ada, Default_Sized_SS_Pool, "__gnat_default_ss_pool"); |
| 169 | + |
| 170 | + begin |
| 171 | + if Is_Elaborated then |
| 172 | + return; |
| 173 | + end if; |
| 174 | + Is_Elaborated := True; |
| 175 | + Main_Priority := -1; |
| 176 | + Time_Slice_Value := -1; |
| 177 | + WC_Encoding := 'b'; |
| 178 | + Locking_Policy := ' '; |
| 179 | + Queuing_Policy := ' '; |
| 180 | + Task_Dispatching_Policy := ' '; |
| 181 | + Priority_Specific_Dispatching := |
| 182 | + Local_Priority_Specific_Dispatching'Address; |
| 183 | + Num_Specific_Dispatching := 0; |
| 184 | + Main_CPU := -1; |
| 185 | + Interrupt_States := Local_Interrupt_States'Address; |
| 186 | + Num_Interrupt_States := 0; |
| 187 | + Unreserve_All_Interrupts := 0; |
| 188 | + Exception_Tracebacks := 1; |
| 189 | + Detect_Blocking := 0; |
| 190 | + Default_Stack_Size := -1; |
| 191 | + Leap_Seconds_Support := 0; |
| 192 | + |
| 193 | + ada_main'Elab_Body; |
| 194 | + Default_Secondary_Stack_Size := System.Parameters.Runtime_Default_Sec_Stack_Size; |
| 195 | + Binder_Sec_Stacks_Count := 1; |
| 196 | + Default_Sized_SS_Pool := Sec_Default_Sized_Stacks'Address; |
| 197 | + |
| 198 | + Runtime_Initialize (1); |
| 199 | + |
| 200 | + Finalize_Library_Objects := finalize_library'access; |
| 201 | + |
| 202 | + System.Soft_Links'Elab_Spec; |
| 203 | + System.Exception_Table'Elab_Body; |
| 204 | + E025 := E025 + 1; |
| 205 | + System.Exceptions'Elab_Spec; |
| 206 | + E027 := E027 + 1; |
| 207 | + System.Soft_Links.Initialize'Elab_Body; |
| 208 | + E021 := E021 + 1; |
| 209 | + E013 := E013 + 1; |
| 210 | + Ada.Io_Exceptions'Elab_Spec; |
| 211 | + E057 := E057 + 1; |
| 212 | + Ada.Strings'Elab_Spec; |
| 213 | + E114 := E114 + 1; |
| 214 | + Interfaces.C'Elab_Spec; |
| 215 | + E111 := E111 + 1; |
| 216 | + System.Os_Lib'Elab_Body; |
| 217 | + E080 := E080 + 1; |
| 218 | + Ada.Tags'Elab_Spec; |
| 219 | + Ada.Tags'Elab_Body; |
| 220 | + E059 := E059 + 1; |
| 221 | + Ada.Streams'Elab_Spec; |
| 222 | + E056 := E056 + 1; |
| 223 | + System.File_Control_Block'Elab_Spec; |
| 224 | + E083 := E083 + 1; |
| 225 | + System.Finalization_Root'Elab_Spec; |
| 226 | + E078 := E078 + 1; |
| 227 | + Ada.Finalization'Elab_Spec; |
| 228 | + E076 := E076 + 1; |
| 229 | + System.File_Io'Elab_Body; |
| 230 | + E075 := E075 + 1; |
| 231 | + System.Storage_Pools'Elab_Spec; |
| 232 | + E140 := E140 + 1; |
| 233 | + System.Finalization_Masters'Elab_Spec; |
| 234 | + System.Finalization_Masters'Elab_Body; |
| 235 | + E134 := E134 + 1; |
| 236 | + System.Storage_Pools.Subpools'Elab_Spec; |
| 237 | + E132 := E132 + 1; |
| 238 | + Ada.Calendar'Elab_Spec; |
| 239 | + Ada.Calendar'Elab_Body; |
| 240 | + E109 := E109 + 1; |
| 241 | + Ada.Calendar.Delays'Elab_Body; |
| 242 | + E107 := E107 + 1; |
| 243 | + Ada.Text_Io'Elab_Spec; |
| 244 | + Ada.Text_Io'Elab_Body; |
| 245 | + E054 := E054 + 1; |
| 246 | + Ada.Strings.Maps'Elab_Spec; |
| 247 | + E118 := E118 + 1; |
| 248 | + Ada.Strings.Maps.Constants'Elab_Spec; |
| 249 | + E161 := E161 + 1; |
| 250 | + Ada.Strings.Unbounded'Elab_Spec; |
| 251 | + E126 := E126 + 1; |
| 252 | + System.Regpat'Elab_Spec; |
| 253 | + E158 := E158 + 1; |
| 254 | + System.Pool_Global'Elab_Spec; |
| 255 | + E166 := E166 + 1; |
| 256 | + Gnat.Expect'Elab_Spec; |
| 257 | + E152 := E152 + 1; |
| 258 | + E105 := E105 + 1; |
| 259 | + end adainit; |
| 260 | + |
| 261 | + procedure Ada_Main_Program; |
| 262 | + pragma Import (Ada, Ada_Main_Program, "_ada_read"); |
| 263 | + |
| 264 | + function main |
| 265 | + (argc : Integer; |
| 266 | + argv : System.Address; |
| 267 | + envp : System.Address) |
| 268 | + return Integer |
| 269 | + is |
| 270 | + procedure Initialize (Addr : System.Address); |
| 271 | + pragma Import (C, Initialize, "__gnat_initialize"); |
| 272 | + |
| 273 | + procedure Finalize; |
| 274 | + pragma Import (C, Finalize, "__gnat_finalize"); |
| 275 | + SEH : aliased array (1 .. 2) of Integer; |
| 276 | + |
| 277 | + Ensure_Reference : aliased System.Address := Ada_Main_Program_Name'Address; |
| 278 | + pragma Volatile (Ensure_Reference); |
| 279 | + |
| 280 | + begin |
| 281 | + gnat_argc := argc; |
| 282 | + gnat_argv := argv; |
| 283 | + gnat_envp := envp; |
| 284 | + |
| 285 | + Initialize (SEH'Address); |
| 286 | + adainit; |
| 287 | + Ada_Main_Program; |
| 288 | + adafinal; |
| 289 | + Finalize; |
| 290 | + return (gnat_exit_status); |
| 291 | + end; |
| 292 | + |
| 293 | +-- BEGIN Object file/option list |
| 294 | + -- /home/pi/test/obj/i2c.o |
| 295 | + -- /home/pi/test/obj/read.o |
| 296 | + -- -L/home/pi/test/obj/ |
| 297 | + -- -L/home/pi/test/obj/ |
| 298 | + -- -L/usr/lib/gcc/arm-linux-gnueabihf/8/adalib/ |
| 299 | + -- -shared |
| 300 | + -- -lgnat-8 |
| 301 | +-- END Object file/option list |
| 302 | + |
| 303 | +end ada_main; |
0 commit comments