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

FreeBSD Manual Pages

  
 
  

home | help
DEVFS_CDEVPRIV(9)	 BSD Kernel Developer's	Manual	     DEVFS_CDEVPRIV(9)

NAME
     devfs_set_cdevpriv, devfs_get_cdevpriv, devfs_clear_cdevpriv -- manage
     per-open filedescriptor data for devices

SYNOPSIS
     #include <sys/param.h>
     #include <sys/conf.h>

     typedef void d_priv_dtor_t(void *data);

     int
     devfs_get_cdevpriv(void **datap);

     int
     devfs_set_cdevpriv(void *priv, d_priv_dtor_t *dtr);

     void
     devfs_clear_cdevpriv(void);

DESCRIPTION
     The devfs_xxx_cdevpriv() family of	functions allows the cdev driver meth-
     ods to associate some driver-specific data	with each user process open(2)
     of	the device special file.  Currently, functioning of these functions is
     restricted	to the context of the cdevsw switch method calls performed as
     devfs(5) operations in response to	system calls that use filedescriptors.

     The devfs_set_cdevpriv() function associates a data pointed by priv with
     current calling context (filedescriptor).	The data may be	retrieved
     later, possibly from another call performed on this filedescriptor, by
     the devfs_get_cdevpriv() function.	 The devfs_clear_cdevpriv() disassoci-
     ates previously attached data from	context.  Immediately after
     devfs_clear_cdevpriv() finished operating,	the dtr	callback is called,
     with private data supplied	data argument.	The devfs_clear_cdevpriv()
     function will be also be called if	the open callback function returns an
     error code.

     On	the last filedescriptor	close, system automatically arranges
     devfs_clear_cdevpriv() call.

     If	successful, the	functions return 0.

     The function devfs_set_cdevpriv() returns the following values on error:

     [ENOENT]		The current call is not	associated with	some
			filedescriptor.

     [EBUSY]		The private driver data	is already associated with
			current	filedescriptor.

     The function devfs_get_cdevpriv() returns the following values on error:

     [EBADF]		The current call is not	associated with	some
			filedescriptor.

     [ENOENT]		The private driver data	was not	associated with	cur-
			rent filedescriptor, or	devfs_clear_cdevpriv() was
			called.

SEE ALSO
     close(2), open(2),	devfs(5)

HISTORY
     The devfs_cdevpriv() family of functions first appeared in	FreeBSD	7.1.

BSD			       December	2, 2015				   BSD

NAME | SYNOPSIS | DESCRIPTION | SEE ALSO | HISTORY

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=devfs_set_cdevpriv&sektion=9&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help