RPM Package Manager, CVS Repository http://rpm5.org/cvs/ ____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: [email protected] Module: rpm Date: 04-Jul-2017 05:14:16 Branch: rpm-5_4 Handle: 2017070403141600 Modified files: (Branch: rpm-5_4) rpm/rpmio rpmeio.c rpmeio.h Log: - rpmeio: permit building --without-libeio. Summary: Revision Changes Path 1.1.2.11 +282 -154 rpm/rpmio/rpmeio.c 1.1.2.9 +48 -50 rpm/rpmio/rpmeio.h ____________________________________________________________________________ patch -p0 <<'@@ .' Index: rpm/rpmio/rpmeio.c ============================================================================ $ cvs diff -u -r1.1.2.10 -r1.1.2.11 rpmeio.c --- rpm/rpmio/rpmeio.c 21 Jun 2017 09:09:37 -0000 1.1.2.10 +++ rpm/rpmio/rpmeio.c 4 Jul 2017 03:14:16 -0000 1.1.2.11 @@ -1,19 +1,140 @@ #include "system.h" +#if defined(WITH_LIBEV) + #if defined(HAVE_EV_H) # include <ev.h> #endif +#else /* WITH_LIBEV */ + +/* XXX stub in enough to include rpmev.h */ +#define EV_P_ void * loop, +#define EV_A_ NULL, +#define EV_DEFAULT ev_default_loop(0) +#define EVFLAG_AUTO 0 +#define EVRUN_ONCE 2 + +typedef struct ev_watcher ev_idle; +typedef struct ev_watcher ev_async; + +struct ev_watcher { + int active; + int pending; + int priority; + void * data; + void (*cb)(EV_P_ void *w, int revents); +}; + +union ev_any_watcher +{ + struct ev_watcher w; + struct ev_watcher async; +}; + +#define ev_default_loop(_a) NULL + +#define ev_userdata(_x) NULL + +#define ev_set_userdata(_x, y) + +#define ev_idle_stop(_w) (void)_w +#define ev_async_send(_l, _w) (void)_w +#define ev_run(_a, _b) +#define ev_loop_destroy(_a) + +#endif /* WITH_LIBEV */ + +#if defined(WITH_LIBEIO) + +#if defined(HAVE_EIO_H) +# include <eio.h> +#endif + +#else /* WITH_LIBEIO */ + +typedef struct eio_req eio_req; +typedef int (*eio_cb)(eio_req *req); + +typedef struct eio_pwd * eio_wd; +typedef double eio_tstamp; +typedef int eio_uid_t; +typedef int eio_gid_t; +typedef ssize_t eio_ssize_t; + +/* XXX stub in enough to include rpmeio.h */ +struct eio_req +{ + eio_req volatile *next; /* private ETP */ + eio_wd wd; /* all applicable requests: working directory of pathname, old name; wd_open: return wd */ + eio_ssize_t result; /* result of syscall, e.g. result = read (... */ + off_t offs; /* read, write, truncate, readahead, sync_file_range, fallocate: file offset, mknod: dev_t */ + size_t size; /* read, write, readahead, sendfile, msync, mlock, sync_file_range, fallocate: length */ + void *ptr1; /* all applicable requests: pathname, old name; readdir: optional eio_dirents */ + void *ptr2; /* all applicable requests: new name or memory buffer; readdir: name strings */ + eio_tstamp nv1; /* utime, futime: atime; busy: sleep time */ + eio_tstamp nv2; /* utime, futime: mtime */ + + int int1; /* all applicable requests: file descriptor; sendfile: output fd; open, msync, mlockall, readdir: flags */ + long int2; /* chown, fchown: uid; sendfile: input fd; open, chmod, mkdir, mknod: file mode, seek: whence, sync_file_range, fallocate: flags */ + long int3; /* chown, fchown: gid; rename, link: working directory of new name */ + int errorno; /* errno value on syscall return */ + + signed char type; /* EIO_xxx constant ETP */ + + unsigned char cancelled; /* ETP */ + + unsigned char flags; /* private */ +#define EIO_FLAG_PTR1_FREE 0x01 +#define EIO_FLAG_PTR2_FREE 0x02 + + signed char pri; /* the priority */ +#define EIO_PRI_MIN -4 +#define EIO_PRI_MAX 4 +#define EIO_PRI_DEFAULT 0 + + void *data; + eio_cb finish; + void (*destroy)(eio_req *req); /* called when request no longer needed */ + void (*feed)(eio_req *req); /* only used for group requests */ + + eio_req *grp, *grp_prev, *grp_next, *grp_first; /* private ETP */ +}; + +#define eio_poll() -1 +#define eio_nthreads() 0 +#define eio_nready() 0 +#define eio_nreqs() 0 +#define eio_npending() 0 +#define eio_init(_a, _b) -1 +#define eio_cancel(_a) +#define eio_submit(_a) + +#define eio_set_max_poll_time(max_poll_time); +#define eio_set_max_poll_reqs(max_poll_reqs); +#define eio_set_min_parallel(min_parallel); +#define eio_set_max_parallel(max_parallel); +#define eio_set_max_idle(max_idle); +#define eio_set_idle_timeout(idle_timeout); + +#define EIO_RESULT(req) ((req)->result) +#define EIO_BUF(req) ((req)->ptr2) +#define EIO_STAT_BUF(req) (void *)EIO_BUF(req) +#define EIO_STATVFS_BUF(req) (void *)EIO_BUF(req) +#define EIO_PATH(req) ((char *)(req)->ptr1) + +#endif /* WITH_LIBEIO */ + #include <rpmio.h> #include <rpmzlog.h> #include <poptIO.h> -#define _RPMEIO_INTERNAL -#include <rpmeio.h> - #define _RPMEV_INTERNAL #include <rpmev.h> +#define _RPMEIO_INTERNAL +#include <rpmeio.h> + #include "debug.h" int _rpmeio_debug = -1; @@ -32,53 +153,53 @@ const char * rpmeioReqType(int reqtype) { switch (reqtype) { - case EIO_CUSTOM: return("EIO_CUSTOM"); - case EIO_WD_OPEN: return("EIO_WD_OPEN"); - case EIO_WD_CLOSE: return("EIO_WD_CLOSE"); - case EIO_CLOSE: return("EIO_CLOSE"); - case EIO_DUP2: return("EIO_DUP2"); - case EIO_SEEK: return("EIO_SEEK"); - case EIO_READ: return("EIO_READ"); - case EIO_WRITE: return("EIO_WRITE"); - case EIO_READAHEAD: return("EIO_READAHEAD"); - case EIO_SENDFILE: return("EIO_SENDFILE"); - case EIO_FSTAT: return("EIO_FSTAT"); - case EIO_FSTATVFS: return("EIO_FSTATVFS"); - case EIO_FTRUNCATE: return("EIO_FTRUNCATE"); - case EIO_FUTIME: return("EIO_FUTIME"); - case EIO_FCHMOD: return("EIO_FCHMOD"); - case EIO_FCHOWN: return("EIO_FCHOWN"); - case EIO_SYNC: return("EIO_SYNC"); - case EIO_FSYNC: return("EIO_FSYNC"); - case EIO_FDATASYNC: return("EIO_FDATASYNC"); - case EIO_SYNCFS: return("EIO_SYNCFS"); - case EIO_MSYNC: return("EIO_MSYNC"); - case EIO_MTOUCH: return("EIO_MTOUCH"); - case EIO_SYNC_FILE_RANGE: return("EIO_SYNC_FILE_RANGE"); - case EIO_FALLOCATE: return("EIO_FALLOCATE"); - case EIO_MLOCK: return("EIO_MLOCK"); - case EIO_MLOCKALL: return("EIO_MLOCKALL"); - case EIO_GROUP: return("EIO_GROUP"); - case EIO_NOP: return("EIO_NOP"); - case EIO_BUSY: return("EIO_BUSY"); - case EIO_REALPATH: return("EIO_REALPATH"); - case EIO_READDIR: return("EIO_READDIR"); - case EIO_OPEN: return("EIO_OPEN"); - case EIO_STAT: return("EIO_STAT"); - case EIO_LSTAT: return("EIO_LSTAT"); - case EIO_STATVFS: return("EIO_STATVFS"); - case EIO_TRUNCATE: return("EIO_TRUNCATE"); - case EIO_UTIME: return("EIO_UTIME"); - case EIO_CHMOD: return("EIO_CHMOD"); - case EIO_CHOWN: return("EIO_CHOWN"); - case EIO_UNLINK: return("EIO_UNLINK"); - case EIO_RMDIR: return("EIO_RMDIR"); - case EIO_MKDIR: return("EIO_MKDIR"); - case EIO_RENAME: return("EIO_RENAME"); - case EIO_MKNOD: return("EIO_MKNOD"); - case EIO_LINK: return("EIO_LINK"); - case EIO_SYMLINK: return("EIO_SYMLINK"); - case EIO_READLINK: return("EIO_READLINK"); + case RPMEIO_CUSTOM: return("EIO_CUSTOM"); + case RPMEIO_WD_OPEN: return("EIO_WD_OPEN"); + case RPMEIO_WD_CLOSE: return("EIO_WD_CLOSE"); + case RPMEIO_CLOSE: return("EIO_CLOSE"); + case RPMEIO_DUP2: return("EIO_DUP2"); + case RPMEIO_SEEK: return("EIO_SEEK"); + case RPMEIO_READ: return("EIO_READ"); + case RPMEIO_WRITE: return("EIO_WRITE"); + case RPMEIO_READAHEAD: return("EIO_READAHEAD"); + case RPMEIO_SENDFILE: return("EIO_SENDFILE"); + case RPMEIO_FSTAT: return("EIO_FSTAT"); + case RPMEIO_FSTATVFS: return("EIO_FSTATVFS"); + case RPMEIO_FTRUNCATE: return("EIO_FTRUNCATE"); + case RPMEIO_FUTIME: return("EIO_FUTIME"); + case RPMEIO_FCHMOD: return("EIO_FCHMOD"); + case RPMEIO_FCHOWN: return("EIO_FCHOWN"); + case RPMEIO_SYNC: return("EIO_SYNC"); + case RPMEIO_FSYNC: return("EIO_FSYNC"); + case RPMEIO_FDATASYNC: return("EIO_FDATASYNC"); + case RPMEIO_SYNCFS: return("EIO_SYNCFS"); + case RPMEIO_MSYNC: return("EIO_MSYNC"); + case RPMEIO_MTOUCH: return("EIO_MTOUCH"); + case RPMEIO_SYNC_FILE_RANGE: return("EIO_SYNC_FILE_RANGE"); + case RPMEIO_FALLOCATE: return("EIO_FALLOCATE"); + case RPMEIO_MLOCK: return("EIO_MLOCK"); + case RPMEIO_MLOCKALL: return("EIO_MLOCKALL"); + case RPMEIO_GROUP: return("EIO_GROUP"); + case RPMEIO_NOP: return("EIO_NOP"); + case RPMEIO_BUSY: return("EIO_BUSY"); + case RPMEIO_REALPATH: return("EIO_REALPATH"); + case RPMEIO_READDIR: return("EIO_READDIR"); + case RPMEIO_OPEN: return("EIO_OPEN"); + case RPMEIO_STAT: return("EIO_STAT"); + case RPMEIO_LSTAT: return("EIO_LSTAT"); + case RPMEIO_STATVFS: return("EIO_STATVFS"); + case RPMEIO_TRUNCATE: return("EIO_TRUNCATE"); + case RPMEIO_UTIME: return("EIO_UTIME"); + case RPMEIO_CHMOD: return("EIO_CHMOD"); + case RPMEIO_CHOWN: return("EIO_CHOWN"); + case RPMEIO_UNLINK: return("EIO_UNLINK"); + case RPMEIO_RMDIR: return("EIO_RMDIR"); + case RPMEIO_MKDIR: return("EIO_MKDIR"); + case RPMEIO_RENAME: return("EIO_RENAME"); + case RPMEIO_MKNOD: return("EIO_MKNOD"); + case RPMEIO_LINK: return("EIO_LINK"); + case RPMEIO_SYMLINK: return("EIO_SYMLINK"); + case RPMEIO_READLINK: return("EIO_READLINK"); } return ("?EIO_TYPE?"); } @@ -206,8 +327,9 @@ rpmzLog zlog = evl->zlog; ZSPEW("--> %s(%p, %p, %d)", __FUNCTION__, loop, w, revents); - if (eio_poll() != -1) + if (eio_poll() != -1) { ev_idle_stop (EV_A_ w); + } } /* eio has some results, process them */ @@ -301,18 +423,24 @@ SPEW("<-- %s() evl %p loop %p", __FUNCTION__, evl, evl->loop); } - if (max_poll_time > 0.0) + if (max_poll_time > 0.0) { eio_set_max_poll_time(max_poll_time); - if (max_poll_reqs) + } + if (max_poll_reqs) { eio_set_max_poll_reqs(max_poll_reqs); - if (min_parallel) + } + if (min_parallel) { eio_set_min_parallel(min_parallel); - if (max_parallel) + } + if (max_parallel) { eio_set_max_parallel(max_parallel); - if (max_idle) + } + if (max_idle) { eio_set_max_idle(max_idle); - if (idle_timeout) + } + if (idle_timeout) { eio_set_idle_timeout(idle_timeout); + } evl->flags = flags; evl->zlog = (_rpmeio_debug || _rpmio_debug) ? rpmzLogNew(NULL) : NULL; @@ -435,8 +563,8 @@ if (req->result >= 0) switch (req->type) { - case EIO_READLINK: - case EIO_REALPATH: + case RPMEIO_READLINK: + case RPMEIO_REALPATH: { char * b = (char *) EIO_BUF(req); b[req->result] = '\0'; @@ -494,7 +622,7 @@ ZSPEW("--> %s(%s|%p) res %ld eio %p", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), EIO_RESULT(req), eio); rpmeioDumpREQ(__FUNCTION__, req, NULL); - if (req->type == EIO_FSTAT) { + if (req->type == RPMEIO_FSTAT) { SPEW("\tfstat = %ld", EIO_RESULT(req)); } else { SPEW("\tstat(%s) = %ld", EIO_PATH(req), EIO_RESULT(req)); @@ -561,7 +689,7 @@ eio_cb cb = rpmeioCB; void * data = NULL; - if (reqtype >= EIO_REQ_TYPE_NUM) + if (reqtype >= RPMEIO_REQ_TYPE_NUM) goto exit; eio = rpmeioNew(reqtype); @@ -573,42 +701,42 @@ va_start(ap, reqtype); switch (reqtype) { - case EIO_CUSTOM: + case RPMEIO_CUSTOM: req->feed = va_arg(ap, void (*) (eio_req *)); cb = rpmeioCB; /* XXX */ data = "custom"; break; - case EIO_WD_OPEN: + case RPMEIO_WD_OPEN: req->ptr1 = va_arg(ap, char *); req->ptr1 = xstrdup((char *)req->ptr1); req->flags |= EIO_FLAG_PTR1_FREE; cb = rpmeioCB; /* XXX */ data = "wd_open"; break; - case EIO_WD_CLOSE: + case RPMEIO_WD_CLOSE: req->wd = va_arg(ap, eio_wd); cb = rpmeioCB; /* XXX */ data = "wd_close"; break; - case EIO_CLOSE: + case RPMEIO_CLOSE: req->int1 = va_arg(ap, int); cb = rpmeioCB; data = "close"; break; - case EIO_DUP2: + case RPMEIO_DUP2: req->int1 = va_arg(ap, int); req->int2 = va_arg(ap, int); cb = rpmeioCB; data = "dup2"; break; - case EIO_SEEK: + case RPMEIO_SEEK: req->int1 = va_arg(ap, int); req->offs = va_arg(ap, off_t); req->int2 = va_arg(ap, int); cb = rpmeioCB; /* XXX */ data = "seek"; break; - case EIO_READ: + case RPMEIO_READ: req->int1 = va_arg(ap, int); req->ptr2 = va_arg(ap, void *); req->size = va_arg(ap, size_t); @@ -616,7 +744,7 @@ cb = rpmeioCB_read; data = "read"; break; - case EIO_WRITE: + case RPMEIO_WRITE: req->int1 = va_arg(ap, int); req->ptr2 = va_arg(ap, void *); req->size = va_arg(ap, size_t); @@ -624,14 +752,14 @@ cb = rpmeioCB; data = "write"; break; - case EIO_READAHEAD: + case RPMEIO_READAHEAD: req->int1 = va_arg(ap, int); req->offs = va_arg(ap, off_t); req->size = va_arg(ap, size_t); cb = rpmeioCB; data = "readahead"; break; - case EIO_SENDFILE: + case RPMEIO_SENDFILE: req->int1 = va_arg(ap, int); req->int2 = va_arg(ap, int); req->offs = va_arg(ap, off_t); @@ -639,76 +767,76 @@ cb = rpmeioCB; data = "sendfile"; break; - case EIO_FSTAT: + case RPMEIO_FSTAT: req->int1 = va_arg(ap, int); cb = rpmeioCB_stat; data = "fstat"; break; - case EIO_FSTATVFS: + case RPMEIO_FSTATVFS: req->int1 = va_arg(ap, int); cb = rpmeioCB; /* XXX */ data = "statvfs"; break; - case EIO_FTRUNCATE: + case RPMEIO_FTRUNCATE: req->int1 = va_arg(ap, int); req->offs = va_arg(ap, off_t); cb = rpmeioCB; data = "ftruncate"; break; - case EIO_FUTIME: + case RPMEIO_FUTIME: req->int1 = va_arg(ap, int); req->nv1 = va_arg(ap, eio_tstamp); req->nv2 = va_arg(ap, eio_tstamp); cb = rpmeioCB; data = "futime"; break; - case EIO_FCHMOD: + case RPMEIO_FCHMOD: req->int1 = va_arg(ap, int); req->int2 = va_arg(ap, mode_t); cb = rpmeioCB; data = "fchmod"; break; - case EIO_FCHOWN: + case RPMEIO_FCHOWN: req->int1 = va_arg(ap, int); req->int2 = va_arg(ap, uid_t); req->int3 = va_arg(ap, gid_t); cb = rpmeioCB; data = "fchown"; break; - case EIO_SYNC: + case RPMEIO_SYNC: cb = rpmeioCB; data = "sync"; break; - case EIO_FSYNC: + case RPMEIO_FSYNC: req->int1 = va_arg(ap, int); cb = rpmeioCB; data = "fsync"; break; - case EIO_FDATASYNC: + case RPMEIO_FDATASYNC: req->int1 = va_arg(ap, int); cb = rpmeioCB; data = "fdatasync"; break; - case EIO_SYNCFS: + case RPMEIO_SYNCFS: req->int1 = va_arg(ap, int); cb = rpmeioCB; /* XXX */ data = "syncfs"; break; - case EIO_MSYNC: + case RPMEIO_MSYNC: req->ptr2 = va_arg(ap, void *); req->size = va_arg(ap, size_t); req->int1 = va_arg(ap, int); cb = rpmeioCB; /* XXX */ data = "msync"; break; - case EIO_MTOUCH: + case RPMEIO_MTOUCH: req->ptr2 = va_arg(ap, void *); req->size = va_arg(ap, size_t); req->int1 = va_arg(ap, int); cb = rpmeioCB; /* XXX */ data = "mtouch"; break; - case EIO_SYNC_FILE_RANGE: + case RPMEIO_SYNC_FILE_RANGE: req->int1 = va_arg(ap, int); req->offs = va_arg(ap, off_t); req->size = va_arg(ap, size_t); @@ -716,7 +844,7 @@ cb = rpmeioCB; /* XXX */ data = "sync_file_range"; break; - case EIO_FALLOCATE: + case RPMEIO_FALLOCATE: req->int1 = va_arg(ap, int); req->int2 = va_arg(ap, mode_t); req->offs = va_arg(ap, off_t); @@ -724,39 +852,39 @@ cb = rpmeioCB; /* XXX */ data = "fallocate"; break; - case EIO_MLOCK: + case RPMEIO_MLOCK: req->ptr2 = va_arg(ap, void *); req->size = va_arg(ap, size_t); cb = rpmeioCB; /* XXX */ data = "mlock"; break; - case EIO_MLOCKALL: + case RPMEIO_MLOCKALL: req->int1 = va_arg(ap, int); cb = rpmeioCB; /* XXX */ data = "mlockall"; break; - case EIO_GROUP: + case RPMEIO_GROUP: cb = rpmeioCB; /* XXX */ data = "group"; pri = EIO_PRI_MAX; /* XXX */ break; - case EIO_NOP: + case RPMEIO_NOP: cb = rpmeioCB; data = "nop"; break; - case EIO_BUSY: + case RPMEIO_BUSY: req->nv1 = va_arg(ap, eio_tstamp); cb = rpmeioCB; data = "busy"; break; - case EIO_REALPATH: + case RPMEIO_REALPATH: req->ptr1 = va_arg(ap, char *); req->ptr1 = xstrdup((char *)req->ptr1); req->flags |= EIO_FLAG_PTR1_FREE; cb = rpmeioCB; /* XXX */ data = "realpath"; break; - case EIO_READDIR: + case RPMEIO_READDIR: req->ptr1 = va_arg(ap, char *); req->ptr1 = xstrdup((char *)req->ptr1); req->flags |= EIO_FLAG_PTR1_FREE; @@ -764,7 +892,7 @@ cb = rpmeioCB_readdir; data = "readdir"; break; - case EIO_OPEN: + case RPMEIO_OPEN: req->ptr1 = va_arg(ap, char *); req->ptr1 = xstrdup((char *)req->ptr1); req->flags |= EIO_FLAG_PTR1_FREE; @@ -773,28 +901,28 @@ cb = rpmeioCB_open; data = "open"; break; - case EIO_STAT: + case RPMEIO_STAT: req->ptr1 = va_arg(ap, char *); req->ptr1 = xstrdup((char *)req->ptr1); req->flags |= EIO_FLAG_PTR1_FREE; cb = rpmeioCB_stat; data = "stat"; break; - case EIO_LSTAT: + case RPMEIO_LSTAT: req->ptr1 = va_arg(ap, char *); req->ptr1 = xstrdup((char *)req->ptr1); req->flags |= EIO_FLAG_PTR1_FREE; cb = rpmeioCB_stat; data = "lstat"; break; - case EIO_STATVFS: + case RPMEIO_STATVFS: req->ptr1 = va_arg(ap, char *); req->ptr1 = xstrdup((char *)req->ptr1); req->flags |= EIO_FLAG_PTR1_FREE; cb = rpmeioCB; /* XXX */ data = "statvfs"; break; - case EIO_TRUNCATE: + case RPMEIO_TRUNCATE: req->ptr1 = va_arg(ap, char *); req->ptr1 = xstrdup((char *)req->ptr1); req->flags |= EIO_FLAG_PTR1_FREE; @@ -802,7 +930,7 @@ cb = rpmeioCB; data = "truncate"; break; - case EIO_UTIME: + case RPMEIO_UTIME: req->ptr1 = va_arg(ap, char *); req->ptr1 = xstrdup((char *)req->ptr1); req->flags |= EIO_FLAG_PTR1_FREE; @@ -811,7 +939,7 @@ cb = rpmeioCB; data = "utime"; break; - case EIO_CHMOD: + case RPMEIO_CHMOD: req->ptr1 = va_arg(ap, char *); req->ptr1 = xstrdup((char *)req->ptr1); req->flags |= EIO_FLAG_PTR1_FREE; @@ -819,7 +947,7 @@ cb = rpmeioCB; /* XXX */ data = "chmod"; break; - case EIO_CHOWN: + case RPMEIO_CHOWN: req->ptr1 = va_arg(ap, char *); req->ptr1 = xstrdup((char *)req->ptr1); req->flags |= EIO_FLAG_PTR1_FREE; @@ -828,21 +956,21 @@ cb = rpmeioCB; data = "chown"; break; - case EIO_UNLINK: + case RPMEIO_UNLINK: req->ptr1 = va_arg(ap, char *); req->ptr1 = xstrdup((char *)req->ptr1); req->flags |= EIO_FLAG_PTR1_FREE; cb = rpmeioCB; data = "unlink"; break; - case EIO_RMDIR: + case RPMEIO_RMDIR: req->ptr1 = va_arg(ap, char *); req->ptr1 = xstrdup((char *)req->ptr1); req->flags |= EIO_FLAG_PTR1_FREE; cb = rpmeioCB; data = "rmdir"; break; - case EIO_MKDIR: + case RPMEIO_MKDIR: req->ptr1 = va_arg(ap, char *); req->ptr1 = xstrdup((char *)req->ptr1); req->flags |= EIO_FLAG_PTR1_FREE; @@ -850,7 +978,7 @@ cb = rpmeioCB; data = "mkdir"; break; - case EIO_RENAME: + case RPMEIO_RENAME: req->ptr1 = va_arg(ap, char *); req->ptr1 = xstrdup((char *)req->ptr1); req->flags |= EIO_FLAG_PTR1_FREE; @@ -860,7 +988,7 @@ cb = rpmeioCB; data = "rename"; break; - case EIO_MKNOD: + case RPMEIO_MKNOD: req->ptr1 = va_arg(ap, char *); req->ptr1 = xstrdup((char *)req->ptr1); req->flags |= EIO_FLAG_PTR1_FREE; @@ -869,7 +997,7 @@ cb = rpmeioCB; data = "mknod"; break; - case EIO_LINK: + case RPMEIO_LINK: req->ptr1 = va_arg(ap, char *); req->ptr1 = xstrdup((char *)req->ptr1); req->flags |= EIO_FLAG_PTR1_FREE; @@ -879,7 +1007,7 @@ cb = rpmeioCB; data = "link"; break; - case EIO_SYMLINK: + case RPMEIO_SYMLINK: req->ptr1 = va_arg(ap, char *); req->ptr1 = xstrdup((char *)req->ptr1); req->flags |= EIO_FLAG_PTR1_FREE; @@ -889,7 +1017,7 @@ cb = rpmeioCB; data = "symlink"; break; - case EIO_READLINK: + case RPMEIO_READLINK: req->ptr1 = va_arg(ap, char *); req->ptr1 = xstrdup((char *)req->ptr1); req->flags |= EIO_FLAG_PTR1_FREE; @@ -918,232 +1046,232 @@ /*==============================================================*/ eio_req *Eio_wd_open (const char *path, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_WD_OPEN, path, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_WD_OPEN, path, pri, cb, data) ); } eio_req *Eio_wd_close (eio_wd wd, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_WD_CLOSE, wd, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_WD_CLOSE, wd, pri, cb, data) ); } eio_req *Eio_nop (int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_NOP, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_NOP, pri, cb, data) ); } eio_req *Eio_busy (eio_tstamp delay, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_BUSY, delay, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_BUSY, delay, pri, cb, data) ); } eio_req *Eio_sync (int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_SYNC, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_SYNC, pri, cb, data) ); } eio_req *Eio_fsync (int fd, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_FSYNC, fd, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_FSYNC, fd, pri, cb, data) ); } eio_req *Eio_fdatasync (int fd, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_FDATASYNC, fd, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_FDATASYNC, fd, pri, cb, data) ); } eio_req *Eio_syncfs (int fd, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_SYNC, fd, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_SYNC, fd, pri, cb, data) ); } eio_req *Eio_msync (void *addr, size_t length, int flags, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_MSYNC, addr, length, flags, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_MSYNC, addr, length, flags, pri, cb, data) ); } eio_req *Eio_mtouch (void *addr, size_t length, int flags, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_MTOUCH, addr, length, flags, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_MTOUCH, addr, length, flags, pri, cb, data) ); } eio_req *Eio_mlock (void *addr, size_t length, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_MLOCK, addr, length, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_MLOCK, addr, length, pri, cb, data) ); } eio_req *Eio_mlockall (int flags, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_MLOCKALL, flags, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_MLOCKALL, flags, pri, cb, data) ); } eio_req *Eio_sync_file_range (int fd, off_t offset, size_t nbytes, unsigned int flags, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_SYNC_FILE_RANGE, fd, offset, nbytes, flags, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_SYNC_FILE_RANGE, fd, offset, nbytes, flags, pri, cb, data) ); } eio_req *Eio_fallocate (int fd, int mode, off_t offset, size_t len, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_FALLOCATE, fd, mode, offset, len, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_FALLOCATE, fd, mode, offset, len, pri, cb, data) ); } eio_req *Eio_close (int fd, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_CLOSE, fd, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_CLOSE, fd, pri, cb, data) ); } eio_req *Eio_readahead (int fd, off_t offset, size_t length, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_READAHEAD, fd, offset, length, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_READAHEAD, fd, offset, length, pri, cb, data) ); } eio_req *Eio_seek (int fd, off_t offset, int whence, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_SEEK, fd, offset, whence, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_SEEK, fd, offset, whence, pri, cb, data) ); } eio_req *Eio_read (int fd, void *buf, size_t length, off_t offset, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_READ, fd, buf, length, offset, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_READ, fd, buf, length, offset, pri, cb, data) ); } eio_req *Eio_write (int fd, void *buf, size_t length, off_t offset, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_WRITE, fd, buf, length, offset, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_WRITE, fd, buf, length, offset, pri, cb, data) ); } eio_req *Eio_fstat (int fd, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_FSTAT, fd, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_FSTAT, fd, pri, cb, data) ); } eio_req *Eio_fstatvfs (int fd, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_FSTATVFS, fd, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_FSTATVFS, fd, pri, cb, data) ); } eio_req *Eio_futime (int fd, eio_tstamp atime, eio_tstamp mtime, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_FUTIME, fd, atime, mtime, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_FUTIME, fd, atime, mtime, pri, cb, data) ); } eio_req *Eio_ftruncate (int fd, off_t offset, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_FTRUNCATE, fd, offset, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_FTRUNCATE, fd, offset, pri, cb, data) ); } eio_req *Eio_fchmod (int fd, mode_t mode, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_FCHMOD, fd, mode, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_FCHMOD, fd, mode, pri, cb, data) ); } eio_req *Eio_fchown (int fd, eio_uid_t uid, eio_gid_t gid, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_FCHOWN, fd, uid, gid, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_FCHOWN, fd, uid, gid, pri, cb, data) ); } eio_req *Eio_dup2 (int fd, int fd2, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_DUP2, fd, fd2, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_DUP2, fd, fd2, pri, cb, data) ); } eio_req *Eio_sendfile (int out_fd, int in_fd, off_t in_offset, size_t length, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_SENDFILE, out_fd, in_fd, in_offset, length, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_SENDFILE, out_fd, in_fd, in_offset, length, pri, cb, data) ); } eio_req *Eio_open (const char *path, int flags, mode_t mode, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_OPEN, path, flags, mode, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_OPEN, path, flags, mode, pri, cb, data) ); } eio_req *Eio_utime (const char *path, eio_tstamp atime, eio_tstamp mtime, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_UTIME, path, atime, mtime, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_UTIME, path, atime, mtime, pri, cb, data) ); } eio_req *Eio_truncate (const char *path, off_t offset, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_TRUNCATE, path, offset, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_TRUNCATE, path, offset, pri, cb, data) ); } eio_req *Eio_chown (const char *path, eio_uid_t uid, eio_gid_t gid, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_CHOWN, path, uid, gid, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_CHOWN, path, uid, gid, pri, cb, data) ); } eio_req *Eio_chmod (const char *path, mode_t mode, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_CHMOD, path, mode, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_CHMOD, path, mode, pri, cb, data) ); } eio_req *Eio_mkdir (const char *path, mode_t mode, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_MKDIR, path, mode, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_MKDIR, path, mode, pri, cb, data) ); } eio_req *Eio_readdir (const char *path, int flags, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_READDIR, path, flags, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_READDIR, path, flags, pri, cb, data) ); } eio_req *Eio_rmdir (const char *path, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_RMDIR, path, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_RMDIR, path, pri, cb, data) ); } eio_req *Eio_unlink (const char *path, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_UNLINK, path, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_UNLINK, path, pri, cb, data) ); } eio_req *Eio_readlink (const char *path, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_READLINK, path, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_READLINK, path, pri, cb, data) ); } eio_req *Eio_realpath (const char *path, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_REALPATH, path, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_REALPATH, path, pri, cb, data) ); } eio_req *Eio_stat (const char *path, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_STAT, path, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_STAT, path, pri, cb, data) ); } eio_req *Eio_lstat (const char *path, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_LSTAT, path, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_LSTAT, path, pri, cb, data) ); } eio_req *Eio_statvfs (const char *path, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_STATVFS, path, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_STATVFS, path, pri, cb, data) ); } eio_req *Eio_mknod (const char *path, mode_t mode, dev_t dev, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_MKNOD, path, mode, dev, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_MKNOD, path, mode, dev, pri, cb, data) ); } eio_req *Eio_link (const char *path, const char *new_path, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_LINK, path, new_path, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_LINK, path, new_path, pri, cb, data) ); } eio_req *Eio_symlink (const char *path, const char *new_path, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_SYMLINK, path, new_path, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_SYMLINK, path, new_path, pri, cb, data) ); } eio_req *Eio_rename (const char *path, const char *new_path, int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_RENAME, path, new_path, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_RENAME, path, new_path, pri, cb, data) ); } eio_req *Eio_custom (void (*execute)(eio_req *), int pri, eio_cb cb, void *data) { - return Eio_submit( Eio_request(EIO_CUSTOM, execute, pri, cb, data) ); + return Eio_submit( Eio_request(RPMEIO_CUSTOM, execute, pri, cb, data) ); } /*==============================================================*/ @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/rpmeio.h ============================================================================ $ cvs diff -u -r1.1.2.8 -r1.1.2.9 rpmeio.h --- rpm/rpmio/rpmeio.h 21 Jun 2017 07:42:48 -0000 1.1.2.8 +++ rpm/rpmio/rpmeio.h 4 Jul 2017 03:14:16 -0000 1.1.2.9 @@ -1,8 +1,6 @@ #ifndef _H_RPMEIO_ #define _H_RPMEIO_ -#include <eio.h> - /** */ extern int _rpmeio_debug; @@ -14,54 +12,54 @@ /** */ typedef enum rpmeioType_e { - RPMEIO_CUSTOM = EIO_CUSTOM, - RPMEIO_WD_OPEN = EIO_WD_OPEN, - RPMEIO_WD_CLOSE = EIO_WD_CLOSE, - RPMEIO_CLOSE = EIO_CLOSE, - RPMEIO_DUP2 = EIO_DUP2, - RPMEIO_SEEK = EIO_SEEK, - RPMEIO_READ = EIO_READ, - RPMEIO_WRITE = EIO_WRITE, - RPMEIO_READAHEAD = EIO_READAHEAD, - RPMEIO_SENDFILE = EIO_SENDFILE, - RPMEIO_FSTAT = EIO_FSTAT, - RPMEIO_FSTATVFS = EIO_FSTATVFS, - RPMEIO_FTRUNCATE = EIO_FTRUNCATE, - RPMEIO_FUTIME = EIO_FUTIME, - RPMEIO_FCHMOD = EIO_FCHMOD, - RPMEIO_FCHOWN = EIO_FCHOWN, - RPMEIO_SYNC = EIO_SYNC, - RPMEIO_FSYNC = EIO_FSYNC, - RPMEIO_FDATASYNC = EIO_FDATASYNC, - RPMEIO_SYNCFS = EIO_SYNCFS, - RPMEIO_MSYNC = EIO_MSYNC, - RPMEIO_MTOUCH = EIO_MTOUCH, - RPMEIO_SYNC_FILE_RANGE = EIO_SYNC_FILE_RANGE, - RPMEIO_FALLOCATE = EIO_FALLOCATE, - RPMEIO_MLOCK = EIO_MLOCK, - RPMEIO_MLOCKALL = EIO_MLOCKALL, - RPMEIO_GROUP = EIO_GROUP, - RPMEIO_NOP = EIO_NOP, - RPMEIO_BUSY = EIO_BUSY, - RPMEIO_REALPATH = EIO_REALPATH, - RPMEIO_READDIR = EIO_READDIR, - RPMEIO_OPEN = EIO_OPEN, - RPMEIO_STAT = EIO_STAT, - RPMEIO_LSTAT = EIO_LSTAT, - RPMEIO_STATVFS = EIO_STATVFS, - RPMEIO_TRUNCATE = EIO_TRUNCATE, - RPMEIO_UTIME = EIO_UTIME, - RPMEIO_CHMOD = EIO_CHMOD, - RPMEIO_CHOWN = EIO_CHOWN, - RPMEIO_UNLINK = EIO_UNLINK, - RPMEIO_RMDIR = EIO_RMDIR, - RPMEIO_MKDIR = EIO_MKDIR, - RPMEIO_RENAME = EIO_RENAME, - RPMEIO_MKNOD = EIO_MKNOD, - RPMEIO_LINK = EIO_LINK, - RPMEIO_SYMLINK = EIO_SYMLINK, - RPMEIO_READLINK = EIO_READLINK, - RPMEIO_REQ_TYPE_NUM = EIO_REQ_TYPE_NUM, + RPMEIO_CUSTOM = 0, /* EIO_CUSTOM */ + RPMEIO_WD_OPEN = 1, /* EIO_WD_OPEN */ + RPMEIO_WD_CLOSE = 2, /* EIO_WD_CLOSE */ + RPMEIO_CLOSE = 3, /* EIO_CLOSE */ + RPMEIO_DUP2 = 4, /* EIO_DUP2 */ + RPMEIO_SEEK = 5, /* EIO_SEEK */ + RPMEIO_READ = 6, /* EIO_READ */ + RPMEIO_WRITE = 7, /* EIO_WRITE */ + RPMEIO_READAHEAD = 8, /* EIO_READAHEAD */ + RPMEIO_SENDFILE = 9, /* EIO_SENDFILE */ + RPMEIO_FSTAT = 10, /* EIO_FSTAT */ + RPMEIO_FSTATVFS = 11, /* EIO_FSTATVFS */ + RPMEIO_FTRUNCATE = 12, /* EIO_FTRUNCATE */ + RPMEIO_FUTIME = 13, /* EIO_FUTIME */ + RPMEIO_FCHMOD = 14, /* EIO_FCHMOD */ + RPMEIO_FCHOWN = 15, /* EIO_FCHOWN */ + RPMEIO_SYNC = 16, /* EIO_SYNC */ + RPMEIO_FSYNC = 17, /* EIO_FSYNC */ + RPMEIO_FDATASYNC = 18, /* EIO_FDATASYNC */ + RPMEIO_SYNCFS = 19, /* EIO_SYNCFS */ + RPMEIO_MSYNC = 20, /* EIO_MSYNC */ + RPMEIO_MTOUCH = 21, /* EIO_MTOUCH */ + RPMEIO_SYNC_FILE_RANGE = 22, /* EIO_SYNC_FILE_RANGE */ + RPMEIO_FALLOCATE = 23, /* EIO_FALLOCATE */ + RPMEIO_MLOCK = 24, /* EIO_MLOCK */ + RPMEIO_MLOCKALL = 25, /* EIO_MLOCKALL */ + RPMEIO_GROUP = 26, /* EIO_GROUP */ + RPMEIO_NOP = 27, /* EIO_NOP */ + RPMEIO_BUSY = 28, /* EIO_BUSY */ + RPMEIO_REALPATH = 29, /* EIO_REALPATH */ + RPMEIO_READDIR = 30, /* EIO_READDIR */ + RPMEIO_OPEN = 31, /* EIO_OPEN */ + RPMEIO_STAT = 32, /* EIO_STAT */ + RPMEIO_LSTAT = 33, /* EIO_LSTAT */ + RPMEIO_STATVFS = 34, /* EIO_STATVFS */ + RPMEIO_TRUNCATE = 35, /* EIO_TRUNCATE */ + RPMEIO_UTIME = 36, /* EIO_UTIME */ + RPMEIO_CHMOD = 37, /* EIO_CHMOD */ + RPMEIO_CHOWN = 38, /* EIO_CHOWN */ + RPMEIO_UNLINK = 39, /* EIO_UNLINK */ + RPMEIO_RMDIR = 40, /* EIO_RMDIR */ + RPMEIO_MKDIR = 41, /* EIO_MKDIR */ + RPMEIO_RENAME = 42, /* EIO_RENAME */ + RPMEIO_MKNOD = 43, /* EIO_MKNOD */ + RPMEIO_LINK = 44, /* EIO_LINK */ + RPMEIO_SYMLINK = 45, /* EIO_SYMLINK */ + RPMEIO_READLINK = 46, /* EIO_READLINK */ + RPMEIO_REQ_TYPE_NUM = 47, /* EIO_REQ_TYPE_NUM */ } rpmeioType; #define RPMEIO_REQ_TYPE_MASK 0xff @@ . ______________________________________________________________________ RPM Package Manager http://rpm5.org CVS Sources Repository [email protected]
