page 64 core/ngx_slab.c static void ngx_slab_free_pages(ngx_slab_pool_t *pool, ngx_slab_page_t *page, page 161 core/ngx_slab.c ngx_slab_page_t *page, *prev, *slots; page 168 core/ngx_slab.c page = ngx_slab_alloc_pages(pool, (size + ngx_pagesize - 1) page 170 core/ngx_slab.c if (page) { page 171 core/ngx_slab.c p = (page - pool->pages) << ngx_pagesize_shift; page 196 core/ngx_slab.c page = slots[slot].next; page 198 core/ngx_slab.c if (page->next != page) { page 203 core/ngx_slab.c p = (page - pool->pages) << ngx_pagesize_shift; page 233 core/ngx_slab.c (page->prev & ~NGX_SLAB_PAGE_MASK); page 234 core/ngx_slab.c prev->next = page->next; page 235 core/ngx_slab.c page->next->prev = page->prev; page 237 core/ngx_slab.c page->next = NULL; page 238 core/ngx_slab.c page->prev = NGX_SLAB_SMALL; page 248 core/ngx_slab.c page = page->next; page 250 core/ngx_slab.c } while (page); page 255 core/ngx_slab.c if (page->slab != NGX_SLAB_BUSY) { page 258 core/ngx_slab.c if ((page->slab & m)) { page 262 core/ngx_slab.c page->slab |= m; page 264 core/ngx_slab.c if (page->slab == NGX_SLAB_BUSY) { page 266 core/ngx_slab.c (page->prev & ~NGX_SLAB_PAGE_MASK); page 267 core/ngx_slab.c prev->next = page->next; page 268 core/ngx_slab.c page->next->prev = page->prev; page 270 core/ngx_slab.c page->next = NULL; page 271 core/ngx_slab.c page->prev = NGX_SLAB_EXACT; page 274 core/ngx_slab.c p = (page - pool->pages) << ngx_pagesize_shift; page 282 core/ngx_slab.c page = page->next; page 284 core/ngx_slab.c } while (page); page 288 core/ngx_slab.c n = ngx_pagesize_shift - (page->slab & NGX_SLAB_SHIFT_MASK); page 294 core/ngx_slab.c if ((page->slab & NGX_SLAB_MAP_MASK) != mask) { page 300 core/ngx_slab.c if ((page->slab & m)) { page 304 core/ngx_slab.c page->slab |= m; page 306 core/ngx_slab.c if ((page->slab & NGX_SLAB_MAP_MASK) == mask) { page 308 core/ngx_slab.c (page->prev & ~NGX_SLAB_PAGE_MASK); page 309 core/ngx_slab.c prev->next = page->next; page 310 core/ngx_slab.c page->next->prev = page->prev; page 312 core/ngx_slab.c page->next = NULL; page 313 core/ngx_slab.c page->prev = NGX_SLAB_BIG; page 316 core/ngx_slab.c p = (page - pool->pages) << ngx_pagesize_shift; page 324 core/ngx_slab.c page = page->next; page 326 core/ngx_slab.c } while (page); page 330 core/ngx_slab.c page = ngx_slab_alloc_pages(pool, 1); page 332 core/ngx_slab.c if (page) { page 334 core/ngx_slab.c p = (page - pool->pages) << ngx_pagesize_shift; page 352 core/ngx_slab.c page->slab = shift; page 353 core/ngx_slab.c page->next = &slots[slot]; page 354 core/ngx_slab.c page->prev = (uintptr_t) &slots[slot] | NGX_SLAB_SMALL; page 356 core/ngx_slab.c slots[slot].next = page; page 358 core/ngx_slab.c p = ((page - pool->pages) << ngx_pagesize_shift) + s * n; page 365 core/ngx_slab.c page->slab = 1; page 366 core/ngx_slab.c page->next = &slots[slot]; page 367 core/ngx_slab.c page->prev = (uintptr_t) &slots[slot] | NGX_SLAB_EXACT; page 369 core/ngx_slab.c slots[slot].next = page; page 371 core/ngx_slab.c p = (page - pool->pages) << ngx_pagesize_shift; page 378 core/ngx_slab.c page->slab = ((uintptr_t) 1 << NGX_SLAB_MAP_SHIFT) | shift; page 379 core/ngx_slab.c page->next = &slots[slot]; page 380 core/ngx_slab.c page->prev = (uintptr_t) &slots[slot] | NGX_SLAB_BIG; page 382 core/ngx_slab.c slots[slot].next = page; page 384 core/ngx_slab.c p = (page - pool->pages) << ngx_pagesize_shift; page 418 core/ngx_slab.c ngx_slab_page_t *slots, *page; page 428 core/ngx_slab.c page = &pool->pages[n]; page 429 core/ngx_slab.c slab = page->slab; page 430 core/ngx_slab.c type = page->prev & NGX_SLAB_PAGE_MASK; page 450 core/ngx_slab.c if (page->next == NULL) { page 455 core/ngx_slab.c page->next = slots[slot].next; page 456 core/ngx_slab.c slots[slot].next = page; page 458 core/ngx_slab.c page->prev = (uintptr_t) &slots[slot] | NGX_SLAB_SMALL; page 459 core/ngx_slab.c page->next->prev = (uintptr_t) page | NGX_SLAB_SMALL; page 482 core/ngx_slab.c ngx_slab_free_pages(pool, page, 1); page 505 core/ngx_slab.c page->next = slots[slot].next; page 506 core/ngx_slab.c slots[slot].next = page; page 508 core/ngx_slab.c page->prev = (uintptr_t) &slots[slot] | NGX_SLAB_EXACT; page 509 core/ngx_slab.c page->next->prev = (uintptr_t) page | NGX_SLAB_EXACT; page 512 core/ngx_slab.c page->slab &= ~m; page 514 core/ngx_slab.c if (page->slab) { page 518 core/ngx_slab.c ngx_slab_free_pages(pool, page, 1); page 539 core/ngx_slab.c if (page->next == NULL) { page 544 core/ngx_slab.c page->next = slots[slot].next; page 545 core/ngx_slab.c slots[slot].next = page; page 547 core/ngx_slab.c page->prev = (uintptr_t) &slots[slot] | NGX_SLAB_BIG; page 548 core/ngx_slab.c page->next->prev = (uintptr_t) page | NGX_SLAB_BIG; page 551 core/ngx_slab.c page->slab &= ~m; page 553 core/ngx_slab.c if (page->slab & NGX_SLAB_MAP_MASK) { page 557 core/ngx_slab.c ngx_slab_free_pages(pool, page, 1); page 623 core/ngx_slab.c ngx_slab_page_t *page, *p; page 625 core/ngx_slab.c for (page = pool->free.next; page != &pool->free; page = page->next) { page 627 core/ngx_slab.c if (page->slab >= pages) { page 629 core/ngx_slab.c if (page->slab > pages) { page 630 core/ngx_slab.c page[pages].slab = page->slab - pages; page 631 core/ngx_slab.c page[pages].next = page->next; page 632 core/ngx_slab.c page[pages].prev = page->prev; page 634 core/ngx_slab.c p = (ngx_slab_page_t *) page->prev; page 635 core/ngx_slab.c p->next = &page[pages]; page 636 core/ngx_slab.c page->next->prev = (uintptr_t) &page[pages]; page 639 core/ngx_slab.c p = (ngx_slab_page_t *) page->prev; page 640 core/ngx_slab.c p->next = page->next; page 641 core/ngx_slab.c page->next->prev = page->prev; page 644 core/ngx_slab.c page->slab = pages | NGX_SLAB_PAGE_START; page 645 core/ngx_slab.c page->next = NULL; page 646 core/ngx_slab.c page->prev = NGX_SLAB_PAGE; page 649 core/ngx_slab.c return page; page 652 core/ngx_slab.c for (p = page + 1; pages; pages--) { page 659 core/ngx_slab.c return page; page 670 core/ngx_slab.c ngx_slab_free_pages(ngx_slab_pool_t *pool, ngx_slab_page_t *page, page 675 core/ngx_slab.c page->slab = pages--; page 678 core/ngx_slab.c ngx_memzero(&page[1], pages * sizeof(ngx_slab_page_t)); page 681 core/ngx_slab.c if (page->next) { page 682 core/ngx_slab.c prev = (ngx_slab_page_t *) (page->prev & ~NGX_SLAB_PAGE_MASK); page 683 core/ngx_slab.c prev->next = page->next; page 684 core/ngx_slab.c page->next->prev = page->prev; page 687 core/ngx_slab.c page->prev = (uintptr_t) &pool->free; page 688 core/ngx_slab.c page->next = pool->free.next; page 690 core/ngx_slab.c page->next->prev = (uintptr_t) page; page 692 core/ngx_slab.c pool->free.next = page;