Lines Matching refs:zram

38  * footprint small and thus squeeze size and zram pageflags into a flags
43 * We use BUILD_BUG_ON() to make sure that zram pageflags don't overflow.
58 /* Flags for zram pages (table[page_no].flags) */
60 /* zram slot is locked */
100 atomic64_t huge_pages_since; /* no. of huge pages since zram set up */
122 struct zram {
134 * the number of pages zram can consume for storing compressed data
147 * zram is claimed so open request will be failed
164 static inline int zram_slot_trylock(struct zram *zram, u32 index)
166 return bit_spin_trylock(ZRAM_LOCK, &zram->table[index].flags);
169 static inline void zram_slot_lock(struct zram *zram, u32 index)
171 bit_spin_lock(ZRAM_LOCK, &zram->table[index].flags);
174 static inline void zram_slot_unlock(struct zram *zram, u32 index)
176 bit_spin_unlock(ZRAM_LOCK, &zram->table[index].flags);
179 static inline unsigned long zram_get_handle(struct zram *zram, u32 index)
181 return zram->table[index].handle;
184 static inline void zram_set_handle(struct zram *zram, u32 index, unsigned long handle)
186 zram->table[index].handle = handle;
190 static inline bool zram_test_flag(struct zram *zram, u32 index,
193 return zram->table[index].flags & BIT(flag);
196 static inline void zram_set_flag(struct zram *zram, u32 index,
199 zram->table[index].flags |= BIT(flag);
202 static inline void zram_clear_flag(struct zram *zram, u32 index,
205 zram->table[index].flags &= ~BIT(flag);
208 static inline size_t zram_get_obj_size(struct zram *zram, u32 index)
210 return zram->table[index].flags & (BIT(ZRAM_SIZE_SHIFT) - 1);
213 static inline void zram_set_obj_size(struct zram *zram, u32 index, size_t size)
215 unsigned long flags = zram->table[index].flags >> ZRAM_SIZE_SHIFT;
217 zram->table[index].flags = (flags << ZRAM_SIZE_SHIFT) | size;
220 void zram_group_init(struct zram *zram, u32 nr_obj);
221 void zram_group_deinit(struct zram *zram);
222 void zram_group_track_obj(struct zram *zram, u32 index, struct mem_cgroup *memcg);
223 void zram_group_untrack_obj(struct zram *zram, u32 index);
225 int zram_group_fault_obj(struct zram *zram, u32 index);
229 void group_debug(struct zram *zram, u32 op, u32 index, u32 gid);
233 static inline size_t zram_get_obj_size(struct zram *zram, u32 index)
235 return zram->table[index].flags & (BIT(ZRAM_FLAG_SHIFT) - 1);
238 static inline void zram_set_obj_size(struct zram *zram, u32 index, size_t size)
240 unsigned long flags = zram->table[index].flags >> ZRAM_FLAG_SHIFT;
242 zram->table[index].flags = (flags << ZRAM_FLAG_SHIFT) | size;