~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Linux-2.6.17/drivers/md/dm-bio-list.h

Version: ~ [ 2.6.16 ] ~ [ 2.6.17 ] ~
Architecture: ~ [ ia64 ] ~ [ i386 ] ~ [ arm ] ~ [ ppc ] ~ [ sparc64 ] ~

  1 /*
  2  * Copyright (C) 2004 Red Hat UK Ltd.
  3  *
  4  * This file is released under the GPL.
  5  */
  6 
  7 #ifndef DM_BIO_LIST_H
  8 #define DM_BIO_LIST_H
  9 
 10 #include <linux/bio.h>
 11 
 12 struct bio_list {
 13         struct bio *head;
 14         struct bio *tail;
 15 };
 16 
 17 static inline void bio_list_init(struct bio_list *bl)
 18 {
 19         bl->head = bl->tail = NULL;
 20 }
 21 
 22 static inline void bio_list_add(struct bio_list *bl, struct bio *bio)
 23 {
 24         bio->bi_next = NULL;
 25 
 26         if (bl->tail)
 27                 bl->tail->bi_next = bio;
 28         else
 29                 bl->head = bio;
 30 
 31         bl->tail = bio;
 32 }
 33 
 34 static inline void bio_list_merge(struct bio_list *bl, struct bio_list *bl2)
 35 {
 36         if (!bl2->head)
 37                 return;
 38 
 39         if (bl->tail)
 40                 bl->tail->bi_next = bl2->head;
 41         else
 42                 bl->head = bl2->head;
 43 
 44         bl->tail = bl2->tail;
 45 }
 46 
 47 static inline struct bio *bio_list_pop(struct bio_list *bl)
 48 {
 49         struct bio *bio = bl->head;
 50 
 51         if (bio) {
 52                 bl->head = bl->head->bi_next;
 53                 if (!bl->head)
 54                         bl->tail = NULL;
 55 
 56                 bio->bi_next = NULL;
 57         }
 58 
 59         return bio;
 60 }
 61 
 62 static inline struct bio *bio_list_get(struct bio_list *bl)
 63 {
 64         struct bio *bio = bl->head;
 65 
 66         bl->head = bl->tail = NULL;
 67 
 68         return bio;
 69 }
 70 
 71 #endif
 72 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.