Class TkdMemoryRange
Unit
kdranges
Declaration
type TkdMemoryRange = class(TkdHWRange
)
Description
Final resource class TkdMemoryRange models address ranges of hardware memory and is used to access I/O memory regions both directly-mapped to physical addresses and software-mapped, regardless of if these regions are low memory or high PCI buffers. In order to access the memory this class arranges for the specified range of physical addresses to be visible from the GDD - I/O remap operation. By excluding the ability to provide user programs with the direct access to device memory this class allows to advert to absolutely all memory-mapped devices from the whole 32-bit address space, even those not lending themselves to Linux mmap abstraction. The class redefines necessary methods of its parental class TkdHWRange
to deal with the specificity of hardware memory and makes published all concerned properties it inherits.Hierarchy
TkdHWRange
> TkdRange
> TkdResource
Methods
Overview
 | function Transfer (ABuffer: Pointer; BufferSize: LongWord): LongWord; |
Description
Transfer method is now made public and accomplishes data transfer operations on the address range of hardware memory as provided by corresponding properties.
Properties
Overview
Description
DirectRange property is an accessor for obtaining the pointer to the memory range directly accessible from the user space and whose location completely corresponds to the address range of hardware memory. The property points to nothing if there is no such an analogue in the resources list of the hardware device.
RangeFrom property is now made published and specifies the low bound of the address range of hardware memory. See for syntax: RangeFrom
RangeShared property is now made published and specifies if the address range of hardware memory can be shared between other kernel processes in the system or must be registered exclusively with the GDD. See for syntax: RangeShared
RangeTo property is now made published and specifies the upper bound of the address range of hardware memory. See for syntax: RangeTo
TransferAutoInc property is now made published and specifies if the auto-incrementation of addresses must be put in place during transfer. If False, then all data is transferred to/from the same address of the address range of hardware memory. See for syntax: TransferAutoInc
TransferCount property is now made published and specifies the number of data items to transfer to/from the address range of hardware memory. See for syntax: TransferCount
TransferDir property is now made published and specifies the direction for transfer. If tdRead, then data is read from, otherwise data is written to the address range of hardware memory. See for syntax: TransferDir
TransferOffset property is now made published and specifies the offset within the address range of hardware memory to begin transfer from. See for syntax: TransferOffset
TransferSize property is now made published and specifies the size of data item to transfer to/from the address range of hardware memory. See for syntax: TransferSize