140 lines
4.7 KiB
Ada
140 lines
4.7 KiB
Ada
pragma Ada_95;
|
|
pragma Warnings (Off);
|
|
pragma Source_File_Name (ada_main, Spec_File_Name => "b~super_saw.ads");
|
|
pragma Source_File_Name (ada_main, Body_File_Name => "b~super_saw.adb");
|
|
pragma Suppress (Overflow_Check);
|
|
|
|
package body ada_main is
|
|
|
|
E11 : Short_Integer; pragma Import (Ada, E11, "system__soft_links_E");
|
|
E09 : Short_Integer; pragma Import (Ada, E09, "system__exception_table_E");
|
|
E06 : Short_Integer; pragma Import (Ada, E06, "ada__numerics_E");
|
|
E61 : Short_Integer; pragma Import (Ada, E61, "interfaces__c_E");
|
|
E23 : Short_Integer; pragma Import (Ada, E23, "system__exceptions_E");
|
|
E15 : Short_Integer; pragma Import (Ada, E15, "system__secondary_stack_E");
|
|
E02 : Short_Integer; pragma Import (Ada, E02, "super_saw_E");
|
|
|
|
Local_Priority_Specific_Dispatching : constant String := "";
|
|
Local_Interrupt_States : constant String := "";
|
|
|
|
Is_Elaborated : Boolean := False;
|
|
|
|
procedure adafinal is
|
|
|
|
procedure Runtime_Finalize;
|
|
pragma Import (C, Runtime_Finalize, "__gnat_runtime_finalize");
|
|
|
|
begin
|
|
if not Is_Elaborated then
|
|
return;
|
|
end if;
|
|
Is_Elaborated := False;
|
|
Runtime_Finalize;
|
|
null;
|
|
end adafinal;
|
|
|
|
type No_Param_Proc is access procedure;
|
|
|
|
procedure adainit is
|
|
Main_Priority : Integer;
|
|
pragma Import (C, Main_Priority, "__gl_main_priority");
|
|
Time_Slice_Value : Integer;
|
|
pragma Import (C, Time_Slice_Value, "__gl_time_slice_val");
|
|
WC_Encoding : Character;
|
|
pragma Import (C, WC_Encoding, "__gl_wc_encoding");
|
|
Locking_Policy : Character;
|
|
pragma Import (C, Locking_Policy, "__gl_locking_policy");
|
|
Queuing_Policy : Character;
|
|
pragma Import (C, Queuing_Policy, "__gl_queuing_policy");
|
|
Task_Dispatching_Policy : Character;
|
|
pragma Import (C, Task_Dispatching_Policy, "__gl_task_dispatching_policy");
|
|
Priority_Specific_Dispatching : System.Address;
|
|
pragma Import (C, Priority_Specific_Dispatching, "__gl_priority_specific_dispatching");
|
|
Num_Specific_Dispatching : Integer;
|
|
pragma Import (C, Num_Specific_Dispatching, "__gl_num_specific_dispatching");
|
|
Main_CPU : Integer;
|
|
pragma Import (C, Main_CPU, "__gl_main_cpu");
|
|
Interrupt_States : System.Address;
|
|
pragma Import (C, Interrupt_States, "__gl_interrupt_states");
|
|
Num_Interrupt_States : Integer;
|
|
pragma Import (C, Num_Interrupt_States, "__gl_num_interrupt_states");
|
|
Unreserve_All_Interrupts : Integer;
|
|
pragma Import (C, Unreserve_All_Interrupts, "__gl_unreserve_all_interrupts");
|
|
Detect_Blocking : Integer;
|
|
pragma Import (C, Detect_Blocking, "__gl_detect_blocking");
|
|
Default_Stack_Size : Integer;
|
|
pragma Import (C, Default_Stack_Size, "__gl_default_stack_size");
|
|
Leap_Seconds_Support : Integer;
|
|
pragma Import (C, Leap_Seconds_Support, "__gl_leap_seconds_support");
|
|
Bind_Env_Addr : System.Address;
|
|
pragma Import (C, Bind_Env_Addr, "__gl_bind_env_addr");
|
|
|
|
procedure Runtime_Initialize (Install_Handler : Integer);
|
|
pragma Import (C, Runtime_Initialize, "__gnat_runtime_initialize");
|
|
|
|
Finalize_Library_Objects : No_Param_Proc;
|
|
pragma Import (C, Finalize_Library_Objects, "__gnat_finalize_library_objects");
|
|
begin
|
|
if Is_Elaborated then
|
|
return;
|
|
end if;
|
|
Is_Elaborated := True;
|
|
Main_Priority := -1;
|
|
Time_Slice_Value := -1;
|
|
WC_Encoding := 'b';
|
|
Locking_Policy := ' ';
|
|
Queuing_Policy := ' ';
|
|
Task_Dispatching_Policy := ' ';
|
|
Priority_Specific_Dispatching :=
|
|
Local_Priority_Specific_Dispatching'Address;
|
|
Num_Specific_Dispatching := 0;
|
|
Main_CPU := -1;
|
|
Interrupt_States := Local_Interrupt_States'Address;
|
|
Num_Interrupt_States := 0;
|
|
Unreserve_All_Interrupts := 0;
|
|
Detect_Blocking := 0;
|
|
Default_Stack_Size := -1;
|
|
Leap_Seconds_Support := 0;
|
|
|
|
Runtime_Initialize (1);
|
|
|
|
if E11 = 0 then
|
|
System.Soft_Links'Elab_Spec;
|
|
end if;
|
|
if E09 = 0 then
|
|
System.Exception_Table'Elab_Body;
|
|
end if;
|
|
E09 := E09 + 1;
|
|
if E06 = 0 then
|
|
Ada.Numerics'Elab_Spec;
|
|
end if;
|
|
E06 := E06 + 1;
|
|
if E61 = 0 then
|
|
Interfaces.C'Elab_Spec;
|
|
end if;
|
|
if E23 = 0 then
|
|
System.Exceptions'Elab_Spec;
|
|
end if;
|
|
E23 := E23 + 1;
|
|
E61 := E61 + 1;
|
|
if E11 = 0 then
|
|
System.Soft_Links'Elab_Body;
|
|
end if;
|
|
E11 := E11 + 1;
|
|
if E15 = 0 then
|
|
System.Secondary_Stack'Elab_Body;
|
|
end if;
|
|
E15 := E15 + 1;
|
|
E02 := E02 + 1;
|
|
end adainit;
|
|
|
|
-- BEGIN Object file/option list
|
|
-- ./super_saw.o
|
|
-- -L./
|
|
-- -L/usr/lib/gcc/x86_64-redhat-linux/6.3.1/adalib/
|
|
-- -static
|
|
-- -lgnat
|
|
-- END Object file/option list
|
|
|
|
end ada_main;
|