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: 29-May-2017 22:06:48 Branch: rpm-5_4 Handle: 2017052920064800 Modified files: (Branch: rpm-5_4) rpm/rpmio tmq.c Log: - stub in linux libaio API. Summary: Revision Changes Path 1.1.2.13 +177 -1 rpm/rpmio/tmq.c ____________________________________________________________________________ patch -p0 <<'@@ .' Index: rpm/rpmio/tmq.c ============================================================================ $ cvs diff -u -r1.1.2.12 -r1.1.2.13 tmq.c --- rpm/rpmio/tmq.c 29 May 2017 16:21:01 -0000 1.1.2.12 +++ rpm/rpmio/tmq.c 29 May 2017 20:06:48 -0000 1.1.2.13 @@ -30,6 +30,16 @@ # include <semaphore.h> #endif +#define HAVE_AIO_H 1 /* XXX */ +#if defined(HAVE_AIO_H) +# include <aio.h> +#endif + +#define HAVE_LIBAIO_H 1 /* XXX */ +#if defined(HAVE_LIBAIO_H) +# include <libaio.h> +#endif + #define HAVE_MQUEUE_H 1 /* XXX */ #if defined(HAVE_MQUEUE_H) # include <mqueue.h> @@ -497,6 +507,171 @@ return rc; } +/*==============================================================*/ +static +int IO_queue_init(int maxevents, io_context_t *ctxp) +{ + int rc = io_queue_init(maxevents, ctxp); +fprintf(stderr, "<-- %s(%d,%p) rc %d\n", __FUNCTION__, maxevents, ctxp, rc); + return rc; +} + +static +int IO_queue_release(io_context_t ctx) +{ + int rc = io_queue_release(ctx); +fprintf(stderr, "<-- %s(%p) rc %d\n", __FUNCTION__, ctx, rc); + return rc; +} + +static +int IO_queue_run(io_context_t ctx) +{ + int rc = io_queue_run(ctx); +fprintf(stderr, "<-- %s(%p) rc %d\n", __FUNCTION__, ctx, rc); + return rc; +} + +static +int IO_setup(int maxevents, io_context_t *ctxp) +{ + int rc = io_setup(maxevents, ctxp); +fprintf(stderr, "<-- %s(%d,%p) rc %d\n", __FUNCTION__, maxevents, ctxp, rc); + return rc; +} + +static +int IO_destroy(io_context_t ctx) +{ + int rc = io_destroy(ctx); +fprintf(stderr, "<-- %s(%p) rc %d\n", __FUNCTION__, ctx, rc); + return rc; +} + +static +int IO_submit(io_context_t ctx, long nr, struct iocb *iocbs[]) +{ + int rc = io_submit(ctx, nr, iocbs); +fprintf(stderr, "<-- %s(%p,%ld,%p) rc %d\n", __FUNCTION__, ctx, nr, iocbs, rc); + return rc; +} + +static +int IO_cancel(io_context_t ctx, struct iocb *iocb, struct io_event *evt) +{ + int rc = io_cancel(ctx, iocb, evt); +fprintf(stderr, "<-- %s(%p,%p,%p) rc %d\n", __FUNCTION__, ctx, iocb, evt, rc); + return rc; +} + +static +int IO_getevents(io_context_t ctx, long min_nr, long nr, + struct io_event *events, struct timespec *timeout) +{ + int rc = io_getevents(ctx, min_nr, nr, events, timeout); +fprintf(stderr, "<-- %s(%p,%ld,%ld,%p,%p) rc %d\n", __FUNCTION__, ctx, min_nr, nr, events, timeout, rc); + return rc; +} + +static +void IO_set_callback(struct iocb *iocb, io_callback_t cb) +{ +fprintf(stderr, "--> %s(%p,%p)\n", __FUNCTION__, iocb, cb); + io_set_callback(iocb, cb); +} + +static +void IO_prep_pread(struct iocb *iocb, + int fd, void *buf, size_t count, long long offset) +{ +fprintf(stderr, "--> %s(%p,%d,%p[%zu],%lld)\n", __FUNCTION__, iocb, fd, buf, count, offset); + io_prep_pread(iocb, fd, buf, count, offset); +} + +static +void IO_prep_pwrite(struct iocb *iocb, + int fd, void *buf, size_t count, long long offset) +{ +fprintf(stderr, "--> %s(%p,%d,%p[%zu],%lld)\n", __FUNCTION__, iocb, fd, buf, count, offset); + io_prep_pwrite(iocb, fd, buf, count, offset); +} + +static +void IO_prep_preadv(struct iocb *iocb, + int fd, const struct iovec *iov, int iovcnt, long long offset) +{ +fprintf(stderr, "--> %s(%p,%d,%p[%u],%lld)\n", __FUNCTION__, iocb, fd, iov, iovcnt, offset); +} + +static +void IO_prep_pwritev(struct iocb *iocb, + int fd, const struct iovec *iov, int iovcnt, long long offset) +{ +fprintf(stderr, "--> %s(%p,%d,%p[%u],%lld)\n", __FUNCTION__, iocb, fd, iov, iovcnt, offset); + io_prep_pwritev(iocb, fd, iov, iovcnt, offset); +} + +static +void IO_prep_poll(struct iocb *iocb, int fd, int events) +{ +fprintf(stderr, "--> %s(%p,%d,%d)\n", __FUNCTION__, iocb, fd, events); + io_prep_poll(iocb, fd, events); +} + +static +int IO_poll(io_context_t ctx, struct iocb *iocb, io_callback_t cb, + int fd, int events) +{ + int rc = io_poll(ctx, iocb, cb, fd, events); +fprintf(stderr, "<-- %s(%p,%p,%p,%d,%d) rc %d\n", __FUNCTION__, ctx, iocb, cb, fd, events, rc); + return rc; +} + +static +void IO_prep_fsync(struct iocb *iocb, int fd) +{ +fprintf(stderr, "--> %s(%p,%d)\n", __FUNCTION__, iocb, fd); + io_prep_fsync(iocb, fd); +} + +static +int IO_fsync(io_context_t ctx, struct iocb *iocb, io_callback_t cb, int fd) +{ + int rc = io_fsync(ctx, iocb, cb, fd); +fprintf(stderr, "<-- %s(%p,%p,%p,%d) rc %d\n", __FUNCTION__, ctx, iocb, cb, fd, rc); + return rc; +} + +static +void IO_prep_fdsync(struct iocb *iocb, int fd) +{ +fprintf(stderr, "--> %s(%p,%d)\n", __FUNCTION__, iocb, fd); + io_prep_fdsync(iocb, fd); +} + +static +int IO_fdsync(io_context_t ctx, struct iocb *iocb, io_callback_t cb, int fd) +{ + int rc = io_fdsync(ctx, iocb, cb, fd); +fprintf(stderr, "<-- %s(%p,%p,%p,%d) rc %d\n", __FUNCTION__, ctx, iocb, cb, fd, rc); + return rc; +} + +static +void IO_set_eventfd(struct iocb *iocb, int eventfd) +{ +fprintf(stderr, "--> %s(%p,%d)\n", __FUNCTION__, iocb, eventfd); + io_set_eventfd(iocb, eventfd); +} + +/*==============================================================*/ +static int doLAIO(ARGV_t av, int ac) +{ + int rc = -2; /* assume failure */ + + rc = 0; + return rc; +} /*==============================================================*/ #if !defined(POPT_BIT_XOR) @@ -551,10 +726,11 @@ if (qname == NULL) qname = xstrdup("rpm"); - switch (2) { + switch (4) { case 1: ec = doSHM(av, ac); break; case 2: ec = doMSQ(av, ac); break; case 3: ec = doTIMER(av, ac); break; + case 4: ec = doLAIO(av, ac); break; } qname = _free(qname); @@ . ______________________________________________________________________ RPM Package Manager http://rpm5.org CVS Sources Repository [email protected]
