Changeset 160 for soft/giet_vm/xml/mapping_info.h
- Timestamp:
- Jun 12, 2012, 4:21:27 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
soft/giet_vm/xml/mapping_info.h
r158 r160 18 18 // - mapping_vspace_t vspace[vspaces] (MAPPING_VSPACE_SIZE * vspaces) 19 19 // - mapping_vseg_t vseg[vsegs] (MAPPING_VSEG_SIZE * vsegs) 20 // - mapping_vseg_t vobj[vsegs] (MAPPING_VOBJ_SIZE * vsegs) 20 21 // - mapping_task_t task[tasks] (MAPPING_TASK_SIZE * tasks) 21 // - mapping_mwmr_t mwmr[mwmrs] (MAPPING_MWMR_SIZE * mwmrs)22 22 // 23 23 // The number of clusters and the number of vspaces are defined in the header. … … 43 43 #define MAPPING_VSPACE_SIZE sizeof(mapping_vspace_t) 44 44 #define MAPPING_VSEG_SIZE sizeof(mapping_vseg_t) 45 #define MAPPING_VOBJ_SIZE sizeof(mapping_vobj_t) 45 46 #define MAPPING_PSEG_SIZE sizeof(mapping_pseg_t) 46 47 #define MAPPING_TASK_SIZE sizeof(mapping_task_t) … … 54 55 #define OUT_MAPPING_SIGNATURE 0xBABEF00D 55 56 57 enum 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 56 69 /////////////////////////////// 57 70 typedef struct mapping_header_s … … 63 76 unsigned int globals; // number of vsegs mapped in all vspaces 64 77 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) 66 80 unsigned int tasks; // total number of tasks (for all vspaces) 67 81 char name[32]; // mapping name 68 char syspath[64]; // path for the system binary code ("sys.bin")69 82 } mapping_header_t; 70 83 … … 90 103 { 91 104 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) 93 106 unsigned int vsegs; // number of private virtual segments 107 unsigned int vobjs; // number of vobjs channels 94 108 unsigned int tasks; // number of tasks 95 unsigned int mwmrs; // number of mwmr channels96 109 unsigned int ttys; // number of required TTY terminals 97 110 unsigned int vseg_offset; // index of first vseg in vspace 111 unsigned int vobj_offset; // index of first vobjs in vspace 98 112 unsigned int task_offset; // index of first task in vspace 99 unsigned int mwmr_offset; // index of first mwmr in vspace100 113 } mapping_vspace_t; 101 114 … … 110 123 unsigned char mode; // C-X-W-U flags 111 124 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 113 127 unsigned char reserved; // unused 114 128 } mapping_vseg_t; … … 120 134 unsigned int clusterid; // physical cluster index 121 135 unsigned int proclocid; // processor local index (inside cluster) 122 unsigned int v seglocid; // stack vsegindex in vspace136 unsigned int vobjlocid; // stack vobj index in vspace 123 137 unsigned int startid; // index in start_vector (in seg_data) 124 138 unsigned int ttylocid; // tty index (inside the vspace) 125 139 } mapping_task_t; 140 141 ///////////////////////////// 142 typedef 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; 126 152 127 153 #endif
Note: See TracChangeset
for help on using the changeset viewer.