Checks the status of a device switch entry in the device switch table.
#include <sys/types.h> #include <sys/errno.h> #include <sys/device.h>int devswqry (devno, status, dsdptr) dev_t devno; uint *status; caddr_t *dsdptr;
devno | Specifies the major and minor device numbers of the device to be queried. |
status | Points to the status of the specified device entry in the device switch table. This parameter is passed by reference. |
dsdptr | Points to device-dependent information for the specified device entry in the device switch table. This parameter is passed by reference. |
The devswqry kernel service returns the status of a specified device entry in the device switch table. The entry in the table to query is determined by the major portion of the device number specified in the devno parameter. The status of the entry is returned in the status parameter that is passed by reference on the call. If this pointer is null on entry to the devswqry service, then the status is not returned to the caller.
The devswqry service also returns the address of device-dependent information for the specified device entry in the device switch table. This address is taken from the d_dsdptr field for the entry and returned in the dsdptr parameter, which is passed by reference. If this pointer is null on entry to the devswqry service, then the service does not return the address from the d_dsdptr field to the caller.
The status parameter comprises a set of flags that can indicate the following conditions:
DSW_BLOCK | Device switch entry is defined by a block device driver. This flag is set when the device driver has a ddstrategy entry point. |
DSW_CONFIG | Device driver in this device switch entry provides an entry point for configuration. |
DSW_CREAD | Device driver in this device switch entry is providing a routine for character reads or raw input. This flag is set when the device driver has a ddread entry point. |
DSW_CWRITE | Device driver in this device switch entry is providing a routine for character writes or raw output. This flag is set when the device driver has a ddwrite entry point. |
DSW_DEFINED | Device switch entry is defined. |
DSW_DUMP | Device driver defined by this device switch entry provides the capability to support one or more of its devices as targets for a kernel dump. This flag is set when the device driver has provided a dddump entry point. |
DSW_MPX | Device switch entry is defined by a multiplexed device driver. This flag is set when the device driver has a ddmpx entry point. |
DSW_OPENED | Device switch entry is in use and the device has outstanding opens. This flag is set when the device driver has at least one outstanding open. |
DSW_SELECT | Device driver in this device switch entry provides a routine for handling the select or poll subroutines. This flag is set when the device driver has provided a ddselect entry point. |
DSW_TCPATH | Device driver in this device switch entry supports devices that are considered to be in the trusted computing path and provide support for the revoke function. This flag is set when the device driver has provided a ddrevoke entry point. |
DSW_TTY | Device switch entry is in use by a tty device driver. This flag is set when the pointer to the d_ttys structure is not a null character. |
DSW_UNDEFINED | Device switch entry is not defined. |
The status parameter is set to the DSW_UNDEFINED flag when a device switch entry is not in use. This is the case if either of the following are true:
No other flags are set when the DSW_UNDEFINED flag is set.
Note: The status parameter must be a null character if called from the interrupt environment.
The devswqry kernel service can be called from either the process or interrupt environment.
0 | Indicates a successful operation. |
EINVAL | Indicates that the major device number portion of the devno parameter exceeds the maximum permitted number of device switch entries. |
The devswqry kernel service is part of Base Operating System (BOS) Runtime.
The devswadd kernel service, devswchg kernel service, devswdel kernel service.
Kernel Extension and Device Driver Management Kernel Services.