Changeset 29b2bbf in mainline for kernel/generic


Ignore:
Timestamp:
2006-09-18T22:10:20Z (19 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
19dba2b
Parents:
57da95c
Message:

sparc64 work:

  • Experimental support for TSB (Translation Storage Buffer).
Location:
kernel/generic
Files:
2 edited

Legend:

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

    r57da95c r29b2bbf  
    161161        /** Data to be used by the backend. */
    162162        mem_backend_data_t backend_data;
    163        
    164         as_arch_t arch;
    165163};
    166164
     
    191189extern int used_space_remove(as_area_t *a, uintptr_t page, count_t count);
    192190
     191
    193192/* Interface to be implemented by architectures. */
     193#ifndef as_constructor_arch
     194extern int as_constructor_arch(as_t *as, int flags);
     195#endif /* !def as_constructor_arch */
     196#ifndef as_destructor_arch
     197extern int as_destructor_arch(as_t *as);
     198#endif /* !def as_destructor_arch */
     199#ifndef as_create_arch
     200extern int as_create_arch(as_t *as, int flags);
     201#endif /* !def as_create_arch */
    194202#ifndef as_install_arch
    195203extern void as_install_arch(as_t *as);
  • kernel/generic/src/mm/as.c

    r57da95c r29b2bbf  
    107107static void sh_info_remove_reference(share_info_t *sh_info);
    108108
     109static int as_constructor(void *obj, int flags)
     110{
     111        as_t *as = (as_t *) obj;
     112        int rc;
     113
     114        link_initialize(&as->inactive_as_with_asid_link);
     115        mutex_initialize(&as->lock);   
     116       
     117        rc = as_constructor_arch(as, flags);
     118       
     119        return rc;
     120}
     121
     122static int as_destructor(void *obj)
     123{
     124        as_t *as = (as_t *) obj;
     125
     126        return as_destructor_arch(as);
     127}
     128
    109129/** Initialize address space subsystem. */
    110130void as_init(void)
     
    112132        as_arch_init();
    113133       
    114         as_slab = slab_cache_create("as_slab", sizeof(as_t), 0, NULL, NULL, SLAB_CACHE_MAGDEFERRED);
     134        as_slab = slab_cache_create("as_slab", sizeof(as_t), 0,
     135                as_constructor, as_destructor, SLAB_CACHE_MAGDEFERRED);
    115136       
    116137        AS_KERNEL = as_create(FLAG_AS_KERNEL);
     
    129150
    130151        as = (as_t *) slab_alloc(as_slab, 0);
    131         link_initialize(&as->inactive_as_with_asid_link);
    132         mutex_initialize(&as->lock);
     152        (void) as_create_arch(as, 0);
     153       
    133154        btree_create(&as->as_area_btree);
    134155       
Note: See TracChangeset for help on using the changeset viewer.