cb_ops man page on SmartOS

Man page or keyword search:  
man Server   16655 pages
apropos Keyword Search (all sections)
Output format
SmartOS logo
[printable version]

CB_OPS(9S)							    CB_OPS(9S)

NAME
       cb_ops - character/block entry points structure

SYNOPSIS
       #include <sys/conf.h>
       #include <sys/ddi.h>
       #include <sys/sunddi.h>

INTERFACE LEVEL
       Solaris DDI specific (Solaris DDI)

DESCRIPTION
       The cb_ops structure contains all entry points for drivers that support
       both character and block entry points. All  leaf	 device	 drivers  that
       support	direct user process access to a device should declare a cb_ops
       structure.

       All drivers that safely allow multiple  threads	of  execution  in  the
       driver  at  the	same time must set the D_MP flag in the cb_flag field.
       See open(9E).

       If the driver properly handles 64-bit offsets, it should also  set  the
       D_64BIT	flag in the cb_flag field. This specifies that the driver will
       use the uio_loffset field of the uio(9S) structure.

       If the driver returns EINTR from	 open(9E),  it	should	also  set  the
       D_OPEN_RETURNS_EINTR flag in the cb_flag field. This lets the framework
       know that it is safe for the driver to return EINTR  when  waiting,  to
       provide	exclusion  for	a  last-reference  close(9E)  call to complete
       before calling open(9E).

       The mt-streams(9F) function describes other flags that can  be  set  in
       the cb_flag field.

       The  cb_rev is the cb_ops structure revision number. This field must be
       set to CB_REV.

       Non-STREAMS drivers should set cb_str to NULL.

       The following DDI/DKI or DKI-only or DDI-only functions are provided in
       the character/block driver operations structure.

       block/char    Function	 Description
       ──────────────────────────────────────────
       b/c	    XXopen	 DDI/DKI
       b/c	    XXclose	 DDI/DKI
       b	    XXstrategy	 DDI/DKI
       b	    XXprint	 DDI/DKI
       b	    XXdump	 DDI(Sun)
       c	    XXread	 DDI/DKI

       c	    XXwrite	 DDI/DKI
       c	    XXioctl	 DDI/DKI
       c	    XXdevmap	 DDI(Sun)
       c	    XXmmap	 DKI
       c	    XXsegmap	 DKI
       c	    XXchpoll	 DDI/DKI
       c	    XXprop_op	 DDI(Sun)
       c	    XXaread	 DDI(Sun)
       c	    XXawrite	 DDI(Sun)

STRUCTURE MEMBERS
	 int  (*cb_open)(dev_t *devp, int flag, int otyp, cred_t *credp);
	 int  (*cb_close)(dev_t dev, int flag, int otyp, cred_t *credp);
	 int  (*cb_strategy)(struct buf *bp);
	 int  (*cb_print)(dev_t dev, char *str);
	 int  (*cb_dump)(dev_t dev, caddr_t addr, daddr_t blkno, int nblk);
	 int  (*cb_read)(dev_t dev, struct uio *uiop, cred_t *credp);
	 int  (*cb_write)(dev_t dev, struct uio *uiop, cred_t *credp);
	 int  (*cb_ioctl)(dev_t dev, int cmd, intptr_t arg, int mode,
		 cred_t *credp, int *rvalp);
	 int  (*cb_devmap)(dev_t dev, devmap_cookie_t dhp, offset_t off,
		 size_t len, size_t *maplen, uint_t model);
	 int  (*cb_mmap)(dev_t dev, off_t off, int prot);
	 int  (*cb_segmap)(dev_t dev, off_t off, struct as *asp,
		 caddr_t *addrp, off_t len, unsigned int prot,
		 unsigned int maxprot, unsigned int flags, cred_t *credp);
	 int  (*cb_chpoll)(dev_t dev, short events, int anyyet,
		 short *reventsp, struct pollhead **phpp);
	 int  (*cb_prop_op)(dev_t dev, dev_info_t *dip,
		 ddi_prop_op_t prop_op, int mod_flags,
		 char *name, caddr_t valuep, int *length);
	 struct streamtab *cb_str;   /* streams information */
	 int  cb_flag;
	 int  cb_rev;
	 int  (*cb_aread)(dev_t dev, struct aio_req *aio, cred_t *credp);
	 int  (*cb_awrite)(dev_t dev, struct aio_req *aio, cred_t *credp);

SEE ALSO
       aread(9E),  awrite(9E),	chpoll(9E),  close(9E),	 dump(9E),  ioctl(9E),
       mmap(9E),  open(9E),  print(9E),	 prop_op(9E),  read(9E),   segmap(9E),
       strategy(9E),	write(9E),   nochpoll(9F),   nodev(9F),	  nulldev(9F),
       dev_ops(9S), qinit(9S)

       Writing Device Drivers

       STREAMS Programming Guide

				 Apr 24, 2008			    CB_OPS(9S)
[top]

List of man pages available for SmartOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net