Ignore:
Timestamp:
Jun 12, 2012, 4:21:27 PM (12 years ago)
Author:
karaoui
Message:

giet-vm new version

File:
1 edited

Legend:

Unmodified
Added
Removed
  • soft/giet_vm/xml/mapping_info.h

    r158 r160  
    1818// - mapping_vspace_t   vspace[vspaces]     (MAPPING_VSPACE_SIZE * vspaces)
    1919// - mapping_vseg_t     vseg[vsegs]         (MAPPING_VSEG_SIZE * vsegs)
     20// - mapping_vseg_t     vobj[vsegs]         (MAPPING_VOBJ_SIZE * vsegs)
    2021// - mapping_task_t     task[tasks]         (MAPPING_TASK_SIZE * tasks)
    21 // - mapping_mwmr_t     mwmr[mwmrs]         (MAPPING_MWMR_SIZE * mwmrs)
    2222//
    2323// The number of clusters and the number of vspaces are defined in the header.
     
    4343#define MAPPING_VSPACE_SIZE     sizeof(mapping_vspace_t)
    4444#define MAPPING_VSEG_SIZE           sizeof(mapping_vseg_t)
     45#define MAPPING_VOBJ_SIZE           sizeof(mapping_vobj_t)
    4546#define MAPPING_PSEG_SIZE           sizeof(mapping_pseg_t)
    4647#define MAPPING_TASK_SIZE           sizeof(mapping_task_t)
     
    5455#define OUT_MAPPING_SIGNATURE   0xBABEF00D
    5556
     57enum
     58{
     59    ELF = 0,    //loadable code object
     60    PTAB,       //page table
     61    PERI,       //hardware component
     62    MWMR,       //MWMR channel
     63    LOCK,       //Lock
     64    BUFFER,     //Any "no intialiasation needed" objects (stacks...)
     65    BARRIER     //Barrier
     66};
     67
     68
    5669///////////////////////////////
    5770typedef struct mapping_header_s
     
    6376        unsigned int    globals;                // number of vsegs mapped in all vspaces
    6477        unsigned int    vspaces;                // number of virtual spaces
    65         unsigned int    vsegs;                  // total number of virtual segments (for all vspaces
     78        unsigned int    vsegs;                  // total number of virtual segments (for all vspaces)
     79        unsigned int    vobjs;                  // total number of virtual memory objects (for all vspaces)
    6680        unsigned int    tasks;                  // total number of tasks (for all vspaces)
    6781    char            name[32];       // mapping name
    68     char            syspath[64];    // path for the system binary code ("sys.bin")
    6982} mapping_header_t;
    7083
     
    90103{
    91104    char            name[32];       // virtual space name
    92     char            binpath[64];    // pathname to the binary code ("app.bin")
     105    unsigned int    funcs_offset;   // offset of the vobj containing the function entry table (relative to vobj_offset)
    93106        unsigned int    vsegs;              // number of private virtual segments
     107        unsigned int    vobjs;              // number of vobjs channels
    94108        unsigned int    tasks;              // number of tasks
    95         unsigned int    mwmrs;              // number of mwmr channels
    96109        unsigned int    ttys;               // number of required TTY terminals
    97110    unsigned int    vseg_offset;    // index of first vseg in vspace
     111    unsigned int    vobj_offset;    // index of first vobjs in vspace
    98112    unsigned int    task_offset;    // index of first task in vspace
    99     unsigned int    mwmr_offset;    // index of first mwmr in vspace
    100113} mapping_vspace_t;
    101114
     
    110123        unsigned char   mode;           // C-X-W-U flags
    111124    unsigned char   ident;          // identity mapping if non zero
    112     unsigned char   mwmr;           // mwmr channel if non zero
     125        unsigned int    vobjs;              // number of vobjs channels
     126    unsigned int    vobj_offset;    // index of first vobjs in vspace
    113127    unsigned char   reserved;       // unused
    114128} mapping_vseg_t;
     
    120134        unsigned int    clusterid;          // physical cluster index
    121135        unsigned int    proclocid;      // processor local index (inside cluster)
    122     unsigned int    vseglocid;      // stack vseg index in vspace
     136    unsigned int    vobjlocid;      // stack vobj index in vspace
    123137    unsigned int    startid;        // index in start_vector (in seg_data)
    124138    unsigned int    ttylocid;       // tty index (inside the vspace)
    125139} mapping_task_t;
     140
     141/////////////////////////////
     142typedef struct mapping_vobj_s
     143{
     144    char            name[32];       // vobj name (unique in a vspace)
     145    char            binpath[64];    // path for the binary code ("*.bin")
     146        unsigned int    type;           // type of vobj
     147        unsigned int    length;         // size (bytes)
     148        unsigned int    align;          // required alignement (logarithm of 2)
     149        unsigned int    vaddr;          // virtual addresse of the vobj location (bytes)
     150        unsigned int    paddr;          // physical addresse of the vobj location (bytes)
     151} mapping_vobj_t;
    126152
    127153#endif
Note: See TracChangeset for help on using the changeset viewer.