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: 16-Jun-2017 14:30:31 Branch: rpm-5_4 Handle: 2017061612303000 Modified files: (Branch: rpm-5_4) rpm/rpmio librpmio.vers rpmeio.c rpmeio.h Log: - rpmeio: expose Eio_request/Eio_submit, haul out the trash. Summary: Revision Changes Path 2.199.2.94 +1 -0 rpm/rpmio/librpmio.vers 1.1.2.5 +187 -494 rpm/rpmio/rpmeio.c 1.1.2.4 +3 -1 rpm/rpmio/rpmeio.h ____________________________________________________________________________ patch -p0 <<'@@ .' Index: rpm/rpmio/librpmio.vers ============================================================================ $ cvs diff -u -r2.199.2.93 -r2.199.2.94 librpmio.vers --- rpm/rpmio/librpmio.vers 16 Jun 2017 06:14:09 -0000 2.199.2.93 +++ rpm/rpmio/librpmio.vers 16 Jun 2017 12:30:30 -0000 2.199.2.94 @@ -484,6 +484,7 @@ rpmeioStart; Eio_cancel; Eio_destroy; + Eio_request; Eio_submit; rpmeioCB; rpmeioCB_readdir; @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/rpmeio.c ============================================================================ $ cvs diff -u -r1.1.2.4 -r1.1.2.5 rpmeio.c --- rpm/rpmio/rpmeio.c 16 Jun 2017 11:00:06 -0000 1.1.2.4 +++ rpm/rpmio/rpmeio.c 16 Jun 2017 12:30:30 -0000 1.1.2.5 @@ -311,14 +311,17 @@ } -void Eio_submit(eio_req * req) +eio_req * Eio_submit(eio_req * req) { rpmeio eio = (rpmeio) (((rpmioItem)req) - 1); -SPEW("--> %s(%p) eio %p\n", __FUNCTION__, req, eio); #ifdef NOTYET eio = rpmeioLink(eio); #endif - eio_submit(&eio->req); +assert(req == &eio->req); + req = &eio->req; + eio_submit(req); +SPEW("<-- %s(%p) eio %p\n", __FUNCTION__, req, eio); + return req; } /*==============================================================*/ @@ -423,32 +426,11 @@ } /*==============================================================*/ -static eio_req * rpmeioReq(int reqtype, ...) +eio_req * Eio_request(int reqtype, ...) { rpmeio eio = NULL; eio_req * req = NULL; - eio_wd wd = NULL; - const char * path = NULL; - const char * npath = NULL; - void (*execute) (eio_req *req); - int fdno = -1; - int fdno2 = -1; - off_t offset = 0; - int whence = 0; - void *buf = NULL; - size_t length = 0; - size_t nbytes = 0; - eio_tstamp atime = 0.0; - eio_tstamp mtime = 0.0; - uid_t uid = -1; - gid_t gid = -1; - mode_t mode = 0; - void *addr = NULL; - int flags = 0; - eio_tstamp delay = 0.0; - dev_t dev = 0; - int pri = 0; eio_cb cb = rpmeioCB; void * data = NULL; @@ -464,440 +446,327 @@ switch (reqtype) { case EIO_CUSTOM: - execute = va_arg(ap, void (*) (eio_req *)); + req->feed = va_arg(ap, void (*) (eio_req *)); cb = rpmeioCB; /* XXX */ data = "custom"; -// req = eio_custom(execute, pri, cb, data); - req->feed = execute; break; case EIO_WD_OPEN: - path = va_arg(ap, const char *); + req->ptr1 = va_arg(ap, char *); + req->ptr1 = xstrdup((char *)req->ptr1); + req->flags |= EIO_FLAG_PTR1_FREE; cb = rpmeioCB; /* XXX */ data = "wd_open"; -// req = eio_wd_open(path, pri, cb, data); - req->flags |= EIO_FLAG_PTR1_FREE; - req->ptr1 = xstrdup(path); break; case EIO_WD_CLOSE: - wd = va_arg(ap, eio_wd); + req->wd = va_arg(ap, eio_wd); cb = rpmeioCB; /* XXX */ data = "wd_close"; -// req = eio_wd_close(wd, pri, cb, data); - req->wd = wd; break; case EIO_CLOSE: - fdno = va_arg(ap, int); + req->int1 = va_arg(ap, int); cb = rpmeioCB; data = "close"; -// req = eio_close(fdno, pri, cb, data); - req->int1 = fdno; break; case EIO_DUP2: - fdno = va_arg(ap, int); - fdno2 = va_arg(ap, int); + req->int1 = va_arg(ap, int); + req->int2 = va_arg(ap, int); cb = rpmeioCB; data = "dup2"; -// req = eio_dup2(fdno, fdno2, pri, cb, data); - req->int1 = fdno; - req->int2 = fdno2; break; case EIO_SEEK: - fdno = va_arg(ap, int); - offset = va_arg(ap, off_t); - whence = va_arg(ap, int); + req->int1 = va_arg(ap, int); + req->offs = va_arg(ap, off_t); + req->int2 = va_arg(ap, int); cb = rpmeioCB; /* XXX */ data = "seek"; -// req = eio_seek(fdno, offset, whence, pri, cb, data); - req->int1 = fdno; - req->offs = offset; - req->int2 = whence; break; case EIO_READ: - fdno = va_arg(ap, int); - buf = va_arg(ap, void *); - length = va_arg(ap, size_t); - offset = va_arg(ap, off_t); + req->int1 = va_arg(ap, int); + req->ptr2 = va_arg(ap, void *); + req->size = va_arg(ap, size_t); + req->offs = va_arg(ap, off_t); cb = rpmeioCB_read; data = "read"; -// req = eio_read(fdno, buf, length, offset, pri, cb, data); - req->int1 = fdno; - req->ptr2 = buf; - req->size = length; - req->offs = offset; break; case EIO_WRITE: - fdno = va_arg(ap, int); - buf = va_arg(ap, void *); - length = va_arg(ap, size_t); - offset = va_arg(ap, off_t); + req->int1 = va_arg(ap, int); + req->ptr2 = va_arg(ap, void *); + req->size = va_arg(ap, size_t); + req->offs = va_arg(ap, off_t); cb = rpmeioCB; data = "write"; -// req = eio_write(fdno, buf, length, offset, pri, cb, data); - req->int1 = fdno; - req->ptr2 = buf; - req->size = length; - req->offs = offset; break; case EIO_READAHEAD: - fdno = va_arg(ap, int); - offset = va_arg(ap, off_t); - length = va_arg(ap, size_t); + req->int1 = va_arg(ap, int); + req->offs = va_arg(ap, off_t); + req->size = va_arg(ap, size_t); cb = rpmeioCB; data = "readahead"; -// req = eio_readahead(fdno, offset, length, pri, cb, data); - req->int1 = fdno; - req->offs = offset; - req->size = length; break; case EIO_SENDFILE: - fdno = va_arg(ap, int); - fdno2 = va_arg(ap, int); - offset = va_arg(ap, off_t); - length = va_arg(ap, size_t); + req->int1 = va_arg(ap, int); + req->int2 = va_arg(ap, int); + req->offs = va_arg(ap, off_t); + req->size = va_arg(ap, size_t); cb = rpmeioCB; data = "sendfile"; -// req = eio_sendfile(fdno, fdno2, offset, length, pri, cb, data); - req->int1 = fdno; - req->int2 = fdno2; - req->offs = offset; - req->size = length; break; case EIO_FSTAT: - fdno = va_arg(ap, int); + req->int1 = va_arg(ap, int); cb = rpmeioCB_stat; data = "fstat"; -// req = eio_fstat(fdno, pri, cb, data); - req->int1 = fdno; break; case EIO_FSTATVFS: - fdno = va_arg(ap, int); + req->int1 = va_arg(ap, int); cb = rpmeioCB; /* XXX */ data = "statvfs"; -// req = eio_fstatvfs(fdno, pri, cb, data); - req->int1 = fdno; break; case EIO_FTRUNCATE: - fdno = va_arg(ap, int); - offset = va_arg(ap, off_t); + req->int1 = va_arg(ap, int); + req->offs = va_arg(ap, off_t); cb = rpmeioCB; data = "ftruncate"; -// req = eio_ftruncate(fdno, offset, pri, cb, data); - req->int1 = fdno; - req->offs = offset; break; case EIO_FUTIME: - fdno = va_arg(ap, int); - atime = va_arg(ap, eio_tstamp); - mtime = va_arg(ap, eio_tstamp); + req->int1 = va_arg(ap, int); + req->nv1 = va_arg(ap, eio_tstamp); + req->nv2 = va_arg(ap, eio_tstamp); cb = rpmeioCB; data = "futime"; -// req = eio_futime(fdno, atime, mtime, pri, cb, data); - req->int1 = fdno; break; case EIO_FCHMOD: - fdno = va_arg(ap, int); - mode = va_arg(ap, mode_t); + req->int1 = va_arg(ap, int); + req->int2 = va_arg(ap, mode_t); cb = rpmeioCB; data = "fchmod"; -// req = eio_fchmod(fdno, mode, pri, cb, data); - req->int1 = fdno; - req->int2 = (long)mode; break; case EIO_FCHOWN: - fdno = va_arg(ap, int); - uid = va_arg(ap, uid_t); - gid = va_arg(ap, gid_t); + req->int1 = va_arg(ap, int); + req->int2 = va_arg(ap, uid_t); + req->int3 = va_arg(ap, gid_t); cb = rpmeioCB; data = "fchown"; -// req = eio_fchown(fdno, uid, gid, pri, cb, data); - req->int1 = fdno; - req->int2 = uid; - req->int3 = gid; break; case EIO_SYNC: cb = rpmeioCB; data = "sync"; -// req = eio_sync(pri, cb, data); break; case EIO_FSYNC: - fdno = va_arg(ap, int); + req->int1 = va_arg(ap, int); cb = rpmeioCB; data = "fsync"; -// req = eio_fsync(fdno, pri, cb, data); - req->int1 = fdno; break; case EIO_FDATASYNC: - fdno = va_arg(ap, int); + req->int1 = va_arg(ap, int); cb = rpmeioCB; data = "fdatasync"; -// req = eio_fdatasync(fdno, pri, cb, data); - req->int1 = fdno; break; case EIO_SYNCFS: - fdno = va_arg(ap, int); + req->int1 = va_arg(ap, int); cb = rpmeioCB; /* XXX */ data = "syncfs"; -// req = eio_syncfs(fdno, pri, cb, data); - req->int1 = fdno; break; case EIO_MSYNC: - addr = va_arg(ap, void *); - length = va_arg(ap, size_t); - flags = va_arg(ap, int); + req->ptr2 = va_arg(ap, void *); + req->size = va_arg(ap, size_t); + req->int1 = va_arg(ap, int); cb = rpmeioCB; /* XXX */ data = "msync"; -// req = eio_msync(addr, length, flags, pri, cb, data); - req->ptr2 = addr; - req->size = length; - req->int1 = flags; break; case EIO_MTOUCH: - addr = va_arg(ap, void *); - length = va_arg(ap, size_t); - flags = va_arg(ap, int); + req->ptr2 = va_arg(ap, void *); + req->size = va_arg(ap, size_t); + req->int1 = va_arg(ap, int); cb = rpmeioCB; /* XXX */ data = "mtouch"; -// req = eio_mtouch(addr, length, flags, pri, cb, data); - req->ptr2 = addr; - req->size = length; - req->int1 = flags; break; case EIO_SYNC_FILE_RANGE: - fdno = va_arg(ap, int); - offset = va_arg(ap, off_t); - nbytes = va_arg(ap, size_t); - flags = va_arg(ap, int); + req->int1 = va_arg(ap, int); + req->offs = va_arg(ap, off_t); + req->size = va_arg(ap, size_t); + req->int2 = va_arg(ap, int); cb = rpmeioCB; /* XXX */ data = "sync_file_range"; -// req = eio_sync_file_range(fdno, offset, nbytes, flags, pri, cb, data); - req->int1 = fdno; - req->offs = offset; - req->size = nbytes; - req->int2 = flags; break; case EIO_FALLOCATE: - fdno = va_arg(ap, int); - mode = va_arg(ap, mode_t); - offset = va_arg(ap, off_t); - length = va_arg(ap, size_t); + req->int1 = va_arg(ap, int); + req->int2 = va_arg(ap, mode_t); + req->offs = va_arg(ap, off_t); + req->size = va_arg(ap, size_t); cb = rpmeioCB; /* XXX */ data = "fallocate"; -// req = eio_fallocate (fdno, mode, offset, length, pri, cb, data); - req->int1 = fdno; - req->int2 = (long)mode; - req->offs = offset; - req->size = length; break; case EIO_MLOCK: - addr = va_arg(ap, void *); - length = va_arg(ap, size_t); + req->ptr2 = va_arg(ap, void *); + req->size = va_arg(ap, size_t); cb = rpmeioCB; /* XXX */ data = "mlock"; -// req = eio_mlock(addr, length, pri, cb, data); - req->ptr2 = addr; - req->size = length; break; case EIO_MLOCKALL: - fdno = va_arg(ap, int); + req->int1 = va_arg(ap, int); cb = rpmeioCB; /* XXX */ data = "mlockall"; -// req = eio_mlockall(flags, pri, cb, data); - req->int1 = fdno; break; case EIO_GROUP: cb = rpmeioCB; /* XXX */ data = "group"; pri = EIO_PRI_MAX; /* XXX */ -// req = eio_grp(cb, data); break; case EIO_NOP: cb = rpmeioCB; data = "nop"; -// req = eio_nop(pri,cb, data); break; case EIO_BUSY: - delay = va_arg(ap, eio_tstamp); + req->nv1 = va_arg(ap, eio_tstamp); cb = rpmeioCB; data = "busy"; -// req = eio_busy(delay, pri, cb, data); - req->nv1 = delay; break; case EIO_REALPATH: - path = va_arg(ap, const char *); + req->ptr1 = va_arg(ap, char *); + req->ptr1 = xstrdup((char *)req->ptr1); + req->flags |= EIO_FLAG_PTR1_FREE; cb = rpmeioCB; /* XXX */ data = "realpath"; -// req = eio_realpath(path, pri, cb, data); - req->flags |= EIO_FLAG_PTR1_FREE; - req->ptr1 = xstrdup(path); break; case EIO_READDIR: - path = va_arg(ap, const char *); - flags = va_arg(ap, int); + req->ptr1 = va_arg(ap, char *); + req->ptr1 = xstrdup((char *)req->ptr1); + req->flags |= EIO_FLAG_PTR1_FREE; + req->int1 = va_arg(ap, int); cb = rpmeioCB_readdir; data = "readdir"; -// req = eio_readdir(path, flags, pri, cb, data); - req->flags |= EIO_FLAG_PTR1_FREE; - req->ptr1 = xstrdup(path); - req->int1 = flags; break; case EIO_OPEN: - path = va_arg(ap, const char *); - flags = va_arg(ap, int); - mode = va_arg(ap, mode_t); + req->ptr1 = va_arg(ap, char *); + req->ptr1 = xstrdup((char *)req->ptr1); + req->flags |= EIO_FLAG_PTR1_FREE; + req->int1 = va_arg(ap, int); + req->int2 = va_arg(ap, mode_t); cb = rpmeioCB_open; data = "open"; -// req = eio_open(path, flags, mode, pri, cb, data); - req->flags |= EIO_FLAG_PTR1_FREE; - req->ptr1 = xstrdup(path); - req->int1 = flags; - req->int2 = (long)mode;; break; case EIO_STAT: - path = va_arg(ap, const char *); + req->ptr1 = va_arg(ap, char *); + req->ptr1 = xstrdup((char *)req->ptr1); + req->flags |= EIO_FLAG_PTR1_FREE; cb = rpmeioCB_stat; data = "stat"; -// req = eio_stat(path, pri, cb, data); - req->flags |= EIO_FLAG_PTR1_FREE; - req->ptr1 = xstrdup(path); break; case EIO_LSTAT: - path = va_arg(ap, const char *); + req->ptr1 = va_arg(ap, char *); + req->ptr1 = xstrdup((char *)req->ptr1); + req->flags |= EIO_FLAG_PTR1_FREE; cb = rpmeioCB_stat; data = "lstat"; -// req = eio_lstat(path, pri, cb, data); - req->flags |= EIO_FLAG_PTR1_FREE; - req->ptr1 = xstrdup(path); break; case EIO_STATVFS: - path = va_arg(ap, const char *); + req->ptr1 = va_arg(ap, char *); + req->ptr1 = xstrdup((char *)req->ptr1); + req->flags |= EIO_FLAG_PTR1_FREE; cb = rpmeioCB; /* XXX */ data = "statvfs"; -// req = eio_statvfs(path, pri, cb, data); - req->flags |= EIO_FLAG_PTR1_FREE; - req->ptr1 = xstrdup(path); break; case EIO_TRUNCATE: - path = va_arg(ap, const char *); - offset = va_arg(ap, off_t); + req->ptr1 = va_arg(ap, char *); + req->ptr1 = xstrdup((char *)req->ptr1); + req->flags |= EIO_FLAG_PTR1_FREE; + req->offs = va_arg(ap, off_t); cb = rpmeioCB; data = "truncate"; -// req = eio_truncate(path, offset, pri, cb, data); - req->flags |= EIO_FLAG_PTR1_FREE; - req->ptr1 = xstrdup(path); - req->offs = offset; break; case EIO_UTIME: - path = va_arg(ap, const char *); - atime = va_arg(ap, eio_tstamp); - mtime = va_arg(ap, eio_tstamp); + req->ptr1 = va_arg(ap, char *); + req->ptr1 = xstrdup((char *)req->ptr1); + req->flags |= EIO_FLAG_PTR1_FREE; + req->nv1 = va_arg(ap, eio_tstamp); + req->nv2 = va_arg(ap, eio_tstamp); cb = rpmeioCB; data = "utime"; -// req = eio_utime(path, atime, mtime, pri, cb, data); - req->flags |= EIO_FLAG_PTR1_FREE; - req->ptr1 = xstrdup(path); - req->nv1 = atime; - req->nv2 = mtime; break; case EIO_CHMOD: - path = va_arg(ap, const char *); - mode = va_arg(ap, mode_t); + req->ptr1 = va_arg(ap, char *); + req->ptr1 = xstrdup((char *)req->ptr1); + req->flags |= EIO_FLAG_PTR1_FREE; + req->int2 = va_arg(ap, mode_t); cb = rpmeioCB; /* XXX */ data = "chmod"; -// req = eio_chmod(path, mode, pri, cb, data); - req->flags |= EIO_FLAG_PTR1_FREE; - req->ptr1 = xstrdup(path); - req->int2 = (long)mode; break; case EIO_CHOWN: - path = va_arg(ap, const char *); - uid = va_arg(ap, uid_t); - gid = va_arg(ap, gid_t); + req->ptr1 = va_arg(ap, char *); + req->ptr1 = xstrdup((char *)req->ptr1); + req->flags |= EIO_FLAG_PTR1_FREE; + req->int2 = va_arg(ap, uid_t); + req->int3 = va_arg(ap, gid_t); cb = rpmeioCB; data = "chown"; -// req = eio_chown(path, uid, gid, pri, cb, data); - req->flags |= EIO_FLAG_PTR1_FREE; - req->ptr1 = xstrdup(path); - req->int2 = (long)uid; - req->int3 = (long)gid; break; case EIO_UNLINK: - path = va_arg(ap, const char *); + req->ptr1 = va_arg(ap, char *); + req->ptr1 = xstrdup((char *)req->ptr1); + req->flags |= EIO_FLAG_PTR1_FREE; cb = rpmeioCB; data = "unlink"; -// req = eio_unlink(path, pri, cb, data); - req->flags |= EIO_FLAG_PTR1_FREE; - req->ptr1 = xstrdup(path); break; case EIO_RMDIR: - path = va_arg(ap, const char *); + req->ptr1 = va_arg(ap, char *); + req->ptr1 = xstrdup((char *)req->ptr1); + req->flags |= EIO_FLAG_PTR1_FREE; cb = rpmeioCB; data = "rmdir"; -// req = eio_rmdir(path, pri, cb, data); - req->flags |= EIO_FLAG_PTR1_FREE; - req->ptr1 = xstrdup(path); break; case EIO_MKDIR: - path = va_arg(ap, const char *); - mode = va_arg(ap, mode_t); + req->ptr1 = va_arg(ap, char *); + req->ptr1 = xstrdup((char *)req->ptr1); + req->flags |= EIO_FLAG_PTR1_FREE; + req->int2 = va_arg(ap, mode_t); cb = rpmeioCB; data = "mkdir"; -// req = eio_mkdir(path, mode, pri, cb, data); - req->flags |= EIO_FLAG_PTR1_FREE; - req->ptr1 = xstrdup(path); - req->int2 = (long)mode; break; case EIO_RENAME: - path = va_arg(ap, const char *); - npath = va_arg(ap, const char *); - cb = rpmeioCB; - data = "rename"; -// req = eio_rename(path, npath, pri, cb, data); + req->ptr1 = va_arg(ap, char *); + req->ptr1 = xstrdup((char *)req->ptr1); req->flags |= EIO_FLAG_PTR1_FREE; - req->ptr1 = xstrdup(path); + req->ptr2 = va_arg(ap, char *); + req->ptr2 = xstrdup((char *)req->ptr2); req->flags |= EIO_FLAG_PTR2_FREE; - req->ptr2 = xstrdup(npath); + cb = rpmeioCB; + data = "rename"; break; case EIO_MKNOD: - path = va_arg(ap, const char *); - mode = va_arg(ap, mode_t); - dev = va_arg(ap, dev_t); + req->ptr1 = va_arg(ap, char *); + req->ptr1 = xstrdup((char *)req->ptr1); + req->flags |= EIO_FLAG_PTR1_FREE; + req->int2 = va_arg(ap, mode_t); + req->offs = va_arg(ap, dev_t); cb = rpmeioCB; data = "mknod"; -// req = eio_mknod(path, mode, dev, pri, cb, data); - req->flags |= EIO_FLAG_PTR1_FREE; - req->ptr1 = xstrdup(path); - req->int2 = (long)mode; - req->offs = (off_t)dev; break; case EIO_LINK: - path = va_arg(ap, const char *); - npath = va_arg(ap, const char *); - cb = rpmeioCB; - data = "link"; -// req = eio_link(path, npath, pri, cb, data); + req->ptr1 = va_arg(ap, char *); + req->ptr1 = xstrdup((char *)req->ptr1); req->flags |= EIO_FLAG_PTR1_FREE; - req->ptr1 = xstrdup(path); + req->ptr2 = va_arg(ap, char *); + req->ptr2 = xstrdup((char *)req->ptr2); req->flags |= EIO_FLAG_PTR2_FREE; - req->ptr2 = xstrdup(npath); + cb = rpmeioCB; + data = "link"; break; case EIO_SYMLINK: - path = va_arg(ap, const char *); - npath = va_arg(ap, const char *); - cb = rpmeioCB; - data = "symlink"; -// req = eio_symlink(path, npath, pri, cb, data); + req->ptr1 = va_arg(ap, char *); + req->ptr1 = xstrdup((char *)req->ptr1); req->flags |= EIO_FLAG_PTR1_FREE; - req->ptr1 = xstrdup(path); + req->ptr2 = va_arg(ap, char *); + req->ptr2 = xstrdup((char *)req->ptr2); req->flags |= EIO_FLAG_PTR2_FREE; - req->ptr2 = xstrdup(npath); + cb = rpmeioCB; + data = "symlink"; break; case EIO_READLINK: - path = va_arg(ap, const char *); + req->ptr1 = va_arg(ap, char *); + req->ptr1 = xstrdup((char *)req->ptr1); + req->flags |= EIO_FLAG_PTR1_FREE; cb = rpmeioCB; data = "readlink"; -// req = eio_readlink(path, pri, cb, data); - req->flags |= EIO_FLAG_PTR1_FREE; - req->ptr1 = xstrdup(path); break; default: assert(0); @@ -906,33 +775,9 @@ va_end(ap); -// eio->req.next = NULL; -// eio->req.wd = NULL; -// eio->req.result = 0; -// eio->req.offs = 0; -// eio->req.size = 0; -// eio->req.ptr1 = NULL; -// eio->req.ptr2 = NULL; -// eio->req.nv1 = 0.0; -// eio->req.nv2 = 0.0; -// eio->req.int1 = 0; -// eio->req.int2 = 0; -// eio->req.int3 = 0; -// eio->req.errorno = 0; - -// eio->req.type = reqtype; -// eio->req.cancelled = 0; -// eio->req.flags = 0; eio->req.pri = pri; - eio->req.data = data; eio->req.finish = cb; -// eio->req.destroy = Eio_destroy; - -// eio->req.feed = NULL; -// eio->req.grp = NULL; -// eio->req.grp_prev = NULL; -// eio->req.grp_next = NULL; rpmeioDumpREQ(__FUNCTION__, req, NULL); @@ -942,387 +787,235 @@ return req; } -static int rpmeioReqCompare(eio_req * Areq, eio_req * Breq) -{ - int rc = 0; -#ifdef NOTYET -rpmeioDumpREQ(__FUNCTION__, Areq, NULL); -rpmeioDumpREQ(__FUNCTION__, Breq, NULL); - - Eio_destroy(Areq); -#endif - - return rc; -} - /*==============================================================*/ eio_req *Eio_wd_open (const char *path, int pri, eio_cb cb, void *data) { - eio_req * req = rpmeioReq(EIO_WD_OPEN, path, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - - return req; + return Eio_submit( Eio_request(EIO_WD_OPEN, path, pri, cb, data) ); } eio_req *Eio_wd_close (eio_wd wd, int pri, eio_cb cb, void *data) { - eio_req *req = rpmeioReq(EIO_WD_CLOSE, wd, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_WD_CLOSE, wd, pri, cb, data) ); } eio_req *Eio_nop (int pri, eio_cb cb, void *data) { - eio_req *req = rpmeioReq(EIO_NOP, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_NOP, pri, cb, data) ); } eio_req *Eio_busy (eio_tstamp delay, int pri, eio_cb cb, void *data) { - eio_req *req = rpmeioReq(EIO_BUSY, delay, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_BUSY, delay, pri, cb, data) ); } eio_req *Eio_sync (int pri, eio_cb cb, void *data) { - eio_req *req = rpmeioReq(EIO_SYNC, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_SYNC, pri, cb, data) ); } eio_req *Eio_fsync (int fd, int pri, eio_cb cb, void *data) { - eio_req *req = rpmeioReq(EIO_FSYNC, fd, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_FSYNC, fd, pri, cb, data) ); } eio_req *Eio_fdatasync (int fd, int pri, eio_cb cb, void *data) { - eio_req *req = rpmeioReq(EIO_FDATASYNC, fd, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_FDATASYNC, fd, pri, cb, data) ); } eio_req *Eio_syncfs (int fd, int pri, eio_cb cb, void *data) { - eio_req *req = rpmeioReq(EIO_SYNC, fd, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_SYNC, fd, pri, cb, data) ); } eio_req *Eio_msync (void *addr, size_t length, int flags, int pri, eio_cb cb, void *data) { - eio_req *req = rpmeioReq(EIO_MSYNC, addr, length, flags, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_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) { - eio_req *req = rpmeioReq(EIO_MTOUCH, addr, length, flags, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_MTOUCH, addr, length, flags, pri, cb, data) ); } eio_req *Eio_mlock (void *addr, size_t length, int pri, eio_cb cb, void *data) { - eio_req *req = rpmeioReq(EIO_MLOCK, addr, length, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_MLOCK, addr, length, pri, cb, data) ); } eio_req *Eio_mlockall (int flags, int pri, eio_cb cb, void *data) { - eio_req *req = rpmeioReq(EIO_MLOCKALL, flags, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_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) { - eio_req *req = rpmeioReq(EIO_SYNC_FILE_RANGE, fd, offset, nbytes, flags, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_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) { - eio_req *req = rpmeioReq(EIO_FALLOCATE, fd, mode, offset, len, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_FALLOCATE, fd, mode, offset, len, pri, cb, data) ); } eio_req *Eio_close (int fd, int pri, eio_cb cb, void *data) { - eio_req *req = rpmeioReq(EIO_CLOSE, fd, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_CLOSE, fd, pri, cb, data) ); } eio_req *Eio_readahead (int fd, off_t offset, size_t length, int pri, eio_cb cb, void *data) { - eio_req *req = rpmeioReq(EIO_READAHEAD, fd, offset, length, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_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) { - eio_req *req = rpmeioReq(EIO_SEEK, fd, offset, whence, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_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) { - eio_req *req = rpmeioReq(EIO_READ, fd, buf, length, offset, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_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) { - eio_req *req = rpmeioReq(EIO_WRITE, fd, buf, length, offset, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_WRITE, fd, buf, length, offset, pri, cb, data) ); } eio_req *Eio_fstat (int fd, int pri, eio_cb cb, void *data) { - eio_req *req = rpmeioReq(EIO_FSTAT, fd, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_FSTAT, fd, pri, cb, data) ); } eio_req *Eio_fstatvfs (int fd, int pri, eio_cb cb, void *data) { - eio_req *req = rpmeioReq(EIO_FSTATVFS, fd, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_FSTATVFS, fd, pri, cb, data) ); } eio_req *Eio_futime (int fd, eio_tstamp atime, eio_tstamp mtime, int pri, eio_cb cb, void *data) { - eio_req *req = rpmeioReq(EIO_FUTIME, fd, atime, mtime, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_FUTIME, fd, atime, mtime, pri, cb, data) ); } eio_req *Eio_ftruncate (int fd, off_t offset, int pri, eio_cb cb, void *data) { - eio_req *req = rpmeioReq(EIO_FTRUNCATE, fd, offset, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_FTRUNCATE, fd, offset, pri, cb, data) ); } eio_req *Eio_fchmod (int fd, mode_t mode, int pri, eio_cb cb, void *data) { - eio_req *req = rpmeioReq(EIO_FCHMOD, fd, mode, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_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) { - eio_req *req = rpmeioReq(EIO_FCHOWN, fd, uid, gid, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_FCHOWN, fd, uid, gid, pri, cb, data) ); } eio_req *Eio_dup2 (int fd, int fd2, int pri, eio_cb cb, void *data) { - eio_req *req = rpmeioReq(EIO_DUP2, fd, fd2, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_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) { - eio_req *req = rpmeioReq(EIO_SENDFILE, out_fd, in_fd, in_offset, length, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_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) { - eio_req *req = rpmeioReq(EIO_OPEN, path, flags, mode, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_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) { - eio_req *req = rpmeioReq(EIO_UTIME, path, atime, mtime, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_UTIME, path, atime, mtime, pri, cb, data) ); } eio_req *Eio_truncate (const char *path, off_t offset, int pri, eio_cb cb, void *data) { - eio_req *req = rpmeioReq(EIO_TRUNCATE, path, offset, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_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) { - eio_req *req = rpmeioReq(EIO_CHOWN, path, uid, gid, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_CHOWN, path, uid, gid, pri, cb, data) ); } eio_req *Eio_chmod (const char *path, mode_t mode, int pri, eio_cb cb, void *data) { - eio_req *req = rpmeioReq(EIO_CHMOD, path, mode, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_CHMOD, path, mode, pri, cb, data) ); } eio_req *Eio_mkdir (const char *path, mode_t mode, int pri, eio_cb cb, void *data) { - eio_req *req = rpmeioReq(EIO_MKDIR, path, mode, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_MKDIR, path, mode, pri, cb, data) ); } eio_req *Eio_readdir (const char *path, int flags, int pri, eio_cb cb, void *data) { - eio_req *req = rpmeioReq(EIO_READDIR, path, flags, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_READDIR, path, flags, pri, cb, data) ); } eio_req *Eio_rmdir (const char *path, int pri, eio_cb cb, void *data) { - eio_req *req = rpmeioReq(EIO_RMDIR, path, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_RMDIR, path, pri, cb, data) ); } eio_req *Eio_unlink (const char *path, int pri, eio_cb cb, void *data) { - eio_req *req = rpmeioReq(EIO_UNLINK, path, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_UNLINK, path, pri, cb, data) ); } eio_req *Eio_readlink (const char *path, int pri, eio_cb cb, void *data) { - eio_req *req = rpmeioReq(EIO_READLINK, path, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_READLINK, path, pri, cb, data) ); } eio_req *Eio_realpath (const char *path, int pri, eio_cb cb, void *data) { - eio_req *req = rpmeioReq(EIO_REALPATH, path, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_REALPATH, path, pri, cb, data) ); } eio_req *Eio_stat (const char *path, int pri, eio_cb cb, void *data) { - eio_req *req = rpmeioReq(EIO_STAT, path, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_STAT, path, pri, cb, data) ); } eio_req *Eio_lstat (const char *path, int pri, eio_cb cb, void *data) { - eio_req *req = rpmeioReq(EIO_LSTAT, path, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_LSTAT, path, pri, cb, data) ); } eio_req *Eio_statvfs (const char *path, int pri, eio_cb cb, void *data) { - eio_req *req = rpmeioReq(EIO_STATVFS, path, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_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) { - eio_req *req = rpmeioReq(EIO_MKNOD, path, mode, dev, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_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) { - eio_req *req = rpmeioReq(EIO_LINK, path, new_path, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_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) { - eio_req *req = rpmeioReq(EIO_SYMLINK, path, new_path, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_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) { - eio_req *req = rpmeioReq(EIO_RENAME, path, new_path, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_RENAME, path, new_path, pri, cb, data) ); } eio_req *Eio_custom (void (*execute)(eio_req *), int pri, eio_cb cb, void *data) { - eio_req *req = rpmeioReq(EIO_CUSTOM, execute, pri, cb, data); - Eio_submit(req); -SPEW("<-- %s(%s|%p) req %p\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), req); - return req; + return Eio_submit( Eio_request(EIO_CUSTOM, execute, pri, cb, data) ); } /*==============================================================*/ @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/rpmeio.h ============================================================================ $ cvs diff -u -r1.1.2.3 -r1.1.2.4 rpmeio.h --- rpm/rpmio/rpmeio.h 16 Jun 2017 06:14:09 -0000 1.1.2.3 +++ rpm/rpmio/rpmeio.h 16 Jun 2017 12:30:30 -0000 1.1.2.4 @@ -104,7 +104,9 @@ void Eio_cancel(eio_req * req); void Eio_destroy(eio_req * req); -void Eio_submit(eio_req * req); + +eio_req * Eio_request(int reqtype, ...); +eio_req * Eio_submit(eio_req * req); int rpmeioCB(eio_req * req); int rpmeioCB_readdir(eio_req * req); @@ . ______________________________________________________________________ RPM Package Manager http://rpm5.org CVS Sources Repository [email protected]
