On Fri, Jan 31, 2020 at 10:24 AM Jens Axboe <axboe@xxxxxxxxx> wrote: > > On 1/31/20 8:00 AM, Glauber Costa wrote: > > There are situations where one does not have a ring initialized yet, and > > yet they may want to know which opcodes are supported before doing so. > > > > We have recently introduced io_uring_get_probe(io_uring*) to do a > > similar task when the ring already exists. Because this was committed > > recently and this hasn't seen a release, I thought I would just go ahead > > and change that to io_uring_get_probe_ring(io_uring*), because I suck at > > finding another meaningful name for this case (io_uring_get_probe_noring > > sounded way too ugly to me) > > > > A minimal ring is initialized and torn down inside the function. > > > > Signed-off-by: Glauber Costa <glauber@xxxxxxxxxxxx> > > --- > > src/include/liburing.h | 4 +++- > > src/liburing.map | 1 + > > src/setup.c | 15 ++++++++++++++- > > test/probe.c | 2 +- > > 4 files changed, 19 insertions(+), 3 deletions(-) > > > > diff --git a/src/include/liburing.h b/src/include/liburing.h > > index 39db902..aa11282 100644 > > --- a/src/include/liburing.h > > +++ b/src/include/liburing.h > > @@ -77,7 +77,9 @@ struct io_uring { > > * return an allocated io_uring_probe structure, or NULL if probe fails (for > > * example, if it is not available). The caller is responsible for freeing it > > */ > > -extern struct io_uring_probe *io_uring_get_probe(struct io_uring *ring); > > +extern struct io_uring_probe *io_uring_get_probe_ring(struct io_uring *ring); > > +/* same as io_uring_get_probe_ring, but takes care of ring init and teardown */ > > +extern struct io_uring_probe *io_uring_get_probe(); > > Include 'void' for no parameter. > > > @@ -186,3 +186,16 @@ fail: > > free(probe); > > return NULL; > > } > > + > > +struct io_uring_probe *io_uring_get_probe() { > > void here as well, and new line before the opening bracket. > > Minor stuff, rest looks fine to me. What's next? tabs instead of spaces? You monsters.