]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Processors.xsl
Correct calculation of xHeapStructSize in heap_4 and heap_5.
[freertos] / FreeRTOS / Demo / MicroBlaze_Spartan-6_EthernetLite / PlatformStudioProject / __xps / .dswkshop / MdtTinySvgBLKD_Processors.xsl
1 <?xml version="1.0" standalone="no"?>
2
3 <xsl:stylesheet version="1.0"
4            xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
5        xmlns:exsl="http://exslt.org/common"
6        xmlns:dyn="http://exslt.org/dynamic"
7        xmlns:math="http://exslt.org/math"
8        xmlns:xlink="http://www.w3.org/1999/xlink"
9        extension-element-prefixes="math dyn exsl xlink">
10            
11 <!-- 
12 <xsl:output method="xml" 
13                         version="1.0" 
14                         encoding="UTF-8" 
15                         indent="yes"
16                 doctype-public="-//W3C//DTD SVG Tiny 1.1//EN"
17                     doctype-system="http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd"/>
18 -->     
19                         
20
21 <!-- ======================= DEF BLOCK =================================== -->
22 <xsl:template name="Define_AllStacks"> 
23         
24         <xsl:for-each select="$G_ROOT/EDKSYSTEM/BLKDIAGRAM/BCLANESPACES/BCLANESPACE[(@EAST &lt; $G_ROOT/EDKSYSTEM/BLKDIAGRAM/@STACK_HORIZ_WIDTH)]">
25                         
26                 <xsl:call-template name="Define_Stack">
27                         <xsl:with-param name="iStackIdx"  select="@EAST"/>
28                 </xsl:call-template>
29                 
30         </xsl:for-each> 
31 </xsl:template>
32         
33         
34 <xsl:template name="Define_Stack"> 
35         <xsl:param name="iStackIdx"  select="100"/>
36         
37         <!-- Define the stack's peripheral shapes-->    
38         <xsl:for-each select="$G_ROOT/EDKSYSTEM/BLKDIAGRAM/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iStackIdx) and not(@MODCLASS = 'MEMORY_UNIT'))]"> 
39                         
40                 <xsl:for-each select="MODULE">
41                         <xsl:variable name="modInst_" select="@INSTANCE"/>
42                         <xsl:variable name="modType_" select="$G_ROOT/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $modInst_)]/@MODTYPE"/>
43                         <xsl:call-template name="Define_Peripheral"> 
44                                 <xsl:with-param name="iModInst"    select="$modInst_"/>
45                                 <xsl:with-param name="iModType"    select="$modType_"/>
46                                 <xsl:with-param name="iShapeId"    select="../@SHAPE_ID"/>
47                                 <xsl:with-param name="iHorizIdx"   select="../@STACK_HORIZ_INDEX"/>
48                                 <xsl:with-param name="iVertiIdx"   select="../@SHAPE_VERTI_INDEX"/>
49                         </xsl:call-template>            
50                 </xsl:for-each> 
51                 
52         </xsl:for-each>
53         
54         <!-- Define the stack's memory shapes-->        
55         <xsl:for-each select="$G_ROOT/EDKSYSTEM/BLKDIAGRAM/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iStackIdx) and (@MODCLASS='MEMORY_UNIT'))]">
56                 <xsl:call-template name="Define_MemoryUnit"> 
57                         <xsl:with-param name="iShapeId"  select="@SHAPE_ID"/>
58                 </xsl:call-template>
59         </xsl:for-each>
60         
61         
62         <!-- Define the stack's processors-->   
63         <xsl:for-each select="$G_ROOT/EDKSYSTEM/BLKDIAGRAM/PROCSHAPES/MODULE[@INSTANCE and @BIFS_W and @BIFS_H and (@STACK_HORIZ_INDEX = $iStackIdx)]"> 
64                 <xsl:call-template name="Define_Processor"/>            
65         </xsl:for-each> 
66                 
67         <!-- Make an inventory of all the things in this processor's stack -->
68         <xsl:variable name="pstackW_">
69                 <xsl:call-template name="F_Calc_Stack_Width"> 
70                         <xsl:with-param name="iStackIdx"  select="$iStackIdx"/>
71                 </xsl:call-template>            
72         </xsl:variable>
73                 
74         <xsl:variable name="pstackH_">
75                 <xsl:call-template name="F_Calc_Stack_Height"> 
76                         <xsl:with-param name="iStackIdx"  select="$iStackIdx"/>
77                 </xsl:call-template>            
78         </xsl:variable>
79         
80 <!-- 
81         <xsl:message>Proc Stack Height <xsl:value-of select="$pstackH_"/></xsl:message>
82         <xsl:message>Proc Stack Height <xsl:value-of select="$pstackH_"/></xsl:message>
83 -->     
84
85         <xsl:variable name="procW_"    select="$BLKD_MOD_W"/>
86         <xsl:variable name="procX_"    select="(ceiling($pstackW_ div 2) - ceiling($procW_ div 2))"/>
87         
88         <xsl:variable name="sbsGap_"   select="($BLKD_PROC2SBS_GAP + $G_Total_SharedBus_H)"/>
89
90         <xsl:variable name="stack_name_">
91                 <xsl:call-template name="F_generate_Stack_Name"> 
92                         <xsl:with-param name="iHorizIdx" select="$iStackIdx"/>
93                 </xsl:call-template>            
94         </xsl:variable> 
95         
96 <!--    
97                 <xsl:message>Horiz index<xsl:value-of select="$stackIdx"/></xsl:message>
98                 <xsl:message>Drawing stack <xsl:value-of select="$stack_name_"/></xsl:message>
99 -->     
100                 
101                 <!-- Now use all this stuff to draw the stack-->        
102                 <g id="{$stack_name_}">
103                         <rect x="0"
104                                   y="0"
105                               rx="6" 
106                               ry="6" 
107                           width = "{$pstackW_}"
108                           height= "{$pstackH_}"
109                               style="fill:{$COL_BG}; stroke:none;"/>
110                         
111                 
112                         <!-- First draw the the processor's peripherals-->      
113                         <xsl:for-each select="$G_ROOT/EDKSYSTEM/BLKDIAGRAM/CMPLXSHAPES/CMPLXSHAPE[(@STACK_HORIZ_INDEX = $iStackIdx)]">
114                                 <xsl:sort select="@STACK_VERTI_INDEX" data-type="number"/>
115                                 
116                                 
117                                 <xsl:variable name="shapeW_"    select="(@MODS_W * $BLKD_MOD_W)"/>
118                                 <xsl:variable name="shapeX_"    select="(ceiling($pstackW_ div 2) - ceiling($shapeW_ div 2))"/>
119                                 
120                                 <xsl:variable name="stack_SymName_">
121                                         <xsl:call-template name="F_generate_Stack_SymbolName"> 
122                                                 <xsl:with-param name="iHorizIdx" select="@STACK_HORIZ_INDEX"/>
123                                                 <xsl:with-param name="iVertiIdx" select="@SHAPE_VERTI_INDEX"/>
124                                         </xsl:call-template>            
125                                 </xsl:variable>
126                                 
127 <!--                            
128                                 <xsl:message>Drawing stack peripheral <xsl:value-of select="$stack_SymName_"/></xsl:message>
129 -->                             
130                                 <xsl:variable name="shapeY_">
131                                         <xsl:call-template name="F_Calc_Stack_Shape_Y">
132                                                 <xsl:with-param name="iHorizIdx"  select="@STACK_HORIZ_INDEX"/>
133                                                 <xsl:with-param name="iVertiIdx"  select="@SHAPE_VERTI_INDEX"/>
134                                         </xsl:call-template>
135                                 </xsl:variable>  
136                                 
137                                 <use   x="{$shapeX_}"  y="{$shapeY_}"  xlink:href="#{$stack_SymName_}"/> 
138                         
139                         </xsl:for-each>
140                         
141                         
142                         <!-- Then draw the slave buckets for the shared busses that this processor is master to -->     
143                         <xsl:for-each select="$G_ROOT/EDKSYSTEM/BLKDIAGRAM/SBSBUCKETS/SBSBUCKET[(@STACK_HORIZ_INDEX = $iStackIdx)]">    
144                                 <xsl:sort select="@SHAPE_VERTI_INDEX" data-type="number"/>
145                         
146                                 <xsl:variable name="bucketW_"   select="(($BLKD_MOD_BKTLANE_W * 2) + (($BLKD_MOD_W * @MODS_W) + ($BLKD_MOD_BUCKET_G * (@MODS_W - 1))))"/>
147                                 <xsl:variable name="bucketX_"   select="(ceiling($pstackW_ div 2) - ceiling($bucketW_ div 2))"/>
148                                 
149                                 <xsl:variable name="bucketY_">
150                                         <xsl:call-template  name="F_Calc_Stack_Shape_Y">
151                                                 <xsl:with-param name="iHorizIdx"  select="@STACK_HORIZ_INDEX"/>
152                                                 <xsl:with-param name="iVertiIdx"  select="@SHAPE_VERTI_INDEX"/>
153                                         </xsl:call-template>
154                                 </xsl:variable>  
155                                 
156 <!--                            
157                                 <xsl:message>SBS Bucket Y <xsl:value-of select="$bucketY_"/></xsl:message>
158 -->                             
159                                 
160                                  <use  x="{$bucketX_}"  y="{$bucketY_}"  xlink:href="#sbsbucket_{@BUSNAME}"/> 
161                                  
162                                  <xsl:variable name="slavesOfTxt_">SLAVES OF <xsl:value-of select="@BUSNAME"/></xsl:variable>
163 <!-- 
164                                  <text class="bkt_label"
165                                            x="{$bucketX_}" 
166                                            y="{$bucketY_ - 4}"><xsl:value-of select="$slavesOfTxt_"/></text>    
167 -->                                        
168                                            
169                                 <xsl:call-template name="F_WriteText">
170                                         <xsl:with-param name="iX"               select="$bucketX_"/>
171                                         <xsl:with-param name="iY"               select="($bucketY_ - 4)"/>
172                                         <xsl:with-param name="iText"    select="$slavesOfTxt_"/>
173                                         <xsl:with-param name="iClass"   select="'bkt_label'"/>
174                                 </xsl:call-template>    
175                                 
176                                            
177                         </xsl:for-each>
178                         
179                         <!-- Then draw the the processor itself -->     
180                         <xsl:for-each select="$G_ROOT/EDKSYSTEM/BLKDIAGRAM/PROCSHAPES/MODULE[(@STACK_HORIZ_INDEX = $iStackIdx)]">
181                                 <xsl:sort select="@SHAPE_VERTI_INDEX" data-type="number"/>
182                                 
183                                 <xsl:variable name="procY_">
184                                         <xsl:call-template name="F_Calc_Stack_Shape_Y">
185                                                 <xsl:with-param name="iHorizIdx"  select="@STACK_HORIZ_INDEX"/>
186                                                 <xsl:with-param name="iVertiIdx"  select="@SHAPE_VERTI_INDEX"/>
187                                         </xsl:call-template>
188                                 </xsl:variable>  
189                                 
190                                 <xsl:variable name="stack_SymName_">
191                                         <xsl:call-template name="F_generate_Stack_SymbolName"> 
192                                                 <xsl:with-param name="iHorizIdx" select="@STACK_HORIZ_INDEX"/>
193                                                 <xsl:with-param name="iVertiIdx" select="@SHAPE_VERTI_INDEX"/>
194                                         </xsl:call-template>            
195                                 </xsl:variable>
196                                 
197                                 <use   x="{$procX_}"  y="{$procY_}"  xlink:href="#{$stack_SymName_}"/> 
198                 
199                         
200 <!-- 
201                                 <xsl:if test = "not(@IS_LIKEPROC)">
202                                         <text class="ipclass_label"
203                                                 x="{$procX_}" 
204                                                 y="{$procY_ - 4}">PROCESSOR</text>              
205                                 </xsl:if>                       
206                                   
207                                 <xsl:if test = "@IS_LIKEPROC = 'TRUE'">
208                                 
209                                         <text class="ipclass_label"
210                                                 x="{$procX_}" 
211                                                 y="{$procY_ - 4}">USER MODULE</text>            
212                                 </xsl:if>                       
213                                 
214 -->                             
215                         
216                                 <xsl:if test = "not(@IS_LIKEPROC)">
217                                         <xsl:call-template name="F_WriteText">
218                                                 <xsl:with-param name="iX"               select="$procX_"/>
219                                                 <xsl:with-param name="iY"               select="($procY_ - 4)"/>
220                                                 <xsl:with-param name="iText"    select="'PROCESSOR'"/>
221                                                 <xsl:with-param name="iClass"   select="'ipclass_label'"/>
222                                         </xsl:call-template>                    
223                                 </xsl:if>                       
224                                   
225                                 <xsl:if test = "@IS_LIKEPROC = 'TRUE'">
226                                         <xsl:call-template name="F_WriteText">
227                                                 <xsl:with-param name="iX"               select="$procX_"/>
228                                                 <xsl:with-param name="iY"               select="($procY_ - 4)"/>
229                                                 <xsl:with-param name="iText"    select="'USER MODULE'"/>
230                                                 <xsl:with-param name="iClass"   select="'ipclass_label'"/>
231                                         </xsl:call-template>                    
232                                 </xsl:if>
233                         
234                         </xsl:for-each>
235                 </g>
236                 
237 </xsl:template> 
238
239
240 <xsl:template name="Define_Processor">
241         <xsl:param name="iProcInst"  select="@INSTANCE"/>
242         <xsl:param name="iModType"   select="$G_ROOT/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $iProcInst)]/@MODTYPE"/>
243         
244         <xsl:variable name="label_y_">
245                 <xsl:value-of select="$BLKD_MOD_LANE_H"/>       
246         </xsl:variable>
247         
248 <!--    
249         <xsl:message>The proctype is <xsl:value-of select="$procType"/></xsl:message>   
250 -->
251         
252         <xsl:variable name="procH_" select="(($BLKD_MOD_LANE_H * 2) + (($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V) * @BIFS_H) + ($BLKD_MOD_LABEL_H + $BLKD_MOD_BIF_GAP_V))"/>   
253         <xsl:variable name="procW_" select="(($BLKD_MOD_LANE_W * 2) + (($BLKD_BIF_W                        * @BIFS_W) + $BLKD_MOD_BIF_GAP_H))"/>        
254         
255         <xsl:variable name="procColor_">
256                 <xsl:choose>
257                         <xsl:when test="contains($iModType,'microblaze')"><xsl:value-of select="$COL_PROC_BG_MB"/></xsl:when>
258                         <xsl:when test="contains($iModType,'ppc')"><xsl:value-of select="$COL_PROC_BG_PP"/></xsl:when>
259                         <xsl:otherwise>
260                                 <xsl:value-of select="$COL_PROC_BG_USR"/>       
261                         </xsl:otherwise>
262                 </xsl:choose>
263         </xsl:variable>
264         
265 <!--    
266         <xsl:message>The proc color is <xsl:value-of select="$procColor"/></xsl:message>        
267 -->     
268         
269         <xsl:variable name="procName_">
270                 <xsl:call-template name="F_generate_Stack_SymbolName"> 
271                         <xsl:with-param name="iHorizIdx" select="@STACK_HORIZ_INDEX"/>
272                         <xsl:with-param name="iVertiIdx" select="@SHAPE_VERTI_INDEX"/>
273                 </xsl:call-template>            
274         </xsl:variable> 
275         
276 <!--    
277         <xsl:message>The proc name is <xsl:value-of select="$procName_"/></xsl:message> 
278 -->     
279         
280     <g id="{$procName_}">
281
282                 <rect x="0"
283                       y="0"
284                           rx="6" 
285                           ry="6" 
286                       width = "{$procW_}"
287                       height= "{$procH_}"
288                           style="fill:{$procColor_}; stroke:{$COL_WHITE}; stroke-width:2"/>             
289                           
290                           
291                 <rect x="{ceiling($procW_ div 2) - ceiling($BLKD_MOD_LABEL_W div 2)}"
292                       y="{$BLKD_MOD_LANE_H}"
293                           rx="3" 
294                           ry="3" 
295                       width= "{$BLKD_MOD_LABEL_W}"
296                       height="{$BLKD_MOD_LABEL_H}"
297                           style="fill:{$COL_WHITE}; stroke:none;"/>             
298 <!-- 
299                 <text class="bciptype" 
300                           x="{ceiling($procW_ div 2)}"
301                           y="{$BLKD_MOD_LANE_H + 8}">
302                                 <xsl:value-of select="$iModType"/>
303                 </text>
304                                 
305                 <text class="bciplabel" 
306                           x="{ceiling($procW_ div 2)}"
307                           y="{$BLKD_MOD_LANE_H + 16}">
308                                 <xsl:value-of select="$iProcInst"/>
309            </text>
310 -->                       
311                           
312                         <xsl:call-template name="F_WriteText">
313                                 <xsl:with-param name="iX"               select="ceiling($procW_ div 2)"/>
314                                 <xsl:with-param name="iY"               select="($BLKD_MOD_LANE_H + 8)"/>
315                                 <xsl:with-param name="iText"    select="$iModType"/>
316                                 <xsl:with-param name="iClass"   select="'bc_iptype'"/>
317                         </xsl:call-template>                    
318                         
319                         <xsl:call-template name="F_WriteText">
320                                 <xsl:with-param name="iX"               select="ceiling($procW_ div 2)"/>
321                                 <xsl:with-param name="iY"               select="($BLKD_MOD_LANE_H + 16)"/>
322                                 <xsl:with-param name="iText"    select="$iProcInst"/>
323                                 <xsl:with-param name="iClass"   select="'bc_ipinst'"/>
324                         </xsl:call-template>                    
325                                         
326            
327            
328                 <xsl:if test="$G_ROOT/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $iProcInst)]/@GROUP">
329                 
330                         <rect x="{ceiling($BLKD_MOD_W div 2) - ceiling($BLKD_MOD_LABEL_W div 2)}"
331                               y="{$BLKD_MOD_LANE_H + $BIF_H  + ceiling($BLKD_BIF_H div 3) - 2}"
332                                   rx="3" 
333                                   ry="3" 
334                               width= "{$BLKD_MOD_LABEL_W}"
335                               height="{$BLKD_BIF_H}"
336                                   style="fill:{$COL_IORING_LT}; stroke:none;"/>         
337 <!-- 
338                            <text class="ioplblgrp"  
339                                           x="{ceiling($BLKD_MOD_W div 2)}" 
340                                           y="{$BLKD_MOD_LANE_H + $BIF_H + ceiling($BIF_H div 3) + 12}">
341                                    <xsl:value-of select="$G_ROOT/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $iProcInst)]/@GROUP"/>
342                                 </text>
343 -->             
344                         <xsl:call-template name="F_WriteText">
345                                 <xsl:with-param name="iX"               select="ceiling($BLKD_MOD_W div 2)"/>
346                                 <xsl:with-param name="iY"               select="($BLKD_MOD_LANE_H + $BIF_H + ceiling($BIF_H div 3) + 12)"/>
347                                 <xsl:with-param name="iText"    select="$G_ROOT/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $iProcInst)]/@GROUP"/>
348                                 <xsl:with-param name="iClass"   select="'iogrp_label'"/>
349                         </xsl:call-template>                    
350            
351                 </xsl:if> 
352            
353            
354                 <xsl:for-each select="$G_ROOT/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $iProcInst)]/BUSINTERFACE[(@BIF_X and @BIF_Y)]">
355                         
356                         <xsl:variable name="bifBusStd_">
357                                 <xsl:choose>
358                                         <xsl:when test="@BUSSTD">
359                                                 <xsl:value-of select="@BUSSTD"/>        
360                                         </xsl:when>
361                                         <xsl:otherwise>
362                                                 <xsl:value-of select="'TRS'"/>  
363                                         </xsl:otherwise>
364                                 </xsl:choose>
365                         </xsl:variable>
366                         
367                         <xsl:variable name="bifBusColor_">
368                                 <xsl:call-template name="F_BusStd2RGB">
369                                         <xsl:with-param name="iBusStd" select="$bifBusStd_"/>
370                                 </xsl:call-template>
371                         </xsl:variable>
372                 
373                         
374                         <xsl:variable name="bifName_">
375                                 <xsl:choose>
376                                         <xsl:when test="string-length(@NAME) &lt;= 5">
377                                                 <xsl:value-of select="@NAME"/>  
378                                         </xsl:when>
379                                         <xsl:otherwise>
380                                                 <xsl:value-of select="substring(@NAME,0,5)"/>   
381                                         </xsl:otherwise>
382                                 </xsl:choose>
383                         </xsl:variable>
384                         
385                         <xsl:variable name="bif_x_"  select="(( $BLKD_BIF_W * @BIF_X) + ($BLKD_MOD_BIF_GAP_H * @BIF_X) + ($BLKD_MOD_LANE_W * 1))"/>
386                         <xsl:variable name="bif_y_"  select="((($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V) * @BIF_Y) + ($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_MOD_BIF_GAP_V))"/>
387                         
388                         <xsl:variable name="horz_line_y_" select="($bif_y_ + ceiling($BLKD_BIFC_H div 2))"/>
389                         
390                         <xsl:variable name="horz_line_x1_">
391                                 <xsl:choose>
392                                         <xsl:when test="@BIF_X = '0'">0</xsl:when>
393                                         <xsl:otherwise><xsl:value-of select="($BLKD_MOD_W - $BLKD_MOD_LANE_W)"/></xsl:otherwise>
394                                 </xsl:choose>
395                         </xsl:variable>
396                         
397                         <xsl:variable name="horz_line_x2_">
398                                 <xsl:choose>
399                                         <xsl:when test="@BIF_X = '0'"><xsl:value-of select="$BLKD_MOD_LANE_W"/></xsl:when>
400                                         <xsl:otherwise><xsl:value-of select="$BLKD_MOD_W + 1"/></xsl:otherwise>
401                                 </xsl:choose>
402                         </xsl:variable>
403                         
404                         
405                         <line x1="{$horz_line_x1_}" 
406                                   y1="{$horz_line_y_ - 2}"
407                               x2="{$horz_line_x2_}" 
408                               y2="{$horz_line_y_ - 2}" 
409                               style="stroke:{$bifBusColor_};stroke-width:1"/>
410                           
411                         <use  x="{$bif_x_}"   y="{$bif_y_}"  xlink:href="#{$bifBusStd_}_BifLabel"/>
412                                 
413 <!-- 
414                         <text class="bif_label" 
415                                   x="{$bif_x_ + ceiling($BIF_W div 2)}"
416                                   y="{$bif_y_ + ceiling($BIF_H div 2) + 3}">
417                                         <xsl:value-of select="$bifName_"/>
418                         </text>
419 -->                             
420                         
421                         <xsl:call-template name="F_WriteText">
422                                 <xsl:with-param name="iX"               select="($bif_x_ + ceiling($BIF_W div 2))"/>
423                                 <xsl:with-param name="iY"               select="($bif_y_ + ceiling($BIF_H div 2) + 3)"/>
424                                 <xsl:with-param name="iText"    select="$bifName_"/>
425                                 <xsl:with-param name="iClass"   select="'bif_label'"/>
426                         </xsl:call-template>                    
427                         
428                 </xsl:for-each>
429                 
430                 <xsl:variable name="intcIdx_">
431                         <xsl:choose>
432                                 <xsl:when test="$G_ROOT/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $iProcInst)]/INTERRUPTINFO/@INTC_INDEX">
433                                         <xsl:value-of select="$G_ROOT/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $iProcInst)]/INTERRUPTINFO/@INTC_INDEX"/>
434                                 </xsl:when>
435                                 <xsl:otherwise>"_no_interrupt_cntlr_"</xsl:otherwise>
436                         </xsl:choose>
437                 </xsl:variable>
438                         
439 <!--            
440                 <xsl:message> The intc index should <xsl:value-of select="$interrupt_cntlr_"/></xsl:message>
441                 <xsl:message> The intc index is <xsl:value-of select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $interrupt_cntlr_)]/@INTC_INDEX"/></xsl:message>
442 -->             
443                 <xsl:if test="$G_ROOT/EDKSYSTEM/MODULES/MODULE[(INTERRUPTINFO[(@INTC_INDEX = $intcIdx_)])]">
444                         
445                         <xsl:variable name="intrColor_">
446                                 <xsl:call-template name="F_IntcIdx2RGB">
447                                         <xsl:with-param name="iIntcIdx" select="$intcIdx_"/>
448 <!-- 
449                                         <xsl:with-param name="iIntcIdx" select="$G_ROOT/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $interrupt_cntlr_)]/INTERRUPTINFO/@INTC_INDEX"/>
450  -->                            
451                                 </xsl:call-template>    
452                         </xsl:variable>
453                         
454                         <xsl:call-template name="F_draw_InterruptedProc">
455                                 <xsl:with-param name="iIntr_X"   select="($BLKD_MOD_W - ceiling($BLKD_INTR_W div 2))"/>
456                                 <xsl:with-param name="iIntr_Y"   select="3"/>
457                                 <xsl:with-param name="iIntr_COL" select="$intrColor_"/>
458                                 <xsl:with-param name="iIntr_IDX" select="$intcIdx_"/>
459                         </xsl:call-template>    
460                 </xsl:if>
461         </g>                      
462         
463 </xsl:template>
464
465 </xsl:stylesheet>