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), |