<?xml version="1.0" standalone="yes"?>  
<?xml-stylesheet type="text/xsl" href="cheddar_project.xsl"?>
<!DOCTYPE cheddar [  
<!ELEMENT name (#PCDATA) > 
<!ELEMENT scheduler (#PCDATA) > 
<!ELEMENT parameter (#PCDATA) > 
<!ELEMENT context_switch_overhead (#PCDATA) > 
<!ELEMENT network_link (#PCDATA) > 
<!ELEMENT offset (#PCDATA) > 
<!ELEMENT period (#PCDATA) > 
<!ELEMENT capacity (#PCDATA) > 
<!ELEMENT deadline (#PCDATA) > 
<!ELEMENT context_switch_overhead (#PCDATA) > 
<!ELEMENT start_time (#PCDATA) > 
<!ELEMENT blocking_time (#PCDATA) > 
<!ELEMENT policy (#PCDATA) > 
<!ELEMENT priority (#PCDATA) > 
<!ELEMENT criticality (#PCDATA) > 
<!ELEMENT cpu_name (#PCDATA) > 
<!ELEMENT address_space_name (#PCDATA) > 
<!ELEMENT jitter (#PCDATA) > 
<!ELEMENT seed (#PCDATA) > 
<!ELEMENT predictable_seed (#PCDATA) > 
<!ELEMENT activation_rule (#PCDATA) > 
<!ELEMENT state (#PCDATA) > 
<!ELEMENT protocol (#PCDATA) > 
<!ELEMENT size (#PCDATA) > 
<!ELEMENT qs (#PCDATA) > 
<!ELEMENT time (#PCDATA) > 
<!ELEMENT buffer_user (#PCDATA) >  
<!ELEMENT resource_user (#PCDATA) >  
<!ELEMENT event_analyzer (#PCDATA) >  
<!ELEMENT type (#PCDATA) >  
<!ELEMENT text_memory_size (#PCDATA) >  
<!ELEMENT heap_memory_size (#PCDATA) >  
<!ELEMENT stack_memory_size (#PCDATA) >  
<!ELEMENT data_memory_size (#PCDATA) >  
<!ELEMENT cheddar (processors, (address_spaces)?, (tasks)?, ((event_analyzers)?|(networks)?|(buffers)?|(resources)?|(messages)?),(dependencies)?  )  >   
<!ELEMENT processors (processor)+ >  
<!ELEMENT processor (name|scheduler|network_link) >  
<!ELEMENT address_spaces (address_space)+ >  
<!ELEMENT address_space (name|text_memory_size|data_memory_size|stack_memory_size|heap_memory_size|(scheduler)?) >  
<!ELEMENT networks (network)+ >  
<!ELEMENT network (name|type) >  
<!ELEMENT tasks (task)+>  
<!ELEMENT task (name|cpu_name|address_space_name|capacity|start_time|(context_switch_overhead)?|(stack_memory_size)?|(text_memory_size)?|(period)?|(deadline)?|(parameters)?|(offsets)?|(jitter)?|(policy)?|(criticality)?|(priority)?|(predictable_seed)?|(blocking_time)?|(seed)?
|(activation_rule)?) >  
<!ELEMENT offsets (offset)+ >  
<!ELEMENT parameters (parameter)+ >  
<!ELEMENT messages (message)+ >  
<!ELEMENT message (name|size|(period)?|(deadline)?|(jitter)?) >  
<!ELEMENT buffers (buffer)+ >  
<!ELEMENT buffer (cpu_name|address_space_name|qs|name|size|(buffer_used_by)?) >  
<!ELEMENT buffer_used_by (buffer_user)+ >  
<!ELEMENT resources (resource)+ >  
<!ELEMENT resource (cpu_name|address_space_name|name|protocol|(state)?|(resource_used_by)?) >  
<!ELEMENT resource_used_by (resource_user)+ >  
<!ELEMENT dependencies (dependency)+ >  
<!ELEMENT event_analyzers (event_analyzer)+ >  
<!ELEMENT dependency (#PCDATA)  >  
<!ATTLIST scheduler 
        quantum CDATA  "0"  
        is_preemptive CDATA  "PREEMPTIVE"  
        automaton_name CDATA  ""  
        parametric_file_name CDATA "" >  
<!ATTLIST event_analyzer  
        parametric_file_name CDATA "" >  
<!ATTLIST task  
        task_type CDATA  "APERIODIC_TYPE"  
        x CDATA "0"  
        y CDATA "0" > 
<!ATTLIST buffer  
        x CDATA "0" 
        y CDATA "0" > 
<!ATTLIST message  
        x CDATA "0" 
        y CDATA "0" > 
<!ATTLIST buffer_user 
        buffer_role CDATA  "producer" >  
<!ATTLIST dependency 
        from_type CDATA "task" 
        to_type CDATA "task" > 
<!ATTLIST parameter 
        parameter_type CDATA  "integer" >  
] >  



<cheddar>
<processors>
	<processor>
		<name>hpf0</name>
		<scheduler> RATE_MONOTONIC_PROTOCOL </scheduler>
		<network_link> No_Network </network_link>
	</processor>
</processors>
<address_spaces>
	<address_space>
		<name>ea_hpf0</name>
		<cpu_name>hpf0</cpu_name>
		<text_memory_size> 0</text_memory_size>
		<stack_memory_size> 0</stack_memory_size>
		<data_memory_size> 0</data_memory_size>
		<heap_memory_size> 0</heap_memory_size>
		<scheduler> RATE_MONOTONIC_PROTOCOL </scheduler>
	</address_space>
</address_spaces>

<tasks>
	<task task_type="PERIODIC_TYPE" >
		<cpu_name>hpf0</cpu_name>
		<address_space_name>ea_hpf0</address_space_name>
		<name>T1</name>
		<capacity> 12</capacity>
		<start_time> 0</start_time>
		<policy>SCHED_FIFO</policy>
		<deadline> 30</deadline>
		<criticality> 0</criticality>
		<context_switch_overhead> 0</context_switch_overhead>
		<blocking_time> 0</blocking_time>
		<priority> 1</priority>
		<text_memory_size> 0</text_memory_size>
		<stack_memory_size> 0</stack_memory_size>
		<period> 30</period>
		<jitter> 0</jitter>
	</task>
	<task task_type="PERIODIC_TYPE" >
		<cpu_name>hpf0</cpu_name>
		<address_space_name>ea_hpf0</address_space_name>
		<name>T2</name>
		<capacity> 2</capacity>
		<start_time> 0</start_time>
		<policy>SCHED_FIFO</policy>
		<deadline> 5</deadline>
		<criticality> 0</criticality>
		<context_switch_overhead> 0</context_switch_overhead>
		<blocking_time> 0</blocking_time>
		<priority> 1</priority>
		<text_memory_size> 0</text_memory_size>
		<stack_memory_size> 0</stack_memory_size>
		<period> 5</period>
		<jitter> 0</jitter>
	</task>
	<task task_type="PERIODIC_TYPE" >
		<cpu_name>hpf0</cpu_name>
		<address_space_name>ea_hpf0</address_space_name>
		<name>T3</name>
		<capacity> 2</capacity>
		<start_time> 0</start_time>
		<policy>SCHED_FIFO</policy>
		<deadline> 10</deadline>
		<criticality> 0</criticality>
		<context_switch_overhead> 0</context_switch_overhead>
		<blocking_time> 0</blocking_time>
		<priority> 1</priority>
		<text_memory_size> 0</text_memory_size>
		<stack_memory_size> 0</stack_memory_size>
		<period> 10</period>
		<jitter> 0</jitter>
	</task>
</tasks>
</cheddar>




