What is an RDR?
Created Date: 16 Mar, 2022 14:17
Last Modifed Date: 16 Mar, 2022 14:17
This page applies to Harlequin v13.1r0 and later; both Harlequin Core and Harlequin MultiRIP
An RDR is basically an address and a length, identified by Class, Type and ID, or a Namespace, Name and ID, and prioritized. Having said that, other than for a special case, the RDR system places no interpretation on the address and length RDRs can be, amongst other things:
- A block of ROM
- A block of RAM
- A memory threshold
- A size
- A number
- An address of an array and the number of members
- A string and its length
- An API implementation structure pointer.
The interpretation of the address and length is defined by the owner of the RDR Class and Type or Namespace. The only exception is the null case where both address and length are zero which has a special meaning: If a null RDR is the highest priority registration of a particular Class, Type and ID (or Namespace, Name and ID), it appears to the consumer as though the RDR has not been registered at all
SwFindRDR and the other iteration functions will fail to find anything for that Class, Type and ID (or Namespace, Name and ID). This allows one provider to suppress an RDR registered by another.