Changeset 482826d in mainline for generic/include


Ignore:
Timestamp:
2006-05-31T16:23:19Z (19 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.

Location:
generic/include
Files:
3 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);
  • generic/include/mm/page.h

    r343fc179 r482826d  
    8686extern pte_t *page_mapping_find(as_t *as, __address page);
    8787extern pte_t *page_table_create(int flags);
     88extern void page_table_destroy(pte_t *page_table);
    8889extern void map_structure(__address s, size_t size);
    8990extern __address hw_map(__address physaddr, size_t size);
  • generic/include/proc/task.h

    r343fc179 r482826d  
    5757       
    5858        /**
    59           * Serializes access to the B+tree of task's futexes. This mutex is
    60           * independent on the task spinlock.
    61           */
     59         * Serializes access to the B+tree of task's futexes. This mutex is
     60         * independent on the task spinlock.
     61         */
    6262        mutex_t futexes_lock;
    6363        btree_t futexes;        /**< B+tree of futexes referenced by this task. */
Note: See TracChangeset for help on using the changeset viewer.