diff --git a/resources/AADLv2/components/devices.aadl b/resources/AADLv2/components/devices.aadl index 453f855974661c0124f2917badfa27ad8a06eb60..35e68da8feb4a2946d0174183991f5a5ffabef97 100644 --- a/resources/AADLv2/components/devices.aadl +++ b/resources/AADLv2/components/devices.aadl @@ -49,6 +49,14 @@ public Source_Text => ("OCARINA_INCLUDE_PATH/ocarina/runtime/polyorb-hi-c/src/drivers/configuration/serial.asn", "drivers/configuration/serial.h"); end configuration_type_serial; + data configuration_type_spacewire + properties + Type_Source_Name => "Spacewire-Conf-T"; + Deployment::ASN1_Module_Name => "POHICDRIVER-SPACEWIRE"; + Source_Language => ASN1; + Source_Text => ("OCARINA_INCLUDE_PATH/ocarina/runtime/polyorb-hi-c/src/drivers/configuration/spacewire.asn", "drivers/configuration/spacewire.h"); + end configuration_type_spacewire; + -------------- -- Keyboard -- -------------- diff --git a/resources/AADLv2/components/devices/rasta-spacewire.aadl b/resources/AADLv2/components/devices/rasta-spacewire.aadl index e892ed4f29243b09dfd79316d6f3e10e49ff3f45..d2a4e2041a99fde427576a8ec09cde9ab459c4bb 100644 --- a/resources/AADLv2/components/devices/rasta-spacewire.aadl +++ b/resources/AADLv2/components/devices/rasta-spacewire.aadl @@ -42,6 +42,7 @@ abstract spacewire_driver properties Deployment::Version => "0.1beta"; Deployment::Help => "Write your ASN.1 configuration here"; + Deployment::Configuration_Type => classifier (ocarina_drivers::configuration_type_spacewire); end spacewire_driver; abstract implementation spacewire_driver.rasta diff --git a/src/backends/ocarina-backends-po_hi_c-main.adb b/src/backends/ocarina-backends-po_hi_c-main.adb index 4e51a3c23d5d60debdc5f962baf78b1c5aedf394..1e03e9643051a9ac700b11c6ecf94dd013af4e3c 100644 --- a/src/backends/ocarina-backends-po_hi_c-main.adb +++ b/src/backends/ocarina-backends-po_hi_c-main.adb @@ -305,6 +305,16 @@ package body Ocarina.Backends.PO_HI_C.Main is Get_Thread_Initialize_Entrypoint (Corresponding_Instance (C)) /= No_Node then + Append_Node_To_List + (Make_Extern_Entity_Declaration + (Make_Function_Specification + (Map_C_Subprogram_Identifier + (Get_Thread_Initialize_Entrypoint + (Corresponding_Instance (C))), + Parameters => No_List, + Return_Type => New_Node (CTN.K_Void))), + CTN.Declarations (Current_File)); + Append_Node_To_List (Make_Call_Profile (Map_C_Subprogram_Identifier