miércoles, marzo 02, 2005

work done

1) Actualization of the unprotected pages vector index (in order to make it work like a FIFO cue with some exceptions). Exceptions:
- If the new unactive page is the one that is in execution (== EIP page).

// If the selected page for unactivation is the same as the one in execution, we choose another
// if there's (it would)
for( i = 0; ( (actual_eip & 0xFFFFF000) == (0xFFFFF000 & (long) pftrace_last_access [pftrace_actual_v_pos]) )
&& (i <>
pftrace_actual_v_pos = (pftrace_actual_v_pos +1) % pftrace_NUM_PAGES_IN_MEM;

This make me take notice that weren't giving the correct protections (rw, rx, ...) when activating pages

2) Creation of pftrace_exception_finish() intended to be called when something strange occures, then we restore the previous execution and finish our work.