Changeset 38dc82d in mainline for kernel/generic/include/mm/page.h


Ignore:
Timestamp:
2016-08-31T14:16:45Z (9 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
346b12a2
Parents:
dc05a9a
Message:

Make page_mapping_find() return a copy rather than the actual PTE

This makes page_mapping_find() more suitable for use with lock-free data
structures such as CHT that guarantee existence of the data only for
some limited time while a condition holds (e.g. inside of a RCU-protected
critical section that must be around all CHT lookups).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/include/mm/page.h

    rdc05a9a r38dc82d  
    4848        void (* mapping_insert)(as_t *, uintptr_t, uintptr_t, unsigned int);
    4949        void (* mapping_remove)(as_t *, uintptr_t);
    50         pte_t *(* mapping_find)(as_t *, uintptr_t, bool);
     50        bool (* mapping_find)(as_t *, uintptr_t, bool, pte_t *);
    5151        void (* mapping_make_global)(uintptr_t, size_t);
    5252} page_mapping_operations_t;
     
    6060extern void page_mapping_insert(as_t *, uintptr_t, uintptr_t, unsigned int);
    6161extern void page_mapping_remove(as_t *, uintptr_t);
    62 extern pte_t *page_mapping_find(as_t *, uintptr_t, bool);
     62extern bool page_mapping_find(as_t *, uintptr_t, bool, pte_t *);
    6363extern void page_mapping_make_global(uintptr_t, size_t);
    6464extern pte_t *page_table_create(unsigned int);
Note: See TracChangeset for help on using the changeset viewer.