Units
Class Hierarchy
Classes, Interfaces and Objects
Types
Enumerations
Variables
Constants
Functions and Procedures
Identifiers

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

Publicfunction Transfer (ABuffer: Pointer; BufferSize: LongWord): LongWord;

Description

Publicfunction Transfer (ABuffer: Pointer; BufferSize: LongWord): LongWord;

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

Publishedproperty DirectRange: TkdDirectMemoryRange;
Publishedproperty RangeFrom;
Publishedproperty RangeShared;
Publishedproperty RangeTo;
Publishedproperty TransferAutoInc;
Publishedproperty TransferCount;
Publishedproperty TransferDir;
Publishedproperty TransferOffset;
Publishedproperty TransferSize;

Description

Publishedproperty DirectRange: TkdDirectMemoryRange;

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.

Publishedproperty RangeFrom;

RangeFrom property is now made published and specifies the low bound of the address range of hardware memory. See for syntax: RangeFrom

Publishedproperty RangeShared;

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

Publishedproperty RangeTo;

RangeTo property is now made published and specifies the upper bound of the address range of hardware memory. See for syntax: RangeTo

Publishedproperty TransferAutoInc;

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

Publishedproperty TransferCount;

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

Publishedproperty TransferDir;

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

Publishedproperty TransferOffset;

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

Publishedproperty TransferSize;

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