Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 2262 → Rev 2263

/branches/arm/kernel/arch/arm32/include/mm/page.h
93,7 → 93,6
#define SET_FRAME_FLAGS_ARCH(ptl3, i, x) set_pt_level1_flags((pte_level1_t *)(ptl3), (index_t)(i), (x))
 
#define PTE_VALID_ARCH(pte) (*((uint32_t *) (pte)) != 0)
// TODO: ?? != 0
#define PTE_PRESENT_ARCH(pte) ( ((pte_level0_t *)(pte))->descriptor_type != 0 )
 
/* pte should point into ptl3 */
119,11 → 118,10
}
 
/**
* Returns level 0 page table entry flags.
/** Returns level 0 page table entry flags.
*
* \param pt level 0 page table
* \param i index of the entry to return
* \param pt level 0 page table
* \param i index of the entry to return
*/
static inline int get_pt_level0_flags(pte_level0_t *pt, index_t i)
{
139,11 → 137,10
;
}
 
/**
* Returns level 1 page table entry flags.
/** Returns level 1 page table entry flags.
*
* \param pt level 1 page table
* \param i index of the entry to return
* \param pt level 1 page table
* \param i index of the entry to return
*/
static inline int get_pt_level1_flags(pte_level1_t *pt, index_t i)
{
162,14 → 159,11
;
}
 
/**
* Sets flags of level 0 page table entry.
/** Sets flags of level 0 page table entry.
*
* \param pt level 0 page table
* \param i index of the entry to be changed
* \param flags new flags
*
* TODO: why should_be_zero set to 1?
* \param pt level 0 page table
* \param i index of the entry to be changed
* \param flags new flags
*/
static inline void set_pt_level0_flags(pte_level0_t *pt, index_t i, int flags)
{
177,10 → 171,8
 
if (flags & PAGE_NOT_PRESENT) {
p->descriptor_type = PTE_DESCRIPTOR_NOT_PRESENT;
// ensures that the entry will be recognized as valid when PTE_VALID_ARCH applied
p->should_be_zero = 1;
// TODO: remove in final version
// For Michal: Have to be here ... ensures this entry contains at least 1 non zero bit
// all zero bits signals PTE_VALID_ARCH , it's different from not_present
} else {
p->descriptor_type = PTE_DESCRIPTOR_COARSE_TABLE;
p->should_be_zero = 0;
187,16 → 179,15
}
}
 
/**
* Sets flags of level 1 page table entry.
/** Sets flags of level 1 page table entry.
*
* We use same access rights for the whole page. When page is not preset then
* store 1 in acess_rigts_3.
* TODO: why access_right_3?
* We use same access rights for the whole page. When page is not preset we
* store 1 in acess_rigts_3 so that at least one bit is 1 (to mark correct
* page entry, see #PAGE_VALID_ARCH).
*
* \param pt level 1 page table
* \param i index of the entry to be changed
* \param flags new flags
* \param pt level 1 page table
* \param i index of the entry to be changed
* \param flags new flags
*/
static inline void set_pt_level1_flags(pte_level1_t *pt, index_t i, int flags)
{