Lines Matching defs:cursor

219 struct dma_fence *dma_resv_iter_first_unlocked(struct dma_resv_iter *cursor);
220 struct dma_fence *dma_resv_iter_next_unlocked(struct dma_resv_iter *cursor);
221 struct dma_fence *dma_resv_iter_first(struct dma_resv_iter *cursor);
222 struct dma_fence *dma_resv_iter_next(struct dma_resv_iter *cursor);
226 * @cursor: The dma_resv_iter object to initialize
230 static inline void dma_resv_iter_begin(struct dma_resv_iter *cursor,
234 cursor->obj = obj;
235 cursor->usage = usage;
236 cursor->fence = NULL;
241 * @cursor: the dma_resv_iter object which should be cleaned up
243 * Make sure that the reference to the fence in the cursor is properly
246 static inline void dma_resv_iter_end(struct dma_resv_iter *cursor)
248 dma_fence_put(cursor->fence);
253 * @cursor: the cursor of the current position
258 dma_resv_iter_usage(struct dma_resv_iter *cursor)
260 return cursor->fence_usage;
265 * @cursor: the cursor with the current position
269 static inline bool dma_resv_iter_is_restarted(struct dma_resv_iter *cursor)
271 return cursor->is_restarted;
276 * @cursor: a struct dma_resv_iter pointer
280 * &dma_resv.lock and using RCU instead. The cursor needs to be initialized
285 * @cursor is modified. Code which accumulates statistics or similar needs to
289 #define dma_resv_for_each_fence_unlocked(cursor, fence) \
290 for (fence = dma_resv_iter_first_unlocked(cursor); \
291 fence; fence = dma_resv_iter_next_unlocked(cursor))
295 * @cursor: a struct dma_resv_iter pointer
302 * well. The cursor initialisation is part of the iterator and the fence stays
306 #define dma_resv_for_each_fence(cursor, obj, usage, fence) \
307 for (dma_resv_iter_begin(cursor, obj, usage), \
308 fence = dma_resv_iter_first(cursor); fence; \
309 fence = dma_resv_iter_next(cursor))