The Customized Device Driver (CuDvDr) object class stores information about critical resources that need concurrence management through the use of the Device Configuration Library subroutines. You should only access this object class through these five Device Configuration Library subroutines: the genmajor, genminor, relmajor, reldevno, and getminor subroutines.
These subroutines exclusively lock this class so that accesses to it are serialized. The genmajor and genminor routines return the major and minor number, respectively, to the calling method. Similarly, the reldevno and relmajor routines release the major or minor number, respectively, from this object class.
The Customized Device Driver object class contains the following descriptors:
ODM Type | Descriptor Name | Description | Descriptor Status |
---|---|---|---|
ODM_CHAR | resource[RESOURCESIZE] | Resource Name | Required |
ODM_CHAR | value1[VALUESIZE] | Value1 | Required |
ODM_CHAR | value2[VALUESIZE] | Value2 | Required |
ODM_CHAR | value3[VALUESIZE] | Value3 | Required |
The Resource descriptor determines the nature of the values in the Value1, Value2, and Value3 descriptors. Possible values for the Resource Name descriptor are the strings devno and ddins.
The following table specifies the contents of the Value1, Value2, and Value3 descriptors, depending on the contents of the Resource Name descriptor.
Resource | Value1 | Value2 | Value3 |
---|---|---|---|
devno | Major number | Minor number | Device instance name |
ddins | Dd instance name | Major number | Null string |
When the Resource Name descriptor contains the devno string, the Value1 field contains the device major number, Value2 the device minor number, and Value3 the device instance name. These value descriptors are filled in by the genminor subroutine, which takes a major number and device instance name as input and generates the minor number and resulting devno Customized Device Driver object.
When the Resource Name descriptor contains the ddins string, the Value1 field contains the device driver instance name. This is typically the device driver name obtained from the Device Driver Name descriptor of the Predefined Device object. However, this name can be any unique string and is used by device methods to obtain the device driver major number. The Value2 field contains the device major number and the Value3 field is not used. These value descriptors are set by the genmajor subroutine, which takes a device instance name as input and generates the corresponding major number and resulting ddins Customized Device Driver object.