Changeset 81e52f2a in mainline
- Timestamp:
- 2006-02-04T00:53:19Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- c5613b7
- Parents:
- c352c2e
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
generic/include/bitops.h
rc352c2e r81e52f2a 41 41 int n = 0; 42 42 43 if (arg & 0xffff0000) { arg >>= 16;n += 16;}44 if (arg & 0xff00) { arg >>= 8; n += 8;}45 if (arg & 0xf0) { arg >>= 4; n += 4;}46 if (arg & 0xc) { arg >>= 2; n+=2;}47 if (arg & 0x2) { arg >>= 1; n+=1;}43 if (arg >> 16) { arg >>= 16;n += 16;} 44 if (arg >> 8) { arg >>= 8; n += 8;} 45 if (arg >> 4) { arg >>= 4; n += 4;} 46 if (arg >> 2) { arg >>= 2; n+=2;} 47 if (arg >> 1) { arg >>= 1; n+=1;} 48 48 return n; 49 49 } … … 53 53 int n = 0; 54 54 55 /* This is because mips complains about big numbers, 56 * other platforms should optimize it out */ 57 __u64 oper = 0xffffffff; 58 oper <<= 32; 59 60 if (arg & oper) { arg >>= 32;n += 32;} 55 if (arg >> 32) { arg >>= 32;n += 32;} 61 56 return n + fnzb32((__u32) arg); 62 57 } -
generic/src/mm/slab.c
rc352c2e r81e52f2a 366 366 void *obj; 367 367 368 if (!CPU) 369 return NULL; 370 368 371 spinlock_lock(&cache->mag_cache[CPU->id].lock); 369 372 … … 436 439 slab_magazine_t *mag; 437 440 441 if (!CPU) 442 return -1; 443 438 444 spinlock_lock(&cache->mag_cache[CPU->id].lock); 439 445 … … 508 514 spinlock_initialize(&cache->lock, "cachelock"); 509 515 if (! (cache->flags & SLAB_CACHE_NOMAGAZINE)) { 510 for (i=0; i< config.cpu_count; i++) 516 for (i=0; i< config.cpu_count; i++) { 517 memsetb((__address)&cache->mag_cache[i], 518 sizeof(cache->mag_cache[i]), 0); 511 519 spinlock_initialize(&cache->mag_cache[i].lock, 512 520 "cpucachelock"); 521 } 513 522 } 514 523 … … 645 654 ipl = interrupts_disable(); 646 655 647 if (!(cache->flags & SLAB_CACHE_NOMAGAZINE) && CPU)656 if (!(cache->flags & SLAB_CACHE_NOMAGAZINE)) 648 657 result = magazine_obj_get(cache); 649 658 … … 670 679 671 680 if ((cache->flags & SLAB_CACHE_NOMAGAZINE) \ 672 || !CPU \673 681 || magazine_obj_put(cache, obj)) { 674 675 682 spinlock_lock(&cache->lock); 676 683 slab_obj_destroy(cache, obj, slab); -
test/mm/slab1/test.c
rc352c2e r81e52f2a 46 46 printf("Creating cache, object size: %d.\n", size); 47 47 cache = slab_cache_create("test_cache", size, 0, NULL, NULL, 48 SLAB_CACHE_NOMAGAZINE); 49 slab_print_list(); 50 48 SLAB_CACHE_NOMAGAZINE); 51 49 printf("Allocating %d items...", count); 52 50 for (i=0; i < count; i++) { … … 68 66 printf("done.\n"); 69 67 70 slab_print_list();71 68 printf("Freeing %d items...", count/2); 72 69 for (i=count-1; i >= count/2; i--) { … … 129 126 } 130 127 printf("Thread #%d finished\n", THREAD->tid); 131 slab_print_list();132 128 semaphore_up(&thr_sem); 133 129 }
Note:
See TracChangeset
for help on using the changeset viewer.