Ignore:
Timestamp:
Jul 4, 2012, 2:51:18 PM (12 years ago)
Author:
alain
Message:

Introducing various modifications in kernel initialisation

File:
1 edited

Legend:

Unmodified
Added
Removed
  • soft/giet_vm/xml/xml_driver.c

    r160 r165  
    111111    fprintf( fpout, "              psegs     = \"%d\"\n", header->psegs);
    112112    fprintf( fpout, "              ttys      = \"%d\"\n", header->ttys);
     113    fprintf( fpout, "              fbs       = \"%d\"\n", header->fbs);
    113114    fprintf( fpout, "              vspaces   = \"%d\"\n", header->vspaces);
    114     fprintf( fpout, "              globals   = \"%d\" />\n\n", header->globals);
     115    fprintf( fpout, "              globals   = \"%d\" >\n\n", header->globals);
    115116
    116117    ///////////////////// clusters ///////////////////////////////////////////////
     
    119120    for ( cluster_id = 0 ; cluster_id < header->clusters ; cluster_id++ )
    120121    {
    121         fprintf( fpout, "        <cluster procs  = \"%d\"\n",      cluster[cluster_id].procs);
    122         fprintf( fpout, "                 timers = \"%d\"\n",      cluster[cluster_id].timers);
    123         fprintf( fpout, "                 dmas   = \"%d\" />\n\n", cluster[cluster_id].dmas);
     122        fprintf( fpout, "        <cluster index  = \"%d\"\n",      cluster_id);
     123        fprintf( fpout, "                 procs  = \"%d\" />\n\n", cluster[cluster_id].procs);
    124124    }
    125125    fprintf( fpout, "    </clusterset>\n" );
     
    148148        fprintf( fpout, "                 mode     = \"%s\"\n", mode_str[vseg[vseg_id].mode]);
    149149        fprintf( fpout, "                 psegname = \"%s\"\n",      pseg[pseg_id].name);
    150         fprintf( fpout, "                 ident    = \"%d\" >\n", vseg[vseg_id].ident);
    151             for ( vobj_id = vseg[vseg_id].vobj_offset ;
    152                   vobj_id < (vseg[vseg_id].vobj_offset + vseg[vseg_id].vobjs) ; vobj_id++ )
    153             {
    154                 fprintf( fpout, "                 <vobj name     = \"%s\"\n",     vobj[vobj_id].name);
    155                 fprintf( fpout, "                       type     = \"%s\" \n", vobj_type[vobj[vobj_id].type]);
    156                 if(vobj[vobj_id].length)
    157                     fprintf( fpout, "                       length   = \"0x%x\" \n",   vobj[vobj_id].length);
    158                 if(vobj[vobj_id].align)
    159                     fprintf( fpout, "                       align    = \"%d\" \n",   vobj[vobj_id].align);
    160                 if(vobj[vobj_id].binpath[0]!='\0')
    161                     fprintf( fpout, "                       binpath  = \"%s\" \n",   vobj[vobj_id].binpath);
    162                 fprintf( fpout, "                       />\n");
    163             }
    164             fprintf( fpout, "        </vseg>\n\n");
     150        fprintf( fpout, "                 ident    = \"%d\" >\n",    vseg[vseg_id].ident);
     151        for ( vobj_id = vseg[vseg_id].vobj_offset;
     152              vobj_id < (vseg[vseg_id].vobj_offset + vseg[vseg_id].vobjs);
     153              vobj_id++ )
     154        {
     155            fprintf( fpout, "                 <vobj name     = \"%s\"\n",    vobj[vobj_id].name);
     156            fprintf( fpout, "                       type     = \"%s\"\n",    vobj_type[vobj[vobj_id].type]);
     157            fprintf( fpout, "                       length   = \"0x%x\"\n",  vobj[vobj_id].length);
     158            fprintf( fpout, "                       align    = \"%d\"\n",    vobj[vobj_id].align);
     159            fprintf( fpout, "                       init     = \"%d\" \n",   vobj[vobj_id].init);
     160            fprintf( fpout, "                       binpath  = \"%s\" />\n", vobj[vobj_id].binpath);
     161        }
     162        fprintf( fpout, "        </vseg>\n\n");
    165163    }
    166164    fprintf( fpout, "    </globalset>\n" );
     
    171169    for ( vspace_id = 0 ; vspace_id < header->vspaces ; vspace_id++ )
    172170    {
    173         unsigned int func_id = vspace[vspace_id].vobj_offset + vspace[vspace_id].funcs_offset;
    174         fprintf( fpout, "        <vspace  name    = \"%s\"\n",     vspace[vspace_id].name);
    175         fprintf( fpout, "                 funcs   = \"%s\"\n",     vobj[func_id].name);
    176         fprintf( fpout, "                 ttys    = \"%d\" >\n\n", vspace[vspace_id].ttys);
     171        unsigned int func_id = vspace[vspace_id].vobj_offset + vspace[vspace_id].start_offset;
     172        fprintf( fpout, "        <vspace  name      = \"%s\"\n",     vspace[vspace_id].name);
     173        fprintf( fpout, "                 startname = \"%s\" >\n\n", vobj[func_id].name);
    177174
    178175        for ( vseg_id = vspace[vspace_id].vseg_offset ;
     
    185182            fprintf( fpout, "                       mode      = \"%s\"\n", mode_str[vseg[vseg_id].mode]);
    186183            fprintf( fpout, "                       psegname  = \"%s\"\n",      pseg[pseg_id].name);
    187             fprintf( fpout, "                       ident     = \"%d\" >\n", vseg[vseg_id].ident);
     184            fprintf( fpout, "                       ident     = \"%d\" >\n",    vseg[vseg_id].ident);
    188185
    189186            for ( vobj_id = vseg[vseg_id].vobj_offset ;
    190                   vobj_id < (vseg[vseg_id].vobj_offset + vseg[vseg_id].vobjs) ; vobj_id++ )
     187                  vobj_id < (vseg[vseg_id].vobj_offset + vseg[vseg_id].vobjs) ;
     188                  vobj_id++ )
    191189            {
    192                 fprintf( fpout, "\t                 <vobj name     = \"%s\"\n",     vobj[vobj_id].name);
    193                 fprintf( fpout, "\t                       type     = \"%s\" \n", vobj_type[vobj[vobj_id].type]);
    194                 if(vobj[vobj_id].length)
    195                     fprintf( fpout, "\t                       length   = \"0x%x\" \n",   vobj[vobj_id].length);
    196                 if(vobj[vobj_id].align)
    197                     fprintf( fpout, "\t                       align    = \"%d\" \n",   vobj[vobj_id].align);
    198                 if(vobj[vobj_id].binpath[0]!='\0')
    199                     fprintf( fpout, "\t                       binpath  = \"%s\" \n",   vobj[vobj_id].binpath);
    200                 fprintf( fpout, "\t                       />\n");
     190                fprintf( fpout, "                       <vobj name     = \"%s\"\n",    vobj[vobj_id].name);
     191                fprintf( fpout, "                             type     = \"%s\" \n",   vobj_type[vobj[vobj_id].type]);
     192                fprintf( fpout, "                             length   = \"0x%x\" \n", vobj[vobj_id].length);
     193                fprintf( fpout, "                             align    = \"%d\" \n",   vobj[vobj_id].align);
     194                fprintf( fpout, "                             init     = \"%d\" \n",   vobj[vobj_id].init);
     195                fprintf( fpout, "                             binpath  = \"%s\" />\n", vobj[vobj_id].binpath);
    201196            }
    202             fprintf( fpout, "\t\t        </vseg>\n\n");
     197            fprintf( fpout, "                 </vseg>\n\n");
    203198        }
    204199        for ( task_id = vspace[vspace_id].task_offset ;
    205               task_id < (vspace[vspace_id].task_offset + vspace[vspace_id].tasks) ; task_id++ )
     200              task_id < (vspace[vspace_id].task_offset + vspace[vspace_id].tasks) ;
     201              task_id++ )
    206202        {
    207203            unsigned int vobj_id = task[task_id].vobjlocid + vspace[vspace_id].vobj_offset;
     
    212208            fprintf( fpout, "                       stackname = \"%s\"\n",      vobj[vobj_id].name);
    213209            fprintf( fpout, "                       startid   = \"%d\"\n",      task[task_id].startid);
    214             fprintf( fpout, "                       ttylocid  = \"%d\" />\n\n", task[task_id].ttylocid);
     210            fprintf( fpout, "                       usetty    = \"%d\"\n",      task[task_id].use_tty);
     211            fprintf( fpout, "                       usefb     = \"%d\" />\n\n", task[task_id].use_fb);
    215212        }
    216         fprintf( fpout, "        </vspace>\n");
     213        fprintf( fpout, "        </vspace>\n\n");
    217214    }
    218215    fprintf( fpout, "    </vspaceset>\n" );
Note: See TracChangeset for help on using the changeset viewer.