@@ -234,23 +234,6 @@ static inline void INIT_SLIST_HEAD(struct slist_head *list)
234
234
list -> last = & list -> first ;
235
235
}
236
236
237
- static inline void slist_add_head (struct slist_node * node ,
238
- struct slist_head * list )
239
- {
240
- node -> next = list -> first .next ;
241
- list -> first .next = node ;
242
- if (!node -> next )
243
- list -> last = node ;
244
- }
245
-
246
- static inline void slist_add_tail (struct slist_node * node ,
247
- struct slist_head * list )
248
- {
249
- node -> next = (struct slist_node * )0 ;
250
- list -> last -> next = node ;
251
- list -> last = node ;
252
- }
253
-
254
237
static inline void slist_add_after (struct slist_node * node ,
255
238
struct slist_node * prev ,
256
239
struct slist_head * list )
@@ -261,11 +244,18 @@ static inline void slist_add_after(struct slist_node *node,
261
244
list -> last = node ;
262
245
}
263
246
264
- static inline void slist_del_head (struct slist_head * list )
247
+ static inline void slist_add_head (struct slist_node * node ,
248
+ struct slist_head * list )
265
249
{
266
- list -> first .next = list -> first .next -> next ;
267
- if (!list -> first .next )
268
- list -> last = & list -> first ;
250
+ slist_add_after (node , & list -> first , list );
251
+ }
252
+
253
+ static inline void slist_add_tail (struct slist_node * node ,
254
+ struct slist_head * list )
255
+ {
256
+ node -> next = (struct slist_node * )0 ;
257
+ list -> last -> next = node ;
258
+ list -> last = node ;
269
259
}
270
260
271
261
static inline void slist_del_after (struct slist_node * prev ,
@@ -276,6 +266,11 @@ static inline void slist_del_after(struct slist_node *prev,
276
266
list -> last = prev ;
277
267
}
278
268
269
+ static inline void slist_del_head (struct slist_head * list )
270
+ {
271
+ slist_del_after (& list -> first , list );
272
+ }
273
+
279
274
static inline int slist_empty (struct slist_head * list )
280
275
{
281
276
return !list -> first .next ;
0 commit comments