Lines Matching refs:buddy
10 * to what its name may suggest, zbud is not a buddy allocator, but rather an
19 * single memory page called a "zbud page". The first buddy is "left
20 * justified" at the beginning of the zbud page, and the last buddy is "right
22 * buddy is freed, the freed buddy space, coalesced with whatever slack space
80 * @unbuddied: array of lists tracking zbud pages that only contain one buddy;
86 * added buddy.
110 * @buddy: links the zbud page into the unbuddied/buddied lists in the pool
112 * @first_chunks: the size of the first buddy in chunks, 0 if free
113 * @last_chunks: the size of the last buddy in chunks, 0 if free
116 struct list_head buddy;
225 enum buddy {
245 INIT_LIST_HEAD(&zhdr->buddy);
258 * Encodes the handle of a particular buddy within a zbud page
261 static unsigned long encode_handle(struct zbud_header *zhdr, enum buddy bud)
360 enum buddy bud;
374 struct zbud_header, buddy);
375 list_del(&zhdr->buddy);
403 list_add(&zhdr->buddy, &pool->unbuddied[freechunks]);
406 list_add(&zhdr->buddy, &pool->buddied);
438 /* If first buddy, handle will be page aligned */
450 /* Remove from existing buddy list */
451 list_del(&zhdr->buddy);
461 list_add(&zhdr->buddy, &pool->unbuddied[freechunks]);
517 list_del(&zhdr->buddy);
559 list_add(&zhdr->buddy, &pool->unbuddied[freechunks]);
562 list_add(&zhdr->buddy, &pool->buddied);