do un piccolo update....
ho corretto il calcolo della memoria virtuale da allocare per l'mmap ma ancora nun va :\
la riga corretta è questa
void* shot_mem_start = mmap(0, (((*buffer).bytesused / sz) + 1) * sz, PROT_READ | PROT_WRITE, MAP_SHARED, shot_fd, 0);
sz lo estraggo usando
long sz = sysconf(_SC_PAGESIZE);
ho bisogno di appena 151 pagine per mettere in memoria i dati
nota: OVVIAMENTE il problema persiste ancora ma almeon un pezzetto ora è risolto ^^