| FIDO_DEV_SET_IO_FUNCTIONS(3) | Library Functions Manual | FIDO_DEV_SET_IO_FUNCTIONS(3) |
fido_dev_set_io_functions,
fido_dev_set_sigmask,
fido_dev_set_timeout — FIDO
2 device I/O interface
#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;
#ifdef _WIN32
typedef int fido_sigset_t;
#else
typedef sigset_t fido_sigset_t;
#endif
fido_dev_set_io_functions(fido_dev_t
*dev, const fido_dev_io_t
*io);
int
fido_dev_set_sigmask(fido_dev_t
*dev, const fido_sigset_t
*sigmask);
int
fido_dev_set_timeout(fido_dev_t
*dev, int ms);
The
fido_dev_set_io_functions()
function sets the I/O handlers used by libfido2 to talk to
dev. By default, these handlers are set to the
operating system's native HID or NFC interfaces. They are defined as
follows:
When calling
fido_dev_set_io_functions(),
the open, close,
read, and write fields of
io may not be NULL.
No references to
io are held by
fido_dev_set_io_functions().
The
fido_dev_set_sigmask()
function may be used to specify a non-NULL signal mask
sigmask to be used while
libfido2's
default I/O handlers wait on dev. On UNIX-like
operating systems, fido_sigset_t is defined as
sigset_t. On Windows,
fido_sigset_t is defined as int
and fido_dev_set_sigmask() is a no-op.
No references to
sigmask are held by
fido_dev_set_sigmask().
The
fido_dev_set_timeout()
function informs libfido2 not to block for more than
ms milliseconds while communicating with
dev. If a timeout occurs, the corresponding
fido_dev_*
function will fail with FIDO_ERR_RX. If
ms is -1, then libfido2 may block
indefinitely. This is the default behaviour. When using the Windows Hello
backend, ms is used as a guidance and may be
overwritten by the platform.
On success, fido_dev_set_io_functions(),
fido_dev_set_sigmask(), and
fido_dev_set_timeout() return
FIDO_OK. On error, a different error code defined in
<fido/err.h> is
returned.
| May 25, 2018 | Yubico AB |