Subversion Repositories HelenOS

Rev

Rev 1766 | Rev 1787 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1766 Rev 1780
Line 547... Line 547...
547
   
547
   
548
    ASSERT(_slab_initialized >= 2);
548
    ASSERT(_slab_initialized >= 2);
549
 
549
 
550
    cache->mag_cache = malloc(sizeof(slab_mag_cache_t)*config.cpu_count,0);
550
    cache->mag_cache = malloc(sizeof(slab_mag_cache_t)*config.cpu_count,0);
551
    for (i=0; i < config.cpu_count; i++) {
551
    for (i=0; i < config.cpu_count; i++) {
552
        memsetb((__address)&cache->mag_cache[i],
552
        memsetb((uintptr_t)&cache->mag_cache[i],
553
            sizeof(cache->mag_cache[i]), 0);
553
            sizeof(cache->mag_cache[i]), 0);
554
        spinlock_initialize(&cache->mag_cache[i].lock,
554
        spinlock_initialize(&cache->mag_cache[i].lock,
555
                    "slab_maglock_cpu");
555
                    "slab_maglock_cpu");
556
    }
556
    }
557
}
557
}
Line 567... Line 567...
567
           int flags)
567
           int flags)
568
{
568
{
569
    int pages;
569
    int pages;
570
    ipl_t ipl;
570
    ipl_t ipl;
571
 
571
 
572
    memsetb((__address)cache, sizeof(*cache), 0);
572
    memsetb((uintptr_t)cache, sizeof(*cache), 0);
573
    cache->name = name;
573
    cache->name = name;
574
 
574
 
575
    if (align < sizeof(__native))
575
    if (align < sizeof(unative_t))
576
        align = sizeof(__native);
576
        align = sizeof(unative_t);
577
    size = ALIGN_UP(size, align);
577
    size = ALIGN_UP(size, align);
578
       
578
       
579
    cache->size = size;
579
    cache->size = size;
580
 
580
 
581
    cache->constructor = constructor;
581
    cache->constructor = constructor;
Line 818... Line 818...
818
 
818
 
819
    /* Initialize magazine cache */
819
    /* Initialize magazine cache */
820
    _slab_cache_create(&mag_cache,
820
    _slab_cache_create(&mag_cache,
821
               "slab_magazine",
821
               "slab_magazine",
822
               sizeof(slab_magazine_t)+SLAB_MAG_SIZE*sizeof(void*),
822
               sizeof(slab_magazine_t)+SLAB_MAG_SIZE*sizeof(void*),
823
               sizeof(__address),
823
               sizeof(uintptr_t),
824
               NULL, NULL,
824
               NULL, NULL,
825
               SLAB_CACHE_NOMAGAZINE | SLAB_CACHE_SLINSIDE);
825
               SLAB_CACHE_NOMAGAZINE | SLAB_CACHE_SLINSIDE);
826
    /* Initialize slab_cache cache */
826
    /* Initialize slab_cache cache */
827
    _slab_cache_create(&slab_cache_cache,
827
    _slab_cache_create(&slab_cache_cache,
828
               "slab_cache",
828
               "slab_cache",
829
               sizeof(slab_cache_cache),
829
               sizeof(slab_cache_cache),
830
               sizeof(__address),
830
               sizeof(uintptr_t),
831
               NULL, NULL,
831
               NULL, NULL,
832
               SLAB_CACHE_NOMAGAZINE | SLAB_CACHE_SLINSIDE);
832
               SLAB_CACHE_NOMAGAZINE | SLAB_CACHE_SLINSIDE);
833
    /* Initialize external slab cache */
833
    /* Initialize external slab cache */
834
    slab_extern_cache = slab_cache_create("slab_extern",
834
    slab_extern_cache = slab_cache_create("slab_extern",
835
                          sizeof(slab_t),
835
                          sizeof(slab_t),