Lines Matching refs:df
123 struct dpcpu_free *df; in dpcpu_startup() local
125 df = malloc(sizeof(*df), M_PCPU, M_WAITOK | M_ZERO); in dpcpu_startup()
126 df->df_start = (uintptr_t)&DPCPU_NAME(modspace); in dpcpu_startup()
127 df->df_len = DPCPU_MODMIN; in dpcpu_startup()
128 TAILQ_INSERT_HEAD(&dpcpu_head, df, df_link); in dpcpu_startup()
167 struct dpcpu_free *df; in dpcpu_alloc() local
173 TAILQ_FOREACH(df, &dpcpu_head, df_link) { in dpcpu_alloc()
174 if (df->df_len < size) in dpcpu_alloc()
176 if (df->df_len == size) { in dpcpu_alloc()
177 s = (void *)df->df_start; in dpcpu_alloc()
178 TAILQ_REMOVE(&dpcpu_head, df, df_link); in dpcpu_alloc()
179 free(df, M_PCPU); in dpcpu_alloc()
182 s = (void *)df->df_start; in dpcpu_alloc()
183 df->df_len -= size; in dpcpu_alloc()
184 df->df_start = df->df_start + size; in dpcpu_alloc()
198 struct dpcpu_free *df; in dpcpu_free() local
211 TAILQ_FOREACH(df, &dpcpu_head, df_link) { in dpcpu_free()
212 if (df->df_start > end) in dpcpu_free()
218 if (df->df_start + df->df_len == start) { in dpcpu_free()
219 df->df_len += size; in dpcpu_free()
220 dn = TAILQ_NEXT(df, df_link); in dpcpu_free()
221 if (df->df_start + df->df_len == dn->df_start) { in dpcpu_free()
222 df->df_len += dn->df_len; in dpcpu_free()
229 if (df->df_start == end) { in dpcpu_free()
230 df->df_start = start; in dpcpu_free()
231 df->df_len += size; in dpcpu_free()
236 dn = malloc(sizeof(*df), M_PCPU, M_WAITOK | M_ZERO); in dpcpu_free()
239 if (df) in dpcpu_free()
240 TAILQ_INSERT_BEFORE(df, dn, df_link); in dpcpu_free()