diff options
author | Lars Müller | 2008-03-01 19:30:38 +0100 |
---|---|---|
committer | Lars Müller | 2008-03-01 19:30:38 +0100 |
commit | 868fec1f8eca7c344fc9ac057b7418331299d9ce (patch) | |
tree | c07cdf11db710dc495c3c7a513cc0f8fd68d6626 /kernel/queue.h | |
download | dnbd-868fec1f8eca7c344fc9ac057b7418331299d9ce.tar.gz dnbd-868fec1f8eca7c344fc9ac057b7418331299d9ce.tar.xz dnbd-868fec1f8eca7c344fc9ac057b7418331299d9ce.zip |
Import dnbd* from the former openslx-contrib repo as of revision 92.
openslx-contrib is currently read only and will get removed in some
days.
git-svn-id: http://svn.openslx.org/svn/openslx/contrib/dnbd/trunk@1592 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'kernel/queue.h')
-rw-r--r-- | kernel/queue.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/kernel/queue.h b/kernel/queue.h new file mode 100644 index 0000000..f349637 --- /dev/null +++ b/kernel/queue.h @@ -0,0 +1,29 @@ +#ifndef LINUX_DNBD_QUEUE_H +#define LINUX_DNBD_QUEUE_H 1 + +#include <linux/spinlock.h> +#include <asm/semaphore.h> +#include <linux/list.h> +#include <linux/wait.h> + +/* queue structure used for rx_queue and tx_queue */ +struct dnbd_queue { + spinlock_t lock; + struct semaphore sema; + struct list_head head; + wait_queue_head_t waiters; +}; + +typedef struct dnbd_queue dnbd_queue_t; + +/* functions */ +void dnbd_enq_request(dnbd_queue_t * q, struct request *req, int wakeup); +struct request *dnbd_deq_request(dnbd_queue_t * q); +struct request *dnbd_deq_request_handle(dnbd_queue_t * q, uint64_t pos); +struct request *dnbd_try_deq_request(dnbd_queue_t * q); +void dnbd_mark_old_requests(dnbd_queue_t * q); +int dnbd_requeue_requests(dnbd_queue_t * to, dnbd_queue_t * from, unsigned long timeout); +void dnbd_error_old_requests(dnbd_queue_t * q); + + +#endif /* LINUX_QUEUE_H */ |