Ignore:
File:
1 edited

Legend:

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

    r1d432f9 rcda1378  
    4848#include <align.h>
    4949
    50 static int phys_page_fault(as_area_t *area, uintptr_t addr, pf_access_t access);
    51 static void phys_share(as_area_t *area);
     50static bool phys_create(as_area_t *);
     51static void phys_share(as_area_t *);
     52static void phys_destroy(as_area_t *);
     53
     54static int phys_page_fault(as_area_t *, uintptr_t, pf_access_t);
    5255
    5356mem_backend_t phys_backend = {
     57        .create = phys_create,
     58        .resize = NULL,
     59        .share = phys_share,
     60        .destroy = phys_destroy,
     61
    5462        .page_fault = phys_page_fault,
    5563        .frame_free = NULL,
    56         .share = phys_share
    5764};
     65
     66bool phys_create(as_area_t *area)
     67{
     68        return true;
     69}
     70
     71/** Share address space area backed by physical memory.
     72 *
     73 * Do actually nothing as sharing of address space areas
     74 * that are backed up by physical memory is very easy.
     75 * Note that the function must be defined so that
     76 * as_area_share() will succeed.
     77 */
     78void phys_share(as_area_t *area)
     79{
     80        ASSERT(mutex_locked(&area->as->lock));
     81        ASSERT(mutex_locked(&area->lock));
     82}
     83
     84
     85void phys_destroy(as_area_t *area)
     86{
     87        /* Nothing to do. */
     88}
    5889
    5990/** Service a page fault in the address space area backed by physical memory.
     
    81112        page_mapping_insert(AS, addr, base + (addr - area->base),
    82113            as_area_get_flags(area));
    83         if (!used_space_insert(area, ALIGN_DOWN(addr, PAGE_SIZE), 1))
    84                 panic("Cannot insert used space.");
     114       
     115        if (!used_space_insert(area, ALIGN_DOWN(addr, PAGE_SIZE), 1))
     116                panic("Cannot insert used space.");
    85117
    86118        return AS_PF_OK;
    87119}
    88120
    89 /** Share address space area backed by physical memory.
    90  *
    91  * Do actually nothing as sharing of address space areas
    92  * that are backed up by physical memory is very easy.
    93  * Note that the function must be defined so that
    94  * as_area_share() will succeed.
    95  */
    96 void phys_share(as_area_t *area)
    97 {
    98         ASSERT(mutex_locked(&area->as->lock));
    99         ASSERT(mutex_locked(&area->lock));
    100 }
    101 
    102121/** @}
    103122 */
Note: See TracChangeset for help on using the changeset viewer.