Hello, El 02/04/14 12:24, Alexis Fajardo Moya escribió:
=>=>=> lastmoduleend 0 received from rounded this_module->end() 0
Note this output. After move the first module (00, corresponding to fiasco), the "end" value of the variable
this_module
is 0.
After many printfs, I (aka. my team) discover the problem in the function
move_module (l4util_mb_info_t *mbi, int i, Region *from, Region *to, bool overlap_check)
after execute the sentence
memmove((void *)to->begin(), (void *)start, size);
the *begin* and *end* values of the region *to*, originally with values 711cf000 and 712256db, turns in 10101464c457f and 0. The *begin* and *end* values of the region *from* are set to the corresponding values of the region *to*, causing the problem in the assigment to *lastmoduleend* variable in the *move_modules* function, making false the comparision
for (unsigned i = 0; i < mbi->mods_count; ++i) { ...
if (i < 3) { ...
if (start < lastmoduleend) // false, (7106e000 < 0)?
in the second iteration of the for sentence.
Best regards, Alexis.