Blame view
include/linux/blk-iopoll.h
1.16 KB
5e605b64a block: add blk-io... |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#ifndef BLK_IOPOLL_H #define BLK_IOPOLL_H struct blk_iopoll; typedef int (blk_iopoll_fn)(struct blk_iopoll *, int); struct blk_iopoll { struct list_head list; unsigned long state; unsigned long data; int weight; int max; blk_iopoll_fn *poll; }; enum { IOPOLL_F_SCHED = 0, IOPOLL_F_DISABLE = 1, }; |
d62f843b2 block: make blk_i... |
20 21 22 23 24 |
/* * Returns 0 if we successfully set the IOPOLL_F_SCHED bit, indicating * that we were the first to acquire this iop for scheduling. If this iop * is currently disabled, return "failure". */ |
5e605b64a block: add blk-io... |
25 26 |
static inline int blk_iopoll_sched_prep(struct blk_iopoll *iop) { |
d62f843b2 block: make blk_i... |
27 28 29 30 |
if (!test_bit(IOPOLL_F_DISABLE, &iop->state)) return test_and_set_bit(IOPOLL_F_SCHED, &iop->state); return 1; |
5e605b64a block: add blk-io... |
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
} static inline int blk_iopoll_disable_pending(struct blk_iopoll *iop) { return test_bit(IOPOLL_F_DISABLE, &iop->state); } extern void blk_iopoll_sched(struct blk_iopoll *); extern void blk_iopoll_init(struct blk_iopoll *, int, blk_iopoll_fn *); extern void blk_iopoll_complete(struct blk_iopoll *); extern void __blk_iopoll_complete(struct blk_iopoll *); extern void blk_iopoll_enable(struct blk_iopoll *); extern void blk_iopoll_disable(struct blk_iopoll *); extern int blk_iopoll_enabled; #endif |