Subversion Repositories Kolibri OS

Rev

Rev 6082 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6082 Rev 6936
Line 146... Line 146...
146
	return __drm_mm_hole_node_start(hole_node);
146
	return __drm_mm_hole_node_start(hole_node);
147
}
147
}
Line 148... Line 148...
148
 
148
 
149
static inline u64 __drm_mm_hole_node_end(struct drm_mm_node *hole_node)
149
static inline u64 __drm_mm_hole_node_end(struct drm_mm_node *hole_node)
150
{
150
{
151
	return list_entry(hole_node->node_list.next,
-
 
152
			  struct drm_mm_node, node_list)->start;
151
	return list_next_entry(hole_node, node_list)->start;
Line 153... Line 152...
153
}
152
}
154
 
153
 
155
/**
154
/**
Line 178... Line 177...
178
 */
177
 */
179
#define drm_mm_for_each_node(entry, mm) list_for_each_entry(entry, \
178
#define drm_mm_for_each_node(entry, mm) list_for_each_entry(entry, \
180
						&(mm)->head_node.node_list, \
179
						&(mm)->head_node.node_list, \
181
						node_list)
180
						node_list)
Line -... Line 181...
-
 
181
 
-
 
182
#define __drm_mm_for_each_hole(entry, mm, hole_start, hole_end, backwards) \
-
 
183
	for (entry = list_entry((backwards) ? (mm)->hole_stack.prev : (mm)->hole_stack.next, struct drm_mm_node, hole_stack); \
-
 
184
	     &entry->hole_stack != &(mm)->hole_stack ? \
-
 
185
	     hole_start = drm_mm_hole_node_start(entry), \
-
 
186
	     hole_end = drm_mm_hole_node_end(entry), \
-
 
187
	     1 : 0; \
-
 
188
	     entry = list_entry((backwards) ? entry->hole_stack.prev : entry->hole_stack.next, struct drm_mm_node, hole_stack))
182
 
189
 
183
/**
190
/**
184
 * drm_mm_for_each_hole - iterator to walk over all holes
191
 * drm_mm_for_each_hole - iterator to walk over all holes
185
 * @entry: drm_mm_node used internally to track progress
192
 * @entry: drm_mm_node used internally to track progress
186
 * @mm: drm_mm allocator to walk
193
 * @mm: drm_mm allocator to walk
Line 198... Line 205...
198
 *
205
 *
199
 * The __drm_mm_for_each_hole version is similar, but with added support for
206
 * The __drm_mm_for_each_hole version is similar, but with added support for
200
 * going backwards.
207
 * going backwards.
201
 */
208
 */
202
#define drm_mm_for_each_hole(entry, mm, hole_start, hole_end) \
209
#define drm_mm_for_each_hole(entry, mm, hole_start, hole_end) \
203
	for (entry = list_entry((mm)->hole_stack.next, struct drm_mm_node, hole_stack); \
-
 
204
	     &entry->hole_stack != &(mm)->hole_stack ? \
-
 
205
	     hole_start = drm_mm_hole_node_start(entry), \
-
 
206
	     hole_end = drm_mm_hole_node_end(entry), \
-
 
207
	     1 : 0; \
-
 
208
	     entry = list_entry(entry->hole_stack.next, struct drm_mm_node, hole_stack))
-
 
209
 
-
 
210
#define __drm_mm_for_each_hole(entry, mm, hole_start, hole_end, backwards) \
210
	__drm_mm_for_each_hole(entry, mm, hole_start, hole_end, 0)
211
	for (entry = list_entry((backwards) ? (mm)->hole_stack.prev : (mm)->hole_stack.next, struct drm_mm_node, hole_stack); \
-
 
212
	     &entry->hole_stack != &(mm)->hole_stack ? \
-
 
213
	     hole_start = drm_mm_hole_node_start(entry), \
-
 
214
	     hole_end = drm_mm_hole_node_end(entry), \
-
 
215
	     1 : 0; \
-
 
216
	     entry = list_entry((backwards) ? entry->hole_stack.prev : entry->hole_stack.next, struct drm_mm_node, hole_stack))
-
 
Line 217... Line 211...
217
 
211
 
218
/*
212
/*
219
 * Basic range manager support (drm_mm.c)
213
 * Basic range manager support (drm_mm.c)
220
 */
214
 */