Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
FIDO_DEV_INFO_MANIFEST(3)   Library Functions Manual FIDO_DEV_INFO_MANIFEST(3)

NAME
       fido_dev_info_manifest,	    fido_dev_info_new,	   fido_dev_info_free,
       fido_dev_info_ptr,      fido_dev_info_path,	fido_dev_info_product,
       fido_dev_info_vendor,		    fido_dev_info_manufacturer_string,
       fido_dev_info_product_string, fido_dev_info_set -- FIDO2	device discov-
       ery functions

SYNOPSIS
       #include	<fido.h>

       int
       fido_dev_info_manifest(fido_dev_info_t	 *devlist,    size_t	 ilen,
	   size_t *olen);

       fido_dev_info_t *
       fido_dev_info_new(size_t	n);

       void
       fido_dev_info_free(fido_dev_info_t **devlist_p, size_t n);

       const fido_dev_info_t *
       fido_dev_info_ptr(const fido_dev_info_t *devlist, size_t	i);

       const char *
       fido_dev_info_path(const	fido_dev_info_t	*di);

       int16_t
       fido_dev_info_product(const fido_dev_info_t *di);

       int16_t
       fido_dev_info_vendor(const fido_dev_info_t *di);

       const char *
       fido_dev_info_manufacturer_string(const fido_dev_info_t *di);

       const char *
       fido_dev_info_product_string(const fido_dev_info_t *di);

       int
       fido_dev_info_set(fido_dev_info_t *devlist, size_t i, const char	*path,
	   const      char     *manufacturer,	  const	    char     *product,
	   const fido_dev_io_t *io, const fido_dev_transport_t *transport);

DESCRIPTION
       The fido_dev_info_manifest() function fills devlist  with  up  to  ilen
       FIDO2 devices found by the underlying operating system.	Currently only
       USB HID devices are supported.  The number of discovered	devices	is re-
       turned in olen, where olen is an	addressable pointer.

       The  fido_dev_info_new()	 function  returns  a pointer to a newly allo-
       cated, empty device list	with n available  slots.   If  memory  is  not
       available, NULL is returned.

       The   fido_dev_info_free()   function   releases	  the  memory  backing
       *devlist_p, where *devlist_p must have  been  previously	 allocated  by
       fido_dev_info_new().  The number	n of allocated slots must also be pro-
       vided.	On  return,  *devlist_p	 is  set to NULL.  Either devlist_p or
       *devlist_p may be NULL, in which	case fido_dev_info_free() is a NOP.

       The fido_dev_info_ptr() function	returns	a pointer to slot number i  of
       devlist.	  It  is  the  caller's	 responsibility	 to  ensure  that i is
       bounded.	 Please	note that the first slot has index 0.

       The fido_dev_info_path()	function returns the filesystem	path  or  sub-
       system-specific identification string of	di.

       The fido_dev_info_product() function returns the	product	ID of di.

       The fido_dev_info_vendor() function returns the vendor ID of di.

       The  fido_dev_info_manufacturer_string()	 function returns the manufac-
       turer string of di.  If di does not  have  an  associated  manufacturer
       string, fido_dev_info_manufacturer_string() returns an empty string.

       The  fido_dev_info_product_string() function returns the	product	string
       of  di.	 If  di	 does  not  have   an	associated   product   string,
       fido_dev_info_product_string() returns an empty string.

       An  example  of how to use the functions	described in this document can
       be found	in the examples/manifest.c file	shipped	with libfido2.

       The fido_dev_info_set() function	initializes an entry in	a device  list
       allocated by fido_dev_info_new()	with the specified path, manufacturer,
       and  product  strings, and with the specified I/O handlers and, option-
       ally,	  transport	  functions,	   as	    described	    in
       fido_dev_set_io_functions(3).   The  io argument	must be	specified; the
       transport argument may be NULL.	The path, I/O handlers,	and  transport
       functions  will	be used	automatically by fido_dev_new_with_info(3) and
       fido_dev_open_with_info(3).  An application can use this, for  example,
       to  substitute  mock  FIDO2  devices  in	testing	for the	real ones that
       fido_dev_info_manifest()	would discover.

RETURN VALUES
       The fido_dev_info_manifest() function always  returns  FIDO_OK.	 If  a
       discovery error occurs, the olen	pointer	is set to 0.

       On  success,  the fido_dev_info_set() function returns FIDO_OK.	On er-
       ror, a different	error code defined in <fido/err.h> is returned.

       The pointers  returned  by  fido_dev_info_ptr(),	 fido_dev_info_path(),
       fido_dev_info_manufacturer_string(), and	fido_dev_info_product_string()
       are  guaranteed	to  exist  until fido_dev_info_free() is called	on the
       corresponding device list.

FreeBSD	Ports 14.quarterly	March 30, 2022	     FIDO_DEV_INFO_MANIFEST(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=fido_dev_info_path&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help