Lines Matching refs:folioq
54 static inline void folioq_init(struct folio_queue *folioq, unsigned int rreq_id) in folioq_init() argument
56 folio_batch_init(&folioq->vec); in folioq_init()
57 folioq->next = NULL; in folioq_init()
58 folioq->prev = NULL; in folioq_init()
59 folioq->marks = 0; in folioq_init()
60 folioq->marks2 = 0; in folioq_init()
61 folioq->marks3 = 0; in folioq_init()
62 folioq->rreq_id = rreq_id; in folioq_init()
63 folioq->debug_id = 0; in folioq_init()
73 static inline unsigned int folioq_nr_slots(const struct folio_queue *folioq) in folioq_nr_slots() argument
85 static inline unsigned int folioq_count(struct folio_queue *folioq) in folioq_count() argument
87 return folio_batch_count(&folioq->vec); in folioq_count()
97 static inline bool folioq_full(struct folio_queue *folioq) in folioq_full() argument
100 return folioq_count(folioq) >= folioq_nr_slots(folioq); in folioq_full()
111 static inline bool folioq_is_marked(const struct folio_queue *folioq, unsigned int slot) in folioq_is_marked() argument
113 return test_bit(slot, &folioq->marks); in folioq_is_marked()
124 static inline void folioq_mark(struct folio_queue *folioq, unsigned int slot) in folioq_mark() argument
126 set_bit(slot, &folioq->marks); in folioq_mark()
137 static inline void folioq_unmark(struct folio_queue *folioq, unsigned int slot) in folioq_unmark() argument
139 clear_bit(slot, &folioq->marks); in folioq_unmark()
150 static inline bool folioq_is_marked2(const struct folio_queue *folioq, unsigned int slot) in folioq_is_marked2() argument
152 return test_bit(slot, &folioq->marks2); in folioq_is_marked2()
163 static inline void folioq_mark2(struct folio_queue *folioq, unsigned int slot) in folioq_mark2() argument
165 set_bit(slot, &folioq->marks2); in folioq_mark2()
176 static inline void folioq_unmark2(struct folio_queue *folioq, unsigned int slot) in folioq_unmark2() argument
178 clear_bit(slot, &folioq->marks2); in folioq_unmark2()
189 static inline bool folioq_is_marked3(const struct folio_queue *folioq, unsigned int slot) in folioq_is_marked3() argument
191 return test_bit(slot, &folioq->marks3); in folioq_is_marked3()
202 static inline void folioq_mark3(struct folio_queue *folioq, unsigned int slot) in folioq_mark3() argument
204 set_bit(slot, &folioq->marks3); in folioq_mark3()
215 static inline void folioq_unmark3(struct folio_queue *folioq, unsigned int slot) in folioq_unmark3() argument
217 clear_bit(slot, &folioq->marks3); in folioq_unmark3()
233 static inline unsigned int folioq_append(struct folio_queue *folioq, struct folio *folio) in folioq_append() argument
235 unsigned int slot = folioq->vec.nr++; in folioq_append()
237 folioq->vec.folios[slot] = folio; in folioq_append()
238 folioq->orders[slot] = folio_order(folio); in folioq_append()
255 static inline unsigned int folioq_append_mark(struct folio_queue *folioq, struct folio *folio) in folioq_append_mark() argument
257 unsigned int slot = folioq->vec.nr++; in folioq_append_mark()
259 folioq->vec.folios[slot] = folio; in folioq_append_mark()
260 folioq->orders[slot] = folio_order(folio); in folioq_append_mark()
261 folioq_mark(folioq, slot); in folioq_append_mark()
275 static inline struct folio *folioq_folio(const struct folio_queue *folioq, unsigned int slot) in folioq_folio() argument
277 return folioq->vec.folios[slot]; in folioq_folio()
289 static inline unsigned int folioq_folio_order(const struct folio_queue *folioq, unsigned int slot) in folioq_folio_order() argument
291 return folioq->orders[slot]; in folioq_folio_order()
303 static inline size_t folioq_folio_size(const struct folio_queue *folioq, unsigned int slot) in folioq_folio_size() argument
305 return PAGE_SIZE << folioq_folio_order(folioq, slot); in folioq_folio_size()
316 static inline void folioq_clear(struct folio_queue *folioq, unsigned int slot) in folioq_clear() argument
318 folioq->vec.folios[slot] = NULL; in folioq_clear()
319 folioq_unmark(folioq, slot); in folioq_clear()
320 folioq_unmark2(folioq, slot); in folioq_clear()
321 folioq_unmark3(folioq, slot); in folioq_clear()