Subversion Repositories HelenOS-historic

Rev

Rev 1702 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1702 Rev 1780
Line 74... Line 74...
74
};
74
};
75
typedef enum pf_access pf_access_t;
75
typedef enum pf_access pf_access_t;
76
 
76
 
77
/** Operations to manipulate page mappings. */
77
/** Operations to manipulate page mappings. */
78
struct page_mapping_operations {
78
struct page_mapping_operations {
79
    void (* mapping_insert)(as_t *as, __address page, __address frame, int flags);
79
    void (* mapping_insert)(as_t *as, uintptr_t page, uintptr_t frame, int flags);
80
    void (* mapping_remove)(as_t *as, __address page);
80
    void (* mapping_remove)(as_t *as, uintptr_t page);
81
    pte_t *(* mapping_find)(as_t *as, __address page);
81
    pte_t *(* mapping_find)(as_t *as, uintptr_t page);
82
};
82
};
83
typedef struct page_mapping_operations page_mapping_operations_t;
83
typedef struct page_mapping_operations page_mapping_operations_t;
84
 
84
 
85
extern page_mapping_operations_t *page_mapping_operations;
85
extern page_mapping_operations_t *page_mapping_operations;
86
 
86
 
87
extern void page_init(void);
87
extern void page_init(void);
88
extern void page_table_lock(as_t *as, bool lock);
88
extern void page_table_lock(as_t *as, bool lock);
89
extern void page_table_unlock(as_t *as, bool unlock);
89
extern void page_table_unlock(as_t *as, bool unlock);
90
extern void page_mapping_insert(as_t *as, __address page, __address frame, int flags);
90
extern void page_mapping_insert(as_t *as, uintptr_t page, uintptr_t frame, int flags);
91
extern void page_mapping_remove(as_t *as, __address page);
91
extern void page_mapping_remove(as_t *as, uintptr_t page);
92
extern pte_t *page_mapping_find(as_t *as, __address page);
92
extern pte_t *page_mapping_find(as_t *as, uintptr_t page);
93
extern pte_t *page_table_create(int flags);
93
extern pte_t *page_table_create(int flags);
94
extern void page_table_destroy(pte_t *page_table);
94
extern void page_table_destroy(pte_t *page_table);
95
extern void map_structure(__address s, size_t size);
95
extern void map_structure(uintptr_t s, size_t size);
96
extern __address hw_map(__address physaddr, size_t size);
96
extern uintptr_t hw_map(uintptr_t physaddr, size_t size);
97
 
97
 
98
#endif
98
#endif
99
 
99
 
100
 /** @}
100
 /** @}
101
 */
101
 */