root / drivers / tapdisk-filter.h @ abdb293f
History | View | Annotate | Download (988 Bytes)
1 | abdb293f | Chrysostomos Nanakos | /* Copyright (c) 2007, XenSource Inc.
|
---|---|---|---|
2 | abdb293f | Chrysostomos Nanakos | * All rights reserved.
|
3 | abdb293f | Chrysostomos Nanakos | */
|
4 | abdb293f | Chrysostomos Nanakos | |
5 | abdb293f | Chrysostomos Nanakos | #ifndef TAPDISK_FILTER_H
|
6 | abdb293f | Chrysostomos Nanakos | #define TAPDISK_FILTER_H
|
7 | abdb293f | Chrysostomos Nanakos | |
8 | abdb293f | Chrysostomos Nanakos | #include <libaio.h> |
9 | abdb293f | Chrysostomos Nanakos | #include <inttypes.h> |
10 | abdb293f | Chrysostomos Nanakos | #include <time.h> |
11 | abdb293f | Chrysostomos Nanakos | |
12 | abdb293f | Chrysostomos Nanakos | #define TD_INJECT_FAULTS 0x00001 /* simulate random IO failures */ |
13 | abdb293f | Chrysostomos Nanakos | #define TD_CHECK_INTEGRITY 0x00002 /* check data integrity */ |
14 | abdb293f | Chrysostomos Nanakos | |
15 | abdb293f | Chrysostomos Nanakos | #define TD_FAULT_RATE 5 |
16 | abdb293f | Chrysostomos Nanakos | |
17 | abdb293f | Chrysostomos Nanakos | struct dhash {
|
18 | abdb293f | Chrysostomos Nanakos | uint64_t hash; |
19 | abdb293f | Chrysostomos Nanakos | struct timeval time;
|
20 | abdb293f | Chrysostomos Nanakos | }; |
21 | abdb293f | Chrysostomos Nanakos | |
22 | abdb293f | Chrysostomos Nanakos | struct fiocb {
|
23 | abdb293f | Chrysostomos Nanakos | size_t bytes; |
24 | abdb293f | Chrysostomos Nanakos | void *data;
|
25 | abdb293f | Chrysostomos Nanakos | }; |
26 | abdb293f | Chrysostomos Nanakos | |
27 | abdb293f | Chrysostomos Nanakos | struct tfilter {
|
28 | abdb293f | Chrysostomos Nanakos | int mode;
|
29 | abdb293f | Chrysostomos Nanakos | uint64_t secs; |
30 | abdb293f | Chrysostomos Nanakos | int iocbs;
|
31 | abdb293f | Chrysostomos Nanakos | |
32 | abdb293f | Chrysostomos Nanakos | struct dhash *dhash;
|
33 | abdb293f | Chrysostomos Nanakos | |
34 | abdb293f | Chrysostomos Nanakos | int ffree;
|
35 | abdb293f | Chrysostomos Nanakos | struct fiocb *fiocbs;
|
36 | abdb293f | Chrysostomos Nanakos | struct fiocb **flist;
|
37 | abdb293f | Chrysostomos Nanakos | }; |
38 | abdb293f | Chrysostomos Nanakos | |
39 | abdb293f | Chrysostomos Nanakos | struct tfilter *tapdisk_init_tfilter(int mode, int iocbs, uint64_t secs); |
40 | abdb293f | Chrysostomos Nanakos | void tapdisk_free_tfilter(struct tfilter *); |
41 | abdb293f | Chrysostomos Nanakos | void tapdisk_filter_iocbs(struct tfilter *, struct iocb **, int); |
42 | abdb293f | Chrysostomos Nanakos | void tapdisk_filter_events(struct tfilter *, struct io_event *, int); |
43 | abdb293f | Chrysostomos Nanakos | |
44 | abdb293f | Chrysostomos Nanakos | #endif |