Ignore:
Timestamp:
Feb 14, 2015, 5:17:00 PM (10 years ago)
Author:
alain
Message:

Remove the vobj object from the mapping_info,
and remove global segment seg_unckdata.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • soft/giet_vm/giet_kernel/sys_handler.c

    r505 r516  
    146146    &_sys_ukn,              /* 0x18 */   
    147147    &_context_switch,       /* 0x19 */
    148     &_sys_vobj_get_vbase,   /* 0x1A */
    149     &_sys_vobj_get_length,  /* 0x1B */
     148    &_sys_vseg_get_vbase,   /* 0x1A */
     149    &_sys_vseg_get_length,  /* 0x1B */
    150150    &_sys_xy_from_ptr,      /* 0x1C */
    151151    &_sys_ukn,              /* 0x1D */
     
    13541354
    13551355///////////////////////////////////////////////////////
    1356 int _sys_vobj_get_vbase( char*             vspace_name,
    1357                          char*             vobj_name,
     1356int _sys_vseg_get_vbase( char*             vspace_name,
     1357                         char*             vseg_name,
    13581358                         unsigned int*     vbase )
    13591359{
    13601360    mapping_header_t * header = (mapping_header_t *)SEG_BOOT_MAPPING_BASE;
    13611361    mapping_vspace_t * vspace = _get_vspace_base(header);
    1362     mapping_vobj_t * vobj     = _get_vobj_base(header);
     1362    mapping_vseg_t * vseg     = _get_vseg_base(header);
    13631363
    13641364    unsigned int vspace_id;
    1365     unsigned int vobj_id;
     1365    unsigned int vseg_id;
    13661366
    13671367    // scan vspaces
     
    13701370        if (_strncmp( vspace[vspace_id].name, vspace_name, 31) == 0)
    13711371        {
    1372             // scan vobjs
    1373             for (vobj_id = vspace[vspace_id].vobj_offset;
    1374                  vobj_id < (vspace[vspace_id].vobj_offset + vspace[vspace_id].vobjs);
    1375                  vobj_id++)
     1372            // scan vsegs
     1373            for (vseg_id = vspace[vspace_id].vseg_offset;
     1374                 vseg_id < (vspace[vspace_id].vseg_offset + vspace[vspace_id].vsegs);
     1375                 vseg_id++)
    13761376            {
    1377                 if (_strncmp(vobj[vobj_id].name, vobj_name, 31) == 0)
     1377                if (_strncmp(vseg[vseg_id].name, vseg_name, 31) == 0)
    13781378                {
    1379                     *vbase = vobj[vobj_id].vbase;
     1379                    *vbase = vseg[vseg_id].vbase;
    13801380                    return 0;
    13811381                }
     
    13871387
    13881388/////////////////////////////////////////////////////////
    1389 int _sys_vobj_get_length( char*         vspace_name,
    1390                           char*         vobj_name,
     1389int _sys_vseg_get_length( char*         vspace_name,
     1390                          char*         vseg_name,
    13911391                          unsigned int* length )
    13921392{
    13931393    mapping_header_t * header = (mapping_header_t *)SEG_BOOT_MAPPING_BASE;
    13941394    mapping_vspace_t * vspace = _get_vspace_base(header);
    1395     mapping_vobj_t * vobj     = _get_vobj_base(header);
     1395    mapping_vseg_t * vseg     = _get_vseg_base(header);
    13961396
    13971397    unsigned int vspace_id;
    1398     unsigned int vobj_id;
     1398    unsigned int vseg_id;
    13991399
    14001400    // scan vspaces
     
    14031403        if (_strncmp( vspace[vspace_id].name, vspace_name, 31) == 0)
    14041404        {
    1405             // scan vobjs
    1406             for (vobj_id = vspace[vspace_id].vobj_offset;
    1407                  vobj_id < (vspace[vspace_id].vobj_offset + vspace[vspace_id].vobjs);
    1408                  vobj_id++)
     1405            // scan vsegs
     1406            for (vseg_id = vspace[vspace_id].vseg_offset;
     1407                 vseg_id < (vspace[vspace_id].vseg_offset + vspace[vspace_id].vsegs);
     1408                 vseg_id++)
    14091409            {
    1410                 if (_strncmp(vobj[vobj_id].name, vobj_name, 31) == 0)
     1410                if (_strncmp(vseg[vseg_id].name, vseg_name, 31) == 0)
    14111411                {
    1412                     *length = vobj[vobj_id].length;
     1412                    *length = vseg[vseg_id].length;
    14131413                    return 0;
    14141414                }
     
    14461446{
    14471447    mapping_header_t * header  = (mapping_header_t *)SEG_BOOT_MAPPING_BASE;
    1448     mapping_task_t *   tasks   = _get_task_base(header);
    1449     mapping_vobj_t *   vobjs   = _get_vobj_base(header);
    1450     mapping_vspace_t * vspaces = _get_vspace_base(header);
     1448    mapping_task_t *   task    = _get_task_base(header);
     1449    mapping_vseg_t *   vseg    = _get_vseg_base(header);
     1450    mapping_vspace_t * vspace  = _get_vspace_base(header);
    14511451
    14521452    unsigned int task_id;
    14531453    unsigned int vspace_id;
    1454     unsigned int vobj_id = 0xFFFFFFFF;
    1455 
    1456     // searching the heap vobj_id
     1454    unsigned int vseg_id = 0xFFFFFFFF;
     1455
     1456    // searching the heap vseg
    14571457    if ( (x < X_SIZE) && (y < Y_SIZE) )  // searching a task in cluster(x,y)
    14581458    {
     
    14611461
    14621462        // scan all tasks in vspace
    1463         unsigned int min = vspaces[vspace_id].task_offset ;
    1464         unsigned int max = min + vspaces[vspace_id].tasks ;
     1463        unsigned int min = vspace[vspace_id].task_offset ;
     1464        unsigned int max = min + vspace[vspace_id].tasks ;
    14651465        for ( task_id = min ; task_id < max ; task_id++ )
    14661466        {
    1467             if ( tasks[task_id].clusterid == (x * Y_SIZE + y) )
     1467            if ( task[task_id].clusterid == (x * Y_SIZE + y) )
    14681468            {
    1469                 vobj_id = tasks[task_id].heap_vobj_id;
    1470                 if ( vobj_id != 0xFFFFFFFF ) break;
     1469                vseg_id = task[task_id].heap_vseg_id;
     1470                if ( vseg_id != 0xFFFFFFFF ) break;
    14711471            }
    14721472        }
     
    14751475    {
    14761476        task_id = _get_context_slot(CTX_GTID_ID);
    1477         vobj_id = tasks[task_id].heap_vobj_id;
    1478     }
    1479 
    1480     // analysing the vobj_id
    1481     if ( vobj_id != 0xFFFFFFFF )
    1482     {
    1483         *vaddr  = vobjs[vobj_id].vbase;
    1484         *length = vobjs[vobj_id].length;
     1477        vseg_id = task[task_id].heap_vseg_id;
     1478    }
     1479
     1480    // analysing the vseg_id
     1481    if ( vseg_id != 0xFFFFFFFF )
     1482    {
     1483        *vaddr  = vseg[vseg_id].vbase;
     1484        *length = vseg[vseg_id].length;
    14851485        return 0;
    14861486    }
Note: See TracChangeset for help on using the changeset viewer.