Subversion Repositories HelenOS-historic

Compare Revisions

Ignore whitespace Rev 709 → Rev 710

/kernel/trunk/arch/ia64/include/mm/page.h
48,6 → 48,75
#define HT_SET_NEXT_ARCH(t, s)
#define HT_SET_RECORD_ARCH(t, page, asid, frame, flags)
 
struct VHPT_tag_info
{
unsigned long long tag :63;
unsigned ti : 1;
}__attribute__ ((packed));
 
union VHPT_tag
{
struct VHPT_tag_info tag_info;
unsigned tag_word;
};
 
struct VHPT_entry_present
{
 
/* Word 0 */
unsigned p : 1;
unsigned rv0 : 1;
unsigned ma : 3;
unsigned a : 1;
unsigned d : 1;
unsigned pl : 2;
unsigned ar : 3;
unsigned long long ppn :38;
unsigned rv1 : 2;
unsigned ed : 1;
unsigned ig1 :11;
/* Word 1 */
unsigned rv2 : 2;
unsigned ps : 6;
unsigned key :24;
unsigned rv3 :32;
/* Word 2 */
union VHPT_tag tag; /*This data is here as union because I'm not sure if anybody nead access to areas ti and tag in VHPT entry*/
/* But I'm almost sure we nead access to whole word so there are both possibilities*/
/* Word 3 */
unsigned long long next :64;
}__attribute__ ((packed));
 
struct VHPT_entry_not_present
{
/* Word 0 */
unsigned p : 1;
unsigned long long ig0 :52;
unsigned ig1 :11;
/* Word 1 */
unsigned rv2 : 2;
unsigned ps : 6;
unsigned long long ig2 :56;
 
/* Word 2 */
union VHPT_tag tag; /*This data is here as union because I'm not sure if anybody nead access to areas ti and tag in VHPT entry*/
/* But I'm almost sure we nead access to whole word so there are both possibilities*/
/* Word 3 */
unsigned long long next :64;
}__attribute__ ((packed));
 
typedef union VHPT_entry
{
struct VHPT_entry_present present;
struct VHPT_entry_not_present not_present;
}VHPT_entry;
 
extern void page_arch_init(void);
 
#endif