Lines Matching defs:magazine

105 	DepotMagazine* magazine = (DepotMagazine*)slab_internal_alloc(
108 if (magazine) {
109 magazine->next = NULL;
110 magazine->current_round = 0;
111 magazine->round_count = depot->magazine_capacity;
114 return magazine;
119 free_magazine(DepotMagazine* magazine, uint32 flags)
121 slab_internal_free(magazine, flags);
126 empty_magazine(object_depot* depot, DepotMagazine* magazine, uint32 flags)
128 for (uint16 i = 0; i < magazine->current_round; i++)
129 depot->return_object(depot, depot->cookie, magazine->rounds[i], flags);
130 free_magazine(magazine, flags);
135 exchange_with_full(object_depot* depot, DepotMagazine*& magazine)
137 ASSERT(magazine->IsEmpty());
147 _push(depot->empty, magazine);
148 magazine = _pop(depot->full);
154 exchange_with_empty(object_depot* depot, DepotMagazine*& magazine,
157 ASSERT(magazine == NULL || magazine->IsFull());
166 if (magazine != NULL) {
168 _push(depot->full, magazine);
172 freeMagazine = magazine;
175 magazine = _pop(depot->empty);
181 push_empty_magazine(object_depot* depot, DepotMagazine* magazine)
185 _push(depot->empty, magazine);
256 // In a nutshell, we try to get an object from the loaded magazine
257 // if it's not empty, or from the previous magazine if it's full
258 // and finally from the Slab if the magazine depot has no full magazines.
285 // We try to add the object to the loaded magazine if we have one
287 // the magazine depot doesn't provide us with a new empty magazine
300 // Free the magazine that didn't have space in the list
312 // allocate a new empty magazine
316 DepotMagazine* magazine = alloc_magazine(depot, flags);
317 if (magazine == NULL) {
325 push_empty_magazine(depot, magazine);
401 for (DepotMagazine* magazine = depot->full; magazine != NULL;
402 magazine = magazine->next) {
403 if (magazine->ContainsObject(object))
454 DepotMagazine* magazine = (DepotMagazine*)parse_expression(args[1]);
456 kprintf("next: %p\n", magazine->next);
457 kprintf("current_round: %u\n", magazine->current_round);
458 kprintf("round_count: %u\n", magazine->round_count);
460 for (uint16 i = 0; i < magazine->current_round; i++)
461 kprintf(" [%i] %p\n", i, magazine->rounds[i]);