Lines Matching refs:iter

242 static struct msc_block_desc *msc_iter_bdesc(struct msc_iter *iter)  in msc_iter_bdesc()  argument
244 return iter->win->block[iter->block].bdesc; in msc_iter_bdesc()
247 static void msc_iter_init(struct msc_iter *iter) in msc_iter_init() argument
249 memset(iter, 0, sizeof(*iter)); in msc_iter_init()
250 iter->start_block = -1; in msc_iter_init()
251 iter->block = -1; in msc_iter_init()
256 struct msc_iter *iter; in msc_iter_install() local
258 iter = kzalloc(sizeof(*iter), GFP_KERNEL); in msc_iter_install()
259 if (!iter) in msc_iter_install()
262 msc_iter_init(iter); in msc_iter_install()
263 iter->msc = msc; in msc_iter_install()
266 list_add_tail(&iter->entry, &msc->iter_list); in msc_iter_install()
269 return iter; in msc_iter_install()
272 static void msc_iter_remove(struct msc_iter *iter, struct msc *msc) in msc_iter_remove() argument
275 list_del(&iter->entry); in msc_iter_remove()
278 kfree(iter); in msc_iter_remove()
281 static void msc_iter_block_start(struct msc_iter *iter) in msc_iter_block_start() argument
283 if (iter->start_block != -1) in msc_iter_block_start()
286 iter->start_block = msc_win_oldest_block(iter->win); in msc_iter_block_start()
287 iter->block = iter->start_block; in msc_iter_block_start()
288 iter->wrap_count = 0; in msc_iter_block_start()
294 if (msc_block_wrapped(msc_iter_bdesc(iter))) in msc_iter_block_start()
295 iter->wrap_count = 2; in msc_iter_block_start()
299 static int msc_iter_win_start(struct msc_iter *iter, struct msc *msc) in msc_iter_win_start() argument
302 if (iter->start_win) in msc_iter_win_start()
305 iter->start_win = msc_oldest_window(msc); in msc_iter_win_start()
306 if (!iter->start_win) in msc_iter_win_start()
309 iter->win = iter->start_win; in msc_iter_win_start()
310 iter->start_block = -1; in msc_iter_win_start()
312 msc_iter_block_start(iter); in msc_iter_win_start()
317 static int msc_iter_win_advance(struct msc_iter *iter) in msc_iter_win_advance() argument
319 iter->win = msc_next_window(iter->win); in msc_iter_win_advance()
320 iter->start_block = -1; in msc_iter_win_advance()
322 if (iter->win == iter->start_win) { in msc_iter_win_advance()
323 iter->eof++; in msc_iter_win_advance()
327 msc_iter_block_start(iter); in msc_iter_win_advance()
332 static int msc_iter_block_advance(struct msc_iter *iter) in msc_iter_block_advance() argument
334 iter->block_off = 0; in msc_iter_block_advance()
337 if (iter->wrap_count && iter->block == iter->start_block) { in msc_iter_block_advance()
338 iter->wrap_count--; in msc_iter_block_advance()
339 if (!iter->wrap_count) in msc_iter_block_advance()
341 return msc_iter_win_advance(iter); in msc_iter_block_advance()
345 if (!iter->wrap_count && msc_block_last_written(msc_iter_bdesc(iter))) in msc_iter_block_advance()
347 return msc_iter_win_advance(iter); in msc_iter_block_advance()
350 if (++iter->block == iter->win->nr_blocks) in msc_iter_block_advance()
351 iter->block = 0; in msc_iter_block_advance()
354 if (!iter->wrap_count && iter->block == iter->start_block) in msc_iter_block_advance()
355 return msc_iter_win_advance(iter); in msc_iter_block_advance()
377 msc_buffer_iterate(struct msc_iter *iter, size_t size, void *data, in msc_buffer_iterate() argument
380 struct msc *msc = iter->msc; in msc_buffer_iterate()
384 if (iter->eof) in msc_buffer_iterate()
388 if (msc_iter_win_start(iter, msc)) in msc_buffer_iterate()
392 unsigned long data_bytes = msc_data_sz(msc_iter_bdesc(iter)); in msc_buffer_iterate()
393 void *src = (void *)msc_iter_bdesc(iter) + MSC_BDESC; in msc_buffer_iterate()
411 if (iter->block == iter->start_block && iter->wrap_count) { in msc_buffer_iterate()
419 tocopy -= iter->block_off; in msc_buffer_iterate()
420 src += iter->block_off; in msc_buffer_iterate()
434 iter->block_off += copied; in msc_buffer_iterate()
435 iter->offset += copied; in msc_buffer_iterate()
441 if (msc_iter_block_advance(iter)) in msc_buffer_iterate()
835 struct msc_window *win, *iter; in msc_buffer_multi_free() local
837 list_for_each_entry_safe(win, iter, &msc->win_list, entry) in msc_buffer_multi_free()
1032 struct msc_iter *iter; in intel_th_msc_open() local
1037 iter = msc_iter_install(msc); in intel_th_msc_open()
1038 if (!iter) in intel_th_msc_open()
1041 file->private_data = iter; in intel_th_msc_open()
1048 struct msc_iter *iter = file->private_data; in intel_th_msc_release() local
1049 struct msc *msc = iter->msc; in intel_th_msc_release()
1051 msc_iter_remove(iter, msc); in intel_th_msc_release()
1095 struct msc_iter *iter = file->private_data; in intel_th_msc_read() local
1096 struct msc *msc = iter->msc; in intel_th_msc_read()
1134 ret = msc_buffer_iterate(iter, len, &u, msc_win_to_user); in intel_th_msc_read()
1136 *ppos = iter->offset; in intel_th_msc_read()
1153 struct msc_iter *iter = vma->vm_file->private_data; in msc_mmap_open() local
1154 struct msc *msc = iter->msc; in msc_mmap_open()
1161 struct msc_iter *iter = vma->vm_file->private_data; in msc_mmap_close() local
1162 struct msc *msc = iter->msc; in msc_mmap_close()
1186 struct msc_iter *iter = vma->vm_file->private_data; in msc_mmap_fault() local
1187 struct msc *msc = iter->msc; in msc_mmap_fault()
1209 struct msc_iter *iter = vma->vm_file->private_data; in intel_th_msc_mmap() local
1210 struct msc *msc = iter->msc; in intel_th_msc_mmap()