Changeset 482826d in mainline for generic/include/mm/as.h


Ignore:
Timestamp:
2006-05-31T16:23:19Z (18 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
39031cc
Parents:
343fc179
Message:

Function for destroying address space for which there is no other reference in the kernel.

File:
1 edited

Legend:

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

    r343fc179 r482826d  
    7676        mutex_t lock;
    7777
     78        /** Number of references (i.e tasks that reference this as). */
     79        count_t refcount;
     80
    7881        /** Number of processors on wich is this address space active. */
    7982        count_t cpu_refcount;
     
    9194struct as_operations {
    9295        pte_t *(* page_table_create)(int flags);
     96        void (* page_table_destroy)(pte_t *page_table);
    9397        void (* page_table_lock)(as_t *as, bool lock);
    9498        void (* page_table_unlock)(as_t *as, bool unlock);
     
    159163
    160164extern void as_init(void);
     165
    161166extern as_t *as_create(int flags);
     167extern void as_destroy(as_t *as);
     168extern void as_switch(as_t *old, as_t *new);
     169extern int as_page_fault(__address page, pf_access_t access, istate_t *istate);
     170
    162171extern as_area_t *as_area_create(as_t *as, int flags, size_t size, __address base, int attrs,
    163172        mem_backend_t *backend, mem_backend_data_t *backend_data);
     173extern int as_area_destroy(as_t *as, __address address);       
    164174extern int as_area_resize(as_t *as, __address address, size_t size, int flags);
    165 extern int as_area_destroy(as_t *as, __address address);
     175int as_area_share(as_t *src_as, __address src_base, size_t acc_size,
     176                  as_t *dst_as, __address dst_base, int dst_flags_mask);
     177
    166178extern int as_area_get_flags(as_area_t *area);
    167179extern bool as_area_check_access(as_area_t *area, pf_access_t access);
    168 extern int as_page_fault(__address page, pf_access_t access, istate_t *istate);
    169 extern void as_switch(as_t *old, as_t *new);
    170 extern void as_free(as_t *as);
    171 int as_area_share(as_t *src_as, __address src_base, size_t acc_size,
    172                   as_t *dst_as, __address dst_base, int dst_flags_mask);
    173180extern size_t as_get_size(__address base);
    174181extern int used_space_insert(as_area_t *a, __address page, count_t count);
Note: See TracChangeset for help on using the changeset viewer.