… | |
… | |
254 | void *ptr1; /* all applicable requests: pathname, old name; readdir: optional eio_dirents */ |
254 | void *ptr1; /* all applicable requests: pathname, old name; readdir: optional eio_dirents */ |
255 | void *ptr2; /* all applicable requests: new name or memory buffer; readdir: name strings */ |
255 | void *ptr2; /* all applicable requests: new name or memory buffer; readdir: name strings */ |
256 | eio_tstamp nv1; /* utime, futime: atime; busy: sleep time */ |
256 | eio_tstamp nv1; /* utime, futime: atime; busy: sleep time */ |
257 | eio_tstamp nv2; /* utime, futime: mtime */ |
257 | eio_tstamp nv2; /* utime, futime: mtime */ |
258 | |
258 | |
259 | int type; /* EIO_xxx constant ETP */ |
|
|
260 | int int1; /* all applicable requests: file descriptor; sendfile: output fd; open, msync, mlockall, readdir: flags */ |
259 | int int1; /* all applicable requests: file descriptor; sendfile: output fd; open, msync, mlockall, readdir: flags */ |
261 | long int2; /* chown, fchown: uid; sendfile: input fd; open, chmod, mkdir, mknod: file mode, seek: whence, sync_file_range, fallocate: flags */ |
260 | long int2; /* chown, fchown: uid; sendfile: input fd; open, chmod, mkdir, mknod: file mode, seek: whence, sync_file_range, fallocate: flags */ |
262 | long int3; /* chown, fchown: gid; rename, link: working directory of new name */ |
261 | long int3; /* chown, fchown: gid; rename, link: working directory of new name */ |
263 | int errorno; /* errno value on syscall return */ |
262 | int errorno; /* errno value on syscall return */ |
264 | |
263 | |
|
|
264 | signed char type;/* EIO_xxx constant ETP */ |
|
|
265 | |
265 | #if __i386 || __amd64 |
266 | #if __i386 || __amd64 |
266 | unsigned char cancelled; |
267 | unsigned char cancelled; /* ETP */ |
267 | #else |
268 | #else |
268 | sig_atomic_t cancelled; |
269 | sig_atomic_t cancelled; /* ETP */ |
269 | #endif |
270 | #endif |
270 | |
271 | |
271 | unsigned char flags; /* private */ |
272 | unsigned char flags; /* private */ |
272 | signed char pri; /* the priority */ |
273 | signed char pri; /* the priority */ |
273 | |
274 | |
… | |
… | |
276 | void (*destroy)(eio_req *req); /* called when request no longer needed */ |
277 | void (*destroy)(eio_req *req); /* called when request no longer needed */ |
277 | void (*feed)(eio_req *req); /* only used for group requests */ |
278 | void (*feed)(eio_req *req); /* only used for group requests */ |
278 | |
279 | |
279 | EIO_REQ_MEMBERS |
280 | EIO_REQ_MEMBERS |
280 | |
281 | |
281 | eio_req *grp, *grp_prev, *grp_next, *grp_first; /* private */ |
282 | eio_req *grp, *grp_prev, *grp_next, *grp_first; /* private ETP */ |
282 | }; |
283 | }; |
283 | |
284 | |
284 | /* _private_ request flags */ |
285 | /* _private_ request flags */ |
285 | enum { |
286 | enum { |
286 | EIO_FLAG_PTR1_FREE = 0x01, /* need to free(ptr1) */ |
287 | EIO_FLAG_PTR1_FREE = 0x01, /* need to free(ptr1) */ |