Provided by: libfido2-doc_1.3.1-1ubuntu2_all bug

NAME

       fido_dev_set_io_functions — FIDO 2 device I/O interface

SYNOPSIS

       #include <fido.h>

       typedef void *fido_dev_io_open_t(const char *);
       typedef void  fido_dev_io_close_t(void *);
       typedef int   fido_dev_io_read_t(void *, unsigned char *, size_t, int);
       typedef int   fido_dev_io_write_t(void *, const unsigned char *, size_t);

       typedef struct fido_dev_io {
               fido_dev_io_open_t  *open;
               fido_dev_io_close_t *close;
               fido_dev_io_read_t  *read;
               fido_dev_io_write_t *write;
       } fido_dev_io_t;

       int
       fido_dev_set_io_functions(fido_dev_t *dev, const fido_dev_io_t *io);

DESCRIPTION

       The  fido_dev_set_io_functions  interface  defines  the  I/O  handlers used to talk to dev.  Its usage is
       optional.  By default, libfido2 will use the operating system's native HID interface to talk  to  a  FIDO
       device.

       A  fido_dev_io_open_t  function  is  expected to return a non-NULL opaque pointer on success, and NULL on
       error.  The returned opaque pointer is never dereferenced by libfido2.

       A fido_dev_io_close_t function receives the opaque handle obtained from fido_dev_io_open_t.   It  is  not
       expected to be idempotent.

       A  fido_dev_io_read_t  function  reads from dev.  The first parameter taken is the opaque handle obtained
       from fido_dev_io_open_t.  The read buffer is pointed to by the second parameter, and the third  parameter
       holds  its  size.   Finally, the last argument passed to fido_dev_io_read_t is the number of milliseconds
       the  caller  is  willing  to  sleep,  should  the  call  need  to  block.   If  this  value   holds   -1,
       fido_dev_io_read_t  may  block  indefinitely.   The  number  of  bytes read is returned.  On error, -1 is
       returned.

       Conversely, a fido_dev_io_write_t function writes to dev.  The first parameter taken is the opaque handle
       returned by fido_dev_io_open_t.  The write buffer is pointed to by the second parameter,  and  the  third
       parameter  holds  its  size.   A  fido_dev_io_write_t function may block.  The number of bytes written is
       returned.  On error, -1 is returned.

       No references to io are held by fido_dev_set_io_functions().

RETURN VALUES

       On success, fido_dev_set_io_functions() returns FIDO_OK.  On error, a different  error  code  defined  in
       <fido/err.h> is returned.

Debian                                            May 25, 2018                      FIDO_DEV_SET_IO_FUNCTIONS(3)