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]

Reply via email to