2013-07-16 20 views
6

Sono in un modulo del kernel Linux e alloco memoria con, ad esempio, vmalloc(). Voglio che la memoria abbia permesso di leggere, scrivere ed eseguire. Qual è il modo pulito e appropriato per farlo? Fondamentalmente, questo è generalmente l'equivalente di chiamare mprotect(), ma nello spazio del kernel.mprotect() come funzionalità all'interno del kernel Linux

Se faccio la pagina di passeggiata, pgd_offset(), pud_offset(), pmd_offset(), pte_offset_map(), e poi pte_mkwrite(), mi imbatto in collegamento errori quando ho provato su 2.6.39. Inoltre, sembra che se sto facendo la pagina a piedi, è un trucco, e ci dovrebbe essere un metodo più pulito e più appropriato.

Il modulo del mio kernel sarà un modulo caricabile, quindi i simboli interni non sono disponibili per me.

Grazie, in anticipo, per la vostra guida.

risposta

0

Avete provato invocando do_mprotect() [funzione kernel corrispondente a mprotect()] direttamente?

Problemi correlati