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.