SCHEMA ARINC_653_Basic_Types; (*"DecOrHexValueType" pattern value="[+-]{0,1}[0-9]+|[+-]{0,1}0x[0-9a-fA-F]+" *) TYPE DecOrHexValueType = STRING; END_TYPE; (*"IdentifierValueType" Restricts indentifiers to hex or decimal numbers *) TYPE IdentifierValueType = DecOrHexValueType; END_TYPE; (*"NameType" A 1..30 character string *) TYPE NameType = STRING ( 30 ); END_TYPE; END_SCHEMA; SCHEMA ARINC_653_Module; USE FROM ARINC_653_Basic_Types; USE FROM ARINC_653_Partition; (*"ARINC_653_Module" Schema for configuring an ARINC 653 instance *) ENTITY ARINC_653_Module; (*"ARINC_653_Module.System_HM_Table" The table that maps the system state and error IDs to an error level. *) System_HM_Table : System_HM_TableType; (*"ARINC_653_Module.Module_HM_Table" The actions to take when a module level error occurs. *) Module_HM_Table : Module_HM_Type; (*"ARINC_653_Module.Partition" The application space and its ports. Where the Applications resides. Uses ARINC 653 API *) XXX Partition : LIST OF PartitionType; (*"ARINC_653_Module.Partition_Memory" Partition memory requirements. *) Partition_Memory : LIST OF Partition_Memory_Element; (*"ARINC_653_Module.Module_Schedule" The scheduling requirements for the module *) XXX Module_Schedule : Module_Schedule_Type; (*"ARINC_653_Module.Partition_HM_Table"The actions to take when a partition level error occurs. *) Partition_HM_Table : LIST OF Partition_HM_Type; (*"ARINC_653_Module.Connection_Table" A table of channels and their port mappings *) Connection_Table : LIST OF Channel; (*"ARINC_653_Module.ModExt" Implementer specific extensions *) ModExt : LIST OF ModExt_Type; ModuleName : OPTIONAL NameType; ModuleVersion : OPTIONAL NameType; ModuleId : OPTIONAL IdentifierValueType; END_ENTITY; (*"Module_HM_Type" System state and error codes are mapped to actions taken at the module level. *) ENTITY Module_HM_Type; System_State_Entry : LIST OF System_State_Entry_Type; Mod_HM_Ext : LIST OF Mod_HM_Ext_Type; ModuleCallback : OPTIONAL NameType; END_ENTITY; (*"System_HM_TableType" The system states and error codes are mapped to the Module, Partition or Process level. *) ENTITY System_HM_TableType; System_State_Entry : LIST OF System_State_Entry_Type; SysHM_Ext : LIST OF SysHM_Ext_Type; END_ENTITY; (*"ModuleActionType" The actions to take when module level errors occur. *) TYPE ModuleActionType = ENUMERATION OF ( IGNORE, SHUTDOWN, RESET ); END_TYPE; (*"Module_Schedule_Type" The scheduling requirements for the module *) ENTITY Module_Schedule_Type; (*"Module_Schedule_Type.Partition_Schedule" The scheduling requirements for partitions within the module. *) XXX Partition_Schedule : LIST OF Partition_Schedule_Element; Partition_Sched_Ext : LIST OF Partition_Sched_Ext_Type; XXX MajorFrameSeconds : REAL; END_ENTITY; ENTITY Partition_Schedule_Element; (*"Partition_Schedule_Element.Window_Schedule" The allocation of the partition to partition windows within a major frame. *) XXX Window_Schedule : LIST OF Window_Schedule_Element; Window_Sched_Ext : LIST OF Window_Sched_Ext_Type; XXX PartitionIdentifier : IdentifierValueType; PartitionName : OPTIONAL NameType; (* Period of the partition, pi *) XXX PeriodSeconds : REAL; (* Kind of capacity of the parition, teta *) XXX PeriodDurationSeconds : REAL; END_ENTITY; ENTITY Window_Schedule_Element; WindowIdentifier : DecOrHexValueType; (* The offset of the window *) XXX WindowStartSeconds : REAL; XXX WindowDurationSeconds : REAL; (*"Window_Schedule_Element.PartitionPeriodStart" default="false" *) (* Is this windows the first windows of the partition *) XXX PartitionPeriodStart : BOOLEAN; END_ENTITY; (*"Channel" Globally identifies a channel connected to a module. *) ENTITY Channel; (*"Channel.Source" The source port for the channel. *) Source : PortMappingType; (*"Channel.Destination" The destination ports for the channel. *) Destination : LIST OF PortMappingType; ChannelIdentifier : IdentifierValueType; ChannelName : OPTIONAL NameType; END_ENTITY; (*"Window_Sched_Ext_Type" Implementer unique extension root. Subtypes can be defined specifically by implementers *) ENTITY Window_Sched_Ext_Type ABSTRACT SUPERTYPE; END_ENTITY; (*"Partition_Sched_Ext_Type" Implementer unique extension root. Subtypes can be defined specifically by implementers *) ENTITY Partition_Sched_Ext_Type ABSTRACT SUPERTYPE; END_ENTITY; (*"ModExt_Type" Provider Unique for Module level attributes. Implementer unique extension root. Subtypes can be defined specifically by implementers *) ENTITY ModExt_Type ABSTRACT SUPERTYPE; END_ENTITY; (*"Mod_HM_Ext_Type" Provider UNIQUE FOR Mod_HM level attributes.Implementer UNIQUE extension root.Subtypes can be defined specifically BY implementer *) ENTITY Mod_HM_Ext_Type ABSTRACT SUPERTYPE; END_ENTITY; (*"SysHM_Ext_Type" Provider UNIQUE FOR Sys_HM level attributes.Implementer UNIQUE extension root.Subtypes can be defined specifically BY implementer *) ENTITY SysHM_Ext_Type ABSTRACT SUPERTYPE; END_ENTITY; END_SCHEMA; SCHEMA ARINC_653_Partition; USE FROM ARINC_653_Basic_Types; (*"PartitionType" The system and application partition type definition. *) ENTITY PartitionType; (*"PartitionType.Sampling_Port" The sampling ports for this partition. *) Sampling_Port : LIST OF SamplingPortType; (*"PartitionType.Queuing_Port" The queuing ports for this partition. *) Queuing_Port : LIST OF QueuingPortType; (*"PartitionType.Process" Optional process attributes for this partition. *) Process : LIST OF ProcessType; (*"PartitionType.PartitionExt" Specific Partition extensions. *) PartitionExt : LIST OF PartitionExt_Type; PartitionIdentifier : IdentifierValueType; PartitionName : OPTIONAL NameType; (*"PartitionType.Criticality" default = "LEVEL_A" *) Criticality : CriticalityType; (*"PartitionType.SystemPartition" default = "False" *) SystemPartition : BOOLEAN; EntryPoint : NameType; END_ENTITY; (*"PartitionExt_Type" Provider UNIQUE FOR Partition level attributes.Implementer UNIQUE extension root.Subtypes can be defined specifically BY implementer *) ENTITY PartitionExt_Type ABSTRACT SUPERTYPE; END_ENTITY; TYPE CriticalityType = ENUMERATION OF ( LEVEL_A, LEVEL_B, LEVEL_C, LEVEL_D, LEVEL_E ); END_TYPE; (*"ErrorCodeType" The predefined ARINC 653 process errors. *) TYPE ErrorCodeType = ENUMERATION OF ( DEADLINE_MISSED, APPLICATION_ERROR, NUMERIC_ERROR, ILLEGAL_REQUEST, STACK_OVERFLOW, MEMORY_VIOLATION, HARDWARE_FAULT, POWER_FAILURE ); END_TYPE; (*"PartitionActionType" The actions to take when partition level errors occur. *) TYPE PartitionActionType = ENUMERATION OF ( IGNORE, IDLE, WARM_START, COLD_START ); END_TYPE; (*"Pseudo_Partition" A partition that is external to the module *) ENTITY Pseudo_Partition; Name : OPTIONAL NameType; PhysicalAddress : OPTIONAL DecOrHexValueType; Procedure_ : OPTIONAL NameType; END_ENTITY; (*"Standard_Partition" A partition within the module. *) ENTITY Standard_Partition; PartitionIdentifier : IdentifierValueType; PartitionName : OPTIONAL NameType; PortName : NameType; PhysicalAddress : OPTIONAL DecOrHexValueType; END_ENTITY; (*"Partition_HM_Type" Error codes are mapped to actions taken at the partition level. *) ENTITY Partition_HM_Type; (*"System_State_Entry" The state of the system when the error occurred. *) System_State_Entry : LIST OF System_State_Entry_Type; Part_HM_Ext : LIST OF Part_HM_Ext_Type; PartitionIdentifier : IdentifierValueType; PartitionName : OPTIONAL NameType; PartitionCallback : OPTIONAL NameType; END_ENTITY; (*"Part_HM_Ext_Type" Provider UNIQUE FOR Partition_HM level attributes.Implementer UNIQUE extension root.Subtypes can be defined specifically BY implementer *) ENTITY Part_HM_Ext_Type ABSTRACT SUPERTYPE; END_ENTITY; (*"ErrorLevelType" MODULE, PARTITION, or PROCESS level error. *) TYPE ErrorLevelType = ENUMERATION OF ( MODULE, PARTITION, PROCESS ); END_TYPE; ENTITY Partition_Memory_Element; Memory_Requirements : Memory_Requirements; Memory_Ext : LIST OF Memory_Ext_Type; PartitionIdentifier : IdentifierValueType; PartitionName : OPTIONAL NameType; END_ENTITY; (*"Memory_Requirements" A single partition can have multiple mapping requirements. Defines memory bounds of the partition, with appropriate code/data segregation. *) ENTITY Memory_Requirements; RegionName : OPTIONAL NameType; Type_ : STRING; SizeBytes : DecOrHexValueType; PhysicalAddress : OPTIONAL DecOrHexValueType; Access : STRING; END_ENTITY; (*"Memory_Ext_Type" Implementer unique extension root. Subtypes can be defined specifically by implementers *) ENTITY Memory_Ext_Type ABSTRACT SUPERTYPE; END_ENTITY; TYPE DirectionType = ENUMERATION OF ( SOURCE, DESTINATION ); END_TYPE; TYPE PortMappingType_Choice = SELECT ( Pseudo_Partition, Standard_Partition ); END_TYPE; (*"PortMappingType" The port communication mapping. *) ENTITY PortMappingType; choice : PortMappingType_Choice; PortMap_Ext : LIST OF PortMap_Ext_Type; END_ENTITY; (*"PortMap_Ext_Type" Provider UNIQUE FOR PortMap level attributes.Implementer UNIQUE extension root.Subtypes can be defined specifically BY implementer *) ENTITY PortMap_Ext_Type ABSTRACT SUPERTYPE; END_ENTITY; (*"PortType" The base port attributes of both sampling and queuing ports *) ENTITY PortType; PortExt : LIST OF PortExt_Type; Name : NameType; MaxMessageSize : DecOrHexValueType; Direction : DirectionType; END_ENTITY; (*"PortExt_Type" Provider Unique for PortType level attributes. Implementer unique extension root. Subtypes can be defined specifically by implementers *) ENTITY PortExt_Type ABSTRACT SUPERTYPE; END_ENTITY; (*"SamplingPortType" The configurable attributes of the sampling port. *) ENTITY SamplingPortType SUBTYPE OF ( PortType ); RefreshRateSeconds : REAL; END_ENTITY; (*"QueuingPortType" The configurable attributes of the queuing port. *) ENTITY QueuingPortType SUBTYPE OF ( PortType ); MaxNbMessages : INTEGER; END_ENTITY; ENTITY ProcessType; ProcExt : LIST OF ProcExt_Type; Name : OPTIONAL NameType; StackSize : OPTIONAL DecOrHexValueType; END_ENTITY; ENTITY System_State_Entry_Type; Error_ID_Action : LIST OF Error_ID_Type; SystemState : IdentifierValueType; Description : OPTIONAL NameType; END_ENTITY; ENTITY Error_ID_Type; ErrorIdentifier : IdentifierValueType; Description : OPTIONAL NameType; END_ENTITY; (*"Error_ID_Action_Type" The error code and the action to taken *) ENTITY Error_ID_Action_Type SUBTYPE OF ( Error_ID_Type ); Action : PartitionActionType; END_ENTITY; (*"Error_ID_Level_Type" The mapping of error IDs to the module, partition or process level. *) ENTITY Error_ID_Level_Type SUBTYPE OF ( Error_ID_Type ); ErrorLevel : ErrorLevelType; ErrorCode : OPTIONAL ErrorCodeType; END_ENTITY; (*"ProcExt_Type" Provider Unique for ProcType level attributes. Implementer unique extension root. Subtypes can be defined specifically by implementers *) ENTITY ProcExt_Type ABSTRACT SUPERTYPE; END_ENTITY; END_SCHEMA;