ARM Linux Page Table Formato de entrada - bits não utilizados?

Preciso usar dois bits do PTE para armazenar um valor de "estado" personalizado que meu módulo do kernel usará ao interceptar falhas de proteção de página.

Eu estou desenvolvendo em um Galaxy Nexus que tem um ARM Cortex A9 (ARM v7, eu acredito). Versão do kernel Linux 3.0.31. As definições do Linux PTE são as seguintes (dearch/arm/include/asm/pgtable.h:

/*
 * "Linux" PTE definitions.
 *
 * We keep two sets of PTEs - the hardware and the linux version.
 * This allows greater flexibility in the way we map the Linux bits
 * onto the hardware tables, and allows us to have YOUNG and DIRTY
 * bits.
 *
 * The PTE table pointer refers to the hardware entries; the "Linux"
 * entries are stored 1024 bytes below.
 */
#define L_PTE_PRESENT       (_AT(pteval_t, 1) << 0)
#define L_PTE_YOUNG         (_AT(pteval_t, 1) << 1)
#define L_PTE_FILE          (_AT(pteval_t, 1) << 2) /* only when !PRESENT */
#define L_PTE_DIRTY         (_AT(pteval_t, 1) << 6)
#define L_PTE_RDONLY        (_AT(pteval_t, 1) << 7)
#define L_PTE_USER          (_AT(pteval_t, 1) << 8)
#define L_PTE_XN            (_AT(pteval_t, 1) << 9)
#define L_PTE_SHARED        (_AT(pteval_t, 1) << 10)    /* shared(v6), coherent(xsc3) */

Apenas olhando para essa lista de definições, parece que os bits 3,4,5 estão disponíveis, assim como os bits 11 e acima. No entanto, sei que os 20 bits mais significativos [31:12] são usados ​​para o número da página (PFN, acredito), então não posso usar nenhum deles.

Posso usar livremente bits [5: 3] ou isso criará problemas?&nbsp;Passei horas procurando a resposta para isso, mas só posso encontrar documentação sobre como o Linux usa bits PTE para arquitetura x86.

ATUALIZAR:

Eu compilei uma lista do que acredito que cada PTE seja um pouco.

bit  0     PRESENT
bit  1     YOUNG
bit  2     MEMORY TYPES 0  B          FILE (only when not PRESENT)
bit  3     MEMORY TYPES 1  C
bit  4     AP0 
bit  5     AP1
bit  6     DIRTY
bit  7     RD_ONLY
bit  8     USER
bit  9     XN
bit 10     SHARED
bit 11     EXT_NG (no idea what this is)

bit 12     |---|
...        |PFN|
bit 31     |---|

Infelizmente eu não vejo uma maneira de especificarnão&nbsp;ler ou escrever permissões, mas de alguma formammap&nbsp;comPROT_NONE&nbsp;ainda parece funcionar. Eu sei como especificar permissões de leitura ou R / W, mas ainda preciso saber como definir uma página para não ter permissões.