Changeset 1d432f9 in mainline for kernel/generic/src/mm/as.c


Ignore:
Timestamp:
2010-05-31T22:33:44Z (14 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
179d052
Parents:
3a2b636
Message:

Reflect assumptions about lock and interrupt state in functions themselves.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/src/mm/as.c

    r3a2b636 r1d432f9  
    817817                [PF_ACCESS_EXEC] = AS_AREA_EXEC
    818818        };
     819
     820        ASSERT(interrupts_disabled());
     821        ASSERT(mutex_locked(&area->lock));
    819822       
    820823        if (!(area->flags & flagmap[access]))
     
    12211224unsigned int as_area_get_flags(as_area_t *area)
    12221225{
     1226        ASSERT(interrupts_disabled());
     1227        ASSERT(mutex_locked(&area->lock));
     1228
    12231229        return area_flags_to_page_flags(area->flags);
    12241230}
     
    13221328as_area_t *find_area_and_lock(as_t *as, uintptr_t va)
    13231329{
     1330        ASSERT(interrupts_disabled());
     1331        ASSERT(mutex_locked(&as->lock));
     1332
    13241333        btree_node_t *leaf;
    13251334        as_area_t *area = (as_area_t *) btree_search(&as->as_area_btree, va, &leaf);
     
    13861395    as_area_t *avoid_area)
    13871396{
     1397        ASSERT(interrupts_disabled());
     1398        ASSERT(mutex_locked(&as->lock));
     1399
    13881400        /*
    13891401         * We don't want any area to have conflicts with NULL page.
     
    14731485/** Return size of the address space area with given base.
    14741486 *
    1475  * @param base Arbitrary address insede the address space area.
     1487 * @param base Arbitrary address inside the address space area.
    14761488 *
    14771489 * @return Size of the address space area in bytes or zero if it
     
    14841496       
    14851497        ipl_t ipl = interrupts_disable();
     1498        page_table_lock(AS, true);
    14861499        as_area_t *src_area = find_area_and_lock(AS, base);
    14871500       
     
    14921505                size = 0;
    14931506       
     1507        page_table_unlock(AS, true);
    14941508        interrupts_restore(ipl);
    14951509        return size;
     
    15091523int used_space_insert(as_area_t *area, uintptr_t page, size_t count)
    15101524{
     1525        ASSERT(mutex_locked(&area->lock));
    15111526        ASSERT(page == ALIGN_DOWN(page, PAGE_SIZE));
    15121527        ASSERT(count);
     
    18151830int used_space_remove(as_area_t *area, uintptr_t page, size_t count)
    18161831{
     1832        ASSERT(mutex_locked(&area->lock));
    18171833        ASSERT(page == ALIGN_DOWN(page, PAGE_SIZE));
    18181834        ASSERT(count);
Note: See TracChangeset for help on using the changeset viewer.