Subversion Repositories HelenOS-historic

Rev

Rev 786 | Rev 1044 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 786 Rev 792
Line 31... Line 31...
31
#include <mm/as.h>
31
#include <mm/as.h>
32
#include <mm/frame.h>
32
#include <mm/frame.h>
33
#include <arch/types.h>
33
#include <arch/types.h>
34
#include <typedefs.h>
34
#include <typedefs.h>
35
#include <memstr.h>
35
#include <memstr.h>
-
 
36
#include <adt/hash_table.h>
36
 
37
 
37
static pte_t *ht_create(int flags);
38
static pte_t *ht_create(int flags);
38
 
39
 
39
as_operations_t as_ht_operations = {
40
as_operations_t as_ht_operations = {
40
    .page_table_create = ht_create
41
    .page_table_create = ht_create
Line 46... Line 47...
46
 * The page hash table will be created only once
47
 * The page hash table will be created only once
47
 * and will be shared by all address spaces.
48
 * and will be shared by all address spaces.
48
 *
49
 *
49
 * @param flags Ignored.
50
 * @param flags Ignored.
50
 *
51
 *
51
 * @return Address of global page hash table.
52
 * @return Returns NULL.
52
 */
53
 */
53
pte_t *ht_create(int flags)
54
pte_t *ht_create(int flags)
54
{
55
{
55
    if (!page_ht) {
56
    if (flags & FLAG_AS_KERNEL) {
56
        page_ht = (pte_t *) frame_alloc(HT_WIDTH - FRAME_WIDTH, FRAME_KA | FRAME_PANIC);
-
 
57
        memsetb((__address) page_ht, HT_SIZE, 0);
57
        hash_table_create(&page_ht, PAGE_HT_ENTRIES, 2, &ht_operations);
58
    }
58
    }
59
    return page_ht;
59
    return NULL;
60
}
60
}