Lines Matching defs:sf
285 struct sf_buf *sf;
295 LIST_FOREACH(sf, hash_list, list_entry) {
296 if (sf->m == m) {
297 sf->ref_count++;
298 if (sf->ref_count == 1) {
299 TAILQ_REMOVE(&sf_buf_freelist, sf, free_entry);
307 while ((sf = TAILQ_FIRST(&sf_buf_freelist)) == NULL) {
324 TAILQ_REMOVE(&sf_buf_freelist, sf, free_entry);
325 if (sf->m != NULL)
326 LIST_REMOVE(sf, list_entry);
328 LIST_INSERT_HEAD(hash_list, sf, list_entry);
329 sf->ref_count = 1;
330 sf->m = m;
333 pmap_qenter(sf->kva, &sf->m, 1);
336 return (sf);
348 sf_buf_free(struct sf_buf *sf)
354 sf->ref_count--;
355 if (sf->ref_count == 0) {
356 TAILQ_INSERT_TAIL(&sf_buf_freelist, sf, free_entry);