Changeset ef67bab in mainline for generic/include/mm/as.h


Ignore:
Timestamp:
2006-02-01T00:02:16Z (19 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
071a8ae6
Parents:
fc1e4f6
Message:

Memory management work.
Remove the last (i.e. 'root') argument from page_mapping_insert() and page_mapping_find().
Page table address is now extracted from the first (i.e. 'as') argument.
Add a lot of infrastructure to make the above possible.
sparc64 is now broken, most likely because of insufficient identity mapping of physical memory.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • generic/include/mm/as.h

    rfc1e4f6 ref67bab  
    8181        SPINLOCK_DECLARE(lock);
    8282        link_t as_area_head;
    83         pte_t *ptl0;
    84         asid_t asid;                    /**< Address space identifier. */
     83
     84        /** Page table pointer. Constant on architectures that use global page hash table. */
     85        pte_t *page_table;
     86
     87        /** Address space identifier. Constant on architectures that do not support ASIDs.*/
     88        asid_t asid;
    8589};
    8690
     91struct as_operations {
     92        pte_t *(* page_table_create)(int flags);
     93};
     94typedef struct as_operations as_operations_t;
     95
    8796extern as_t *AS_KERNEL;
     97extern as_operations_t *as_operations;
    8898
    89 extern as_t *as_create(pte_t *ptl0, int flags);
     99extern void as_init(void);
     100extern as_t *as_create(int flags);
    90101extern as_area_t *as_area_create(as_t *as, as_area_type_t type, size_t size, __address base);
    91102extern void as_set_mapping(as_t *as, __address page, __address frame);
Note: See TracChangeset for help on using the changeset viewer.