- \const{MAP\_PRIVATE} & I cambiamenti sulla memoria mappata non vengono
- riportati sul file. Ne viene fatta una copia
- privata cui solo il processo chiamante ha
- accesso. Le modifiche sono mantenute attraverso
- il meccanismo del \textit{copy on
- write} \itindex{copy~on~write} e
- salvate su swap in caso di necessità. Non è
- specificato se i cambiamenti sul file originale
- vengano riportati sulla regione
- mappata. Incompatibile con \const{MAP\_SHARED}.\\
- \const{MAP\_DENYWRITE} & In Linux viene ignorato per evitare
- \textit{DoS} \itindex{Denial~of~Service~(DoS)}
- (veniva usato per segnalare che tentativi di
- scrittura sul file dovevano fallire con
- \errcode{ETXTBSY}).\\
- \const{MAP\_EXECUTABLE}& Ignorato.\\
- \const{MAP\_NORESERVE} & Si usa con \const{MAP\_PRIVATE}. Non riserva
- delle pagine di swap ad uso del meccanismo del
- \textit{copy on write} \itindex{copy~on~write}
- per mantenere le
- modifiche fatte alla regione mappata, in
- questo caso dopo una scrittura, se non c'è più
- memoria disponibile, si ha l'emissione di
- un \signal{SIGSEGV}.\\
- \const{MAP\_LOCKED} & Se impostato impedisce lo swapping delle pagine
- mappate.\\
- \const{MAP\_GROWSDOWN} & Usato per gli \itindex{stack} \textit{stack}.
- Indica che la mappatura deve essere effettuata
- con gli indirizzi crescenti verso il basso.\\
- \const{MAP\_ANONYMOUS} & La mappatura non è associata a nessun file. Gli
- argomenti \param{fd} e \param{offset} sono
- ignorati.\footnotemark\\
- \const{MAP\_ANON} & Sinonimo di \const{MAP\_ANONYMOUS}, deprecato.\\
- \const{MAP\_FILE} & Valore di compatibilità, ignorato.\\
- \const{MAP\_32BIT} & Esegue la mappatura sui primi 2Gb dello spazio
- degli indirizzi, viene supportato solo sulle
- piattaforme \texttt{x86-64} per compatibilità con
- le applicazioni a 32 bit. Viene ignorato se si è
- richiesto \const{MAP\_FIXED}.\\
- \const{MAP\_POPULATE} & Esegue il \itindex{prefaulting}
- \textit{prefaulting} delle pagine di memoria
- necessarie alla mappatura.\\
- \const{MAP\_NONBLOCK} & Esegue un \textit{prefaulting} più limitato che
- non causa I/O.\footnotemark\\
+ \const{MAP\_STACK} & Al momento è ignorato, è stato fornito (dal kernel
+ 2.6.27) a supporto della implementazione dei
+ thread nelle \acr{glibc}, per allocare memoria in
+ uno spazio utilizzabile come \textit{stack} per le
+ architetture hardware che richiedono un
+ trattamento speciale di quest'ultimo.\\
+ \const{MAP\_UNINITIALIZED}& Specifico per i sistemi embedded ed
+ utilizzabile dal kernel 2.6.33 solo se è stata
+ abilitata in fase di compilazione dello stesso
+ l'opzione
+ \texttt{CONFIG\_MMAP\_ALLOW\_UNINITIALIZED}. Se
+ usato le pagine di memoria usate nella mappatura
+ anonima non vengono cancellate; questo migliora
+ le prestazioni sui sistemi con risorse minime, ma
+ comporta la possibilità di rileggere i dati di
+ altri processi che han chiuso una mappatura, per
+ cui viene usato solo quando (come si suppone sia
+ per i sistemi embedded) si ha il completo
+ controllo dell'uso della memoria da parte degli
+ utenti.\\