1*c43cad87SWarner Losh #include "jemalloc/internal/jemalloc_preamble.h" 2*c43cad87SWarner Losh #include "jemalloc/internal/jemalloc_internal_includes.h" 3*c43cad87SWarner Losh 4*c43cad87SWarner Losh size_t 5*c43cad87SWarner Losh pai_alloc_batch_default(tsdn_t *tsdn, pai_t *self, size_t size, size_t nallocs, 6*c43cad87SWarner Losh edata_list_active_t *results, bool *deferred_work_generated) { 7*c43cad87SWarner Losh for (size_t i = 0; i < nallocs; i++) { 8*c43cad87SWarner Losh bool deferred_by_alloc = false; 9*c43cad87SWarner Losh edata_t *edata = pai_alloc(tsdn, self, size, PAGE, 10*c43cad87SWarner Losh /* zero */ false, /* guarded */ false, 11*c43cad87SWarner Losh /* frequent_reuse */ false, &deferred_by_alloc); 12*c43cad87SWarner Losh *deferred_work_generated |= deferred_by_alloc; 13*c43cad87SWarner Losh if (edata == NULL) { 14*c43cad87SWarner Losh return i; 15*c43cad87SWarner Losh } 16*c43cad87SWarner Losh edata_list_active_append(results, edata); 17*c43cad87SWarner Losh } 18*c43cad87SWarner Losh return nallocs; 19*c43cad87SWarner Losh } 20*c43cad87SWarner Losh 21*c43cad87SWarner Losh void 22*c43cad87SWarner Losh pai_dalloc_batch_default(tsdn_t *tsdn, pai_t *self, 23*c43cad87SWarner Losh edata_list_active_t *list, bool *deferred_work_generated) { 24*c43cad87SWarner Losh edata_t *edata; 25*c43cad87SWarner Losh while ((edata = edata_list_active_first(list)) != NULL) { 26*c43cad87SWarner Losh bool deferred_by_dalloc = false; 27*c43cad87SWarner Losh edata_list_active_remove(list, edata); 28*c43cad87SWarner Losh pai_dalloc(tsdn, self, edata, &deferred_by_dalloc); 29*c43cad87SWarner Losh *deferred_work_generated |= deferred_by_dalloc; 30*c43cad87SWarner Losh } 31*c43cad87SWarner Losh } 32