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 | } |