Changeset 7a0359b in mainline for kernel/generic/src/mm
- Timestamp:
- 2010-07-02T15:42:19Z (15 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- bbfdf62
- Parents:
- e3ee9b9
- Location:
- kernel/generic/src/mm
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/mm/as.c
re3ee9b9 r7a0359b 116 116 as_t *AS_KERNEL = NULL; 117 117 118 static int as_constructor(void *obj, unsigned int flags)118 NO_TRACE static int as_constructor(void *obj, unsigned int flags) 119 119 { 120 120 as_t *as = (as_t *) obj; … … 128 128 } 129 129 130 static size_t as_destructor(void *obj)130 NO_TRACE static size_t as_destructor(void *obj) 131 131 { 132 132 as_t *as = (as_t *) obj; … … 274 274 * 275 275 */ 276 void as_hold(as_t *as)276 NO_TRACE void as_hold(as_t *as) 277 277 { 278 278 atomic_inc(&as->refcount); … … 287 287 * 288 288 */ 289 void as_release(as_t *as)289 NO_TRACE void as_release(as_t *as) 290 290 { 291 291 if (atomic_predec(&as->refcount) == 0) … … 303 303 * 304 304 */ 305 static bool check_area_conflicts(as_t *as, uintptr_t va, size_t size,305 NO_TRACE static bool check_area_conflicts(as_t *as, uintptr_t va, size_t size, 306 306 as_area_t *avoid_area) 307 307 { … … 463 463 * 464 464 */ 465 static as_area_t *find_area_and_lock(as_t *as, uintptr_t va)465 NO_TRACE static as_area_t *find_area_and_lock(as_t *as, uintptr_t va) 466 466 { 467 467 ASSERT(mutex_locked(&as->lock)); … … 717 717 * 718 718 */ 719 static void sh_info_remove_reference(share_info_t *sh_info)719 NO_TRACE static void sh_info_remove_reference(share_info_t *sh_info) 720 720 { 721 721 bool dealloc = false; … … 1010 1010 * 1011 1011 */ 1012 static unsigned int area_flags_to_page_flags(unsigned int aflags)1012 NO_TRACE static unsigned int area_flags_to_page_flags(unsigned int aflags) 1013 1013 { 1014 1014 unsigned int flags = PAGE_USER | PAGE_PRESENT; -
kernel/generic/src/mm/frame.c
re3ee9b9 r7a0359b 75 75 /********************/ 76 76 77 static inline size_t frame_index(zone_t *zone, frame_t *frame)77 NO_TRACE static inline size_t frame_index(zone_t *zone, frame_t *frame) 78 78 { 79 79 return (size_t) (frame - zone->frames); 80 80 } 81 81 82 static inline size_t frame_index_abs(zone_t *zone, frame_t *frame)82 NO_TRACE static inline size_t frame_index_abs(zone_t *zone, frame_t *frame) 83 83 { 84 84 return (size_t) (frame - zone->frames) + zone->base; 85 85 } 86 86 87 static inline bool frame_index_valid(zone_t *zone, size_t index)87 NO_TRACE static inline bool frame_index_valid(zone_t *zone, size_t index) 88 88 { 89 89 return (index < zone->count); 90 90 } 91 91 92 static inline size_t make_frame_index(zone_t *zone, frame_t *frame)92 NO_TRACE static inline size_t make_frame_index(zone_t *zone, frame_t *frame) 93 93 { 94 94 return (frame - zone->frames); … … 100 100 * 101 101 */ 102 static void frame_initialize(frame_t *frame)102 NO_TRACE static void frame_initialize(frame_t *frame) 103 103 { 104 104 frame->refcount = 1; … … 121 121 * 122 122 */ 123 static size_t zones_insert_zone(pfn_t base, size_t count)123 NO_TRACE static size_t zones_insert_zone(pfn_t base, size_t count) 124 124 { 125 125 if (zones.count + 1 == ZONES_MAX) { … … 162 162 */ 163 163 #ifdef CONFIG_DEBUG 164 static size_t total_frames_free(void)164 NO_TRACE static size_t total_frames_free(void) 165 165 { 166 166 size_t total = 0; … … 206 206 207 207 /** @return True if zone can allocate specified order */ 208 static bool zone_can_alloc(zone_t *zone, uint8_t order)208 NO_TRACE static bool zone_can_alloc(zone_t *zone, uint8_t order) 209 209 { 210 210 return (zone_flags_available(zone->flags) … … 222 222 * 223 223 */ 224 static size_t find_free_zone(uint8_t order, zone_flags_t flags, size_t hint) 224 NO_TRACE static size_t find_free_zone(uint8_t order, zone_flags_t flags, 225 size_t hint) 225 226 { 226 227 if (hint >= zones.count) … … 262 263 * 263 264 */ 264 static link_t *zone_buddy_find_block(buddy_system_t *buddy, link_t *child,265 uint8_t order)265 NO_TRACE static link_t *zone_buddy_find_block(buddy_system_t *buddy, 266 link_t *child, uint8_t order) 266 267 { 267 268 frame_t *frame = list_get_instance(child, frame_t, buddy_link); … … 285 286 * 286 287 */ 287 static link_t *zone_buddy_find_buddy(buddy_system_t *buddy, link_t *block) 288 NO_TRACE static link_t *zone_buddy_find_buddy(buddy_system_t *buddy, 289 link_t *block) 288 290 { 289 291 frame_t *frame = list_get_instance(block, frame_t, buddy_link); … … 321 323 * 322 324 */ 323 static link_t *zone_buddy_bisect(buddy_system_t *buddy, link_t *block)325 NO_TRACE static link_t *zone_buddy_bisect(buddy_system_t *buddy, link_t *block) 324 326 { 325 327 frame_t *frame_l = list_get_instance(block, frame_t, buddy_link); … … 339 341 * 340 342 */ 341 static link_t *zone_buddy_coalesce(buddy_system_t *buddy, link_t *block_1,342 link_t *block_ 2)343 NO_TRACE static link_t *zone_buddy_coalesce(buddy_system_t *buddy, 344 link_t *block_1, link_t *block_2) 343 345 { 344 346 frame_t *frame1 = list_get_instance(block_1, frame_t, buddy_link); … … 355 357 * 356 358 */ 357 static void zone_buddy_set_order(buddy_system_t *buddy, link_t *block,359 NO_TRACE static void zone_buddy_set_order(buddy_system_t *buddy, link_t *block, 358 360 uint8_t order) 359 361 { … … 369 371 * 370 372 */ 371 static uint8_t zone_buddy_get_order(buddy_system_t *buddy, link_t *block) 373 NO_TRACE static uint8_t zone_buddy_get_order(buddy_system_t *buddy, 374 link_t *block) 372 375 { 373 376 return list_get_instance(block, frame_t, buddy_link)->buddy_order; … … 380 383 * 381 384 */ 382 static void zone_buddy_mark_busy(buddy_system_t *buddy, link_t *block)385 NO_TRACE static void zone_buddy_mark_busy(buddy_system_t *buddy, link_t *block) 383 386 { 384 387 list_get_instance(block, frame_t, buddy_link)->refcount = 1; … … 389 392 * @param buddy Buddy system. 390 393 * @param block Buddy system block. 391 */ 392 static void zone_buddy_mark_available(buddy_system_t *buddy, link_t *block) 394 * 395 */ 396 NO_TRACE static void zone_buddy_mark_available(buddy_system_t *buddy, 397 link_t *block) 393 398 { 394 399 list_get_instance(block, frame_t, buddy_link)->refcount = 0; … … 421 426 * 422 427 */ 423 static pfn_t zone_frame_alloc(zone_t *zone, uint8_t order)428 NO_TRACE static pfn_t zone_frame_alloc(zone_t *zone, uint8_t order) 424 429 { 425 430 ASSERT(zone_flags_available(zone->flags)); … … 449 454 * 450 455 */ 451 static void zone_frame_free(zone_t *zone, size_t frame_idx)456 NO_TRACE static void zone_frame_free(zone_t *zone, size_t frame_idx) 452 457 { 453 458 ASSERT(zone_flags_available(zone->flags)); … … 470 475 471 476 /** Return frame from zone. */ 472 static frame_t *zone_get_frame(zone_t *zone, size_t frame_idx)477 NO_TRACE static frame_t *zone_get_frame(zone_t *zone, size_t frame_idx) 473 478 { 474 479 ASSERT(frame_idx < zone->count); … … 477 482 478 483 /** Mark frame in zone unavailable to allocation. */ 479 static void zone_mark_unavailable(zone_t *zone, size_t frame_idx)484 NO_TRACE static void zone_mark_unavailable(zone_t *zone, size_t frame_idx) 480 485 { 481 486 ASSERT(zone_flags_available(zone->flags)); … … 506 511 * 507 512 */ 508 static void zone_merge_internal(size_t z1, size_t z2, zone_t *old_z1, buddy_system_t *buddy) 513 NO_TRACE static void zone_merge_internal(size_t z1, size_t z2, zone_t *old_z1, 514 buddy_system_t *buddy) 509 515 { 510 516 ASSERT(zone_flags_available(zones.info[z1].flags)); … … 602 608 * 603 609 */ 604 static void return_config_frames(size_t znum, pfn_t pfn, size_t count)610 NO_TRACE static void return_config_frames(size_t znum, pfn_t pfn, size_t count) 605 611 { 606 612 ASSERT(zone_flags_available(zones.info[znum].flags)); … … 637 643 * 638 644 */ 639 static void zone_reduce_region(size_t znum, pfn_t frame_idx, size_t count) 645 NO_TRACE static void zone_reduce_region(size_t znum, pfn_t frame_idx, 646 size_t count) 640 647 { 641 648 ASSERT(zone_flags_available(zones.info[znum].flags)); … … 777 784 * 778 785 */ 779 static void zone_construct(zone_t *zone, buddy_system_t *buddy, pfn_t start,780 size_t count, zone_flags_t flags)786 NO_TRACE static void zone_construct(zone_t *zone, buddy_system_t *buddy, 787 pfn_t start, size_t count, zone_flags_t flags) 781 788 { 782 789 zone->base = start; -
kernel/generic/src/mm/slab.c
re3ee9b9 r7a0359b 177 177 * 178 178 */ 179 static slab_t *slab_space_alloc(slab_cache_t *cache, unsigned int flags) 179 NO_TRACE static slab_t *slab_space_alloc(slab_cache_t *cache, 180 unsigned int flags) 180 181 { 181 182 … … 224 225 * 225 226 */ 226 static size_t slab_space_free(slab_cache_t *cache, slab_t *slab)227 NO_TRACE static size_t slab_space_free(slab_cache_t *cache, slab_t *slab) 227 228 { 228 229 frame_free(KA2PA(slab->start)); … … 236 237 237 238 /** Map object to slab structure */ 238 static slab_t *obj2slab(void *obj)239 NO_TRACE static slab_t *obj2slab(void *obj) 239 240 { 240 241 return (slab_t *) frame_get_parent(ADDR2PFN(KA2PA(obj)), 0); … … 252 253 * 253 254 */ 254 static size_t slab_obj_destroy(slab_cache_t *cache, void *obj, slab_t *slab) 255 NO_TRACE static size_t slab_obj_destroy(slab_cache_t *cache, void *obj, 256 slab_t *slab) 255 257 { 256 258 if (!slab) … … 293 295 * 294 296 */ 295 static void *slab_obj_create(slab_cache_t *cache,int flags)297 NO_TRACE static void *slab_obj_create(slab_cache_t *cache, unsigned int flags) 296 298 { 297 299 spinlock_lock(&cache->slablock); … … 349 351 * 350 352 */ 351 static slab_magazine_t *get_mag_from_cache(slab_cache_t *cache, bool first) 353 NO_TRACE static slab_magazine_t *get_mag_from_cache(slab_cache_t *cache, 354 bool first) 352 355 { 353 356 slab_magazine_t *mag = NULL; … … 373 376 * 374 377 */ 375 static void put_mag_to_cache(slab_cache_t *cache, slab_magazine_t *mag) 378 NO_TRACE static void put_mag_to_cache(slab_cache_t *cache, 379 slab_magazine_t *mag) 376 380 { 377 381 spinlock_lock(&cache->maglock); … … 388 392 * 389 393 */ 390 static size_t magazine_destroy(slab_cache_t *cache, slab_magazine_t *mag) 394 NO_TRACE static size_t magazine_destroy(slab_cache_t *cache, 395 slab_magazine_t *mag) 391 396 { 392 397 size_t i; … … 406 411 * 407 412 */ 408 static slab_magazine_t *get_full_current_mag(slab_cache_t *cache)413 NO_TRACE static slab_magazine_t *get_full_current_mag(slab_cache_t *cache) 409 414 { 410 415 slab_magazine_t *cmag = cache->mag_cache[CPU->id].current; 411 416 slab_magazine_t *lastmag = cache->mag_cache[CPU->id].last; 412 417 413 418 ASSERT(spinlock_locked(&cache->mag_cache[CPU->id].lock)); 414 419 … … 443 448 * 444 449 */ 445 static void *magazine_obj_get(slab_cache_t *cache)450 NO_TRACE static void *magazine_obj_get(slab_cache_t *cache) 446 451 { 447 452 if (!CPU) … … 473 478 * 474 479 */ 475 static slab_magazine_t *make_empty_current_mag(slab_cache_t *cache)480 NO_TRACE static slab_magazine_t *make_empty_current_mag(slab_cache_t *cache) 476 481 { 477 482 slab_magazine_t *cmag = cache->mag_cache[CPU->id].current; … … 479 484 480 485 ASSERT(spinlock_locked(&cache->mag_cache[CPU->id].lock)); 481 486 482 487 if (cmag) { 483 488 if (cmag->busy < cmag->size) … … 523 528 * 524 529 */ 525 static int magazine_obj_put(slab_cache_t *cache, void *obj)530 NO_TRACE static int magazine_obj_put(slab_cache_t *cache, void *obj) 526 531 { 527 532 if (!CPU) … … 552 557 * 553 558 */ 554 static size_t comp_objects(slab_cache_t *cache)559 NO_TRACE static size_t comp_objects(slab_cache_t *cache) 555 560 { 556 561 if (cache->flags & SLAB_CACHE_SLINSIDE) … … 564 569 * 565 570 */ 566 static size_t badness(slab_cache_t *cache)571 NO_TRACE static size_t badness(slab_cache_t *cache) 567 572 { 568 573 size_t objects = comp_objects(cache); … … 578 583 * 579 584 */ 580 static bool make_magcache(slab_cache_t *cache)585 NO_TRACE static bool make_magcache(slab_cache_t *cache) 581 586 { 582 587 ASSERT(_slab_initialized >= 2); … … 600 605 * 601 606 */ 602 static void _slab_cache_create(slab_cache_t *cache, const char *name,607 NO_TRACE static void _slab_cache_create(slab_cache_t *cache, const char *name, 603 608 size_t size, size_t align, int (*constructor)(void *obj, 604 609 unsigned int kmflag), size_t (*destructor)(void *obj), unsigned int flags) … … 676 681 * 677 682 */ 678 static size_t _slab_reclaim(slab_cache_t *cache, unsigned int flags)683 NO_TRACE static size_t _slab_reclaim(slab_cache_t *cache, unsigned int flags) 679 684 { 680 685 if (cache->flags & SLAB_CACHE_NOMAGAZINE) … … 781 786 * 782 787 */ 783 static void _slab_free(slab_cache_t *cache, void *obj, slab_t *slab)788 NO_TRACE static void _slab_free(slab_cache_t *cache, void *obj, slab_t *slab) 784 789 { 785 790 ipl_t ipl = interrupts_disable();
Note:
See TracChangeset
for help on using the changeset viewer.