… | |
… | |
7 | typedef struct eio_req eio_req; |
7 | typedef struct eio_req eio_req; |
8 | |
8 | |
9 | typedef int (*eio_cb)(eio_req *req); |
9 | typedef int (*eio_cb)(eio_req *req); |
10 | |
10 | |
11 | #ifndef EIO_COMMON |
11 | #ifndef EIO_COMMON |
12 | # define EIO_COMMON void *data |
12 | # define EIO_COMMON |
13 | #endif |
13 | #endif |
14 | |
14 | |
15 | #ifndef EIO_STRUCT_STAT |
15 | #ifndef EIO_STRUCT_STAT |
16 | # define EIO_STRUCT_STAT struct stat |
16 | # define EIO_STRUCT_STAT struct stat |
17 | #endif |
17 | #endif |
… | |
… | |
55 | long int2; /* chown, fchown: uid; sendfile: input fd; open, chmod, mkdir, mknod: file mode */ |
55 | long int2; /* chown, fchown: uid; sendfile: input fd; open, chmod, mkdir, mknod: file mode */ |
56 | long int3; /* chown, fchown: gid */ |
56 | long int3; /* chown, fchown: gid */ |
57 | int errorno; /* errno value on syscall return */ |
57 | int errorno; /* errno value on syscall return */ |
58 | |
58 | |
59 | unsigned char flags; /* private */ |
59 | unsigned char flags; /* private */ |
60 | unsigned char pri; /* the priority */ |
60 | signed char pri; /* the priority */ |
61 | |
61 | |
|
|
62 | void *data; |
62 | eio_cb finish; |
63 | eio_cb finish; |
63 | void (*destroy)(eio_req *req); |
64 | void (*destroy)(eio_req *req); /* called when requets no longer needed */ |
64 | void (*feed)(eio_req *req); |
65 | void (*feed)(eio_req *req); /* only used for group requests */ |
65 | |
66 | |
66 | EIO_COMMON; |
67 | EIO_REQ_MEMBERS |
67 | |
68 | |
68 | eio_req *grp, *grp_prev, *grp_next, *grp_first; /* private */ |
69 | eio_req *grp, *grp_prev, *grp_next, *grp_first; /* private */ |
69 | }; |
70 | }; |
70 | |
71 | |
71 | enum { |
72 | enum { |