You will need to do the following:
Determine the list of supported features for each device. The list of supported features must be a subset of those supported by the protocol. Also, determine the list of supported memory locations.
Memory locations sharing the same characteristics and which can be read contiguously should be grouped to form a domain.
Assign a domain index to each domain. If using standard addressing, each domain should also be assigned a name of up to 16 characters. The domain index must be between '0' and '254', and should be sequential. Each domain must have a unique index (and where standard addressing is used, a unique name).
Determine the value used to identify the first memory location in each domain.
Determine the number of elements in each domain.
Determine the form of addressing used to reference an element in the domain. The available forms are:
TOOLKIT_BIT (1 bit long)
TOOLKIT_BYTE (1 byte long)
TOOLKIT_WORD (2 bytes long)
TOOLKIT_4BYTE (4 bytes long)
TOOLKIT_8BYTE (8 bytes long)
Incorporate the above information in user_device_info() in usrtm_dvin.c.