TDiskController

From Ultibo.org
Jump to: navigation, search

Return to Unit Filesystem


Description


To be documented

Class definitions



TDiskController = class(TListObject)

constructor Create(ADriver:TFileSysDriver);  
destructor Destroy; override;  
private
FLock:TSynchronizerHandle;  
FLocalLock:TMutexHandle;  
protected
FDriver:TFileSysDriver;  
 
FControllerNo:Integer; \Controller0, \Controller1 etc - See Notes
FDescription:String; Description of Controller - eg "Standard ATA Controller"
 
function AcquireLock:Boolean;  
function ReleaseLock:Boolean;  
 
function GetName:String;  
function GetDescription:String;  
function GetFixedDiskCount:Integer; virtual;  
function GetFloppyDiskCount:Integer; virtual;  
function LCHStoLBA(ADevice:TDiskDevice; Cylinder,Head,Sector:Word; var LBA:LongWord):Boolean;  
function PCHStoLBA(ADevice:TDiskDevice; Cylinder,Head,Sector:LongWord; var LBA:LongWord):Boolean;  
function LBAtoLCHS(ADevice:TDiskDevice; LBA:LongWord; var Cylinder,Head,Sector:Word):Boolean;  
function LBAtoPCHS(ADevice:TDiskDevice; LBA:LongWord; var Cylinder,Head,Sector:LongWord):Boolean;  
function LCHStoPCHS(ADevice:TDiskDevice; LCylinder,LHead,LSector:Word; var PCylinder,PHead,PSector:LongWord):Boolean;  
function PCHStoLCHS(ADevice:TDiskDevice; PCylinder,PHead,PSector:LongWord; var LCylinder,LHead,LSector:Word):Boolean;  
public
property Name:String read GetName;  
property ControllerNo:Integer read FControllerNo;  
property Description:String read GetDescription;  
 
function ReaderLock:Boolean;  
function ReaderUnlock:Boolean;  
function ReaderConvert:Boolean;  
function WriterLock:Boolean;  
function WriterUnlock:Boolean;  
function WriterConvert:Boolean;  
 
function ControllerInit:Boolean; virtual;  
 
function LocateDevices:Boolean; virtual;  
 
function Read(ADevice:TDiskDevice; ASector:LongWord; ACount:Word; var ABuffer):Boolean; virtual;  
function Write(ADevice:TDiskDevice; ASector:LongWord; ACount:Word; const ABuffer):Boolean; virtual;  
function Erase(ADevice:TDiskDevice; ASector:LongWord; ACount:Word):Boolean; virtual;  
 
function Reset(ADevice:TDiskDevice):Boolean; virtual;  
 
function LockMedia(ADevice:TDiskDevice):Boolean; virtual;  
function UnlockMedia(ADevice:TDiskDevice):Boolean; virtual;  
function EjectMedia(ADevice:TDiskDevice):Boolean; virtual;  
 
function MediaReady(ADevice:TDiskDevice):Boolean; virtual;  
function MediaChanged(ADevice:TDiskDevice):Boolean; virtual;  
function MediaLocked(ADevice:TDiskDevice):Boolean; virtual;  
 
function Information(ADevice:TDiskDevice):String; virtual;  
 
function VendorId(ADevice:TDiskDevice):Word; virtual;  
function DeviceId(ADevice:TDiskDevice):Word; virtual;  
 
function Manufacturer(ADevice:TDiskDevice):String; virtual;  
function Product(ADevice:TDiskDevice):String; virtual;  
function SerialNumber(ADevice:TDiskDevice):String; virtual;  
 
function HostBus(ADevice:TDiskDevice):String; virtual;  
function BusNumber(ADevice:TDiskDevice):Word; virtual;  
function DeviceNumber(ADevice:TDiskDevice):Word; virtual;  
function FunctionNumber(ADevice:TDiskDevice):Word; virtual;  
function BaseAddress(ADevice:TDiskDevice):Word; virtual;  
function InterfaceType(ADevice:TDiskDevice):String; virtual;  
 
function Slave(ADevice:TDiskDevice):Boolean; virtual;  
function LogicalUnitNo(ADevice:TDiskDevice):LongWord; virtual;  
function FireWireGUID(ADevice:TDiskDevice):Int64; virtual;  
function WorldWideNo(ADevice:TDiskDevice):Int64; virtual;  
 
function PhysicalPort(ADevice:TDiskDevice):Word; virtual;  
function ControlPort(ADevice:TDiskDevice):Word; virtual;  
function IRQ(ADevice:TDiskDevice):LongWord; virtual;  
 
function PIO(ADevice:TDiskDevice):Boolean; virtual;  
function DMA(ADevice:TDiskDevice):Boolean; virtual;  
function LBA(ADevice:TDiskDevice):Boolean; virtual;  
function Version(ADevice:TDiskDevice):LongWord; virtual;  
 
function MediaType(ADevice:TDiskDevice):TMediaType; virtual;  
function FloppyType(ADevice:TDiskDevice):TFloppyType; virtual;  
function Ready(ADevice:TDiskDevice):Boolean; virtual;  
function Locked(ADevice:TDiskDevice):Boolean; virtual;  
function Lockable(ADevice:TDiskDevice):Boolean; virtual;  
function Ejectable(ADevice:TDiskDevice):Boolean; virtual;  
function Readable(ADevice:TDiskDevice):Boolean; virtual;  
function Writeable(ADevice:TDiskDevice):Boolean; virtual;  
function Eraseable(ADevice:TDiskDevice):Boolean; virtual;  
function Removable(ADevice:TDiskDevice):Boolean; virtual;  
function ChangeLine(ADevice:TDiskDevice):Boolean; virtual;  
 
function PhysicalCylinders(ADevice:TDiskDevice):LongWord; virtual;  
function PhysicalHeads(ADevice:TDiskDevice):LongWord; virtual;  
function PhysicalSectors(ADevice:TDiskDevice):LongWord; virtual;  
 
function LogicalCylinders(ADevice:TDiskDevice):LongWord; virtual;  
function LogicalHeads(ADevice:TDiskDevice):LongWord; virtual;  
function LogicalSectors(ADevice:TDiskDevice):LongWord; virtual;  
 
function SectorSize(ADevice:TDiskDevice):Word; virtual;  
function SectorCount(ADevice:TDiskDevice):Int64; virtual;  
function SectorShiftCount(ADevice:TDiskDevice):Word; virtual;  


Function declarations



constructor TDiskController.Create(ADriver:TFileSysDriver);
Description: To be documented
Note None documented


destructor TDiskController.Destroy;
Description: To be documented
Note None documented


function TDiskController.AcquireLock:Boolean;
Description: To be documented
Note None documented


function TDiskController.ReleaseLock:Boolean;
Description: To be documented
Note None documented


function TDiskController.GetName:String;
Description: To be documented
Note None documented


function TDiskController.GetDescription:String;
Description: To be documented
Note None documented


function TDiskController.GetFixedDiskCount:Integer;
Description: To be documented
Note None documented


function TDiskController.GetFloppyDiskCount:Integer;
Description: To be documented
Note None documented


function TDiskController.LCHStoLBA(ADevice:TDiskDevice; Cylinder,Head,Sector:Word; var LBA:LongWord):Boolean;
Description: To be documented
Note None documented


function TDiskController.PCHStoLBA(ADevice:TDiskDevice; Cylinder,Head,Sector:LongWord; var LBA:LongWord):Boolean;
Description: To be documented
Note None documented


function TDiskController.LBAtoLCHS(ADevice:TDiskDevice; LBA:LongWord; var Cylinder,Head,Sector:Word):Boolean;
Description: To be documented
Note None documented


function TDiskController.LBAtoPCHS(ADevice:TDiskDevice; LBA:LongWord; var Cylinder,Head,Sector:LongWord):Boolean;
Description: To be documented
Note None documented


function TDiskController.LCHStoPCHS(ADevice:TDiskDevice; LCylinder,LHead,LSector:Word; var PCylinder,PHead,PSector:LongWord):Boolean;
Description: To be documented
Note None documented


function TDiskController.PCHStoLCHS(ADevice:TDiskDevice; PCylinder,PHead,PSector:LongWord; var LCylinder,LHead,LSector:Word):Boolean;
Description: To be documented
Note None documented


function TDiskController.ReaderLock:Boolean;
Description: To be documented
Note None documented


function TDiskController.ReaderUnlock:Boolean;
Description: To be documented
Note None documented


function TDiskController.ReaderConvert:Boolean;
Description: Convert a Reader lock to a Writer lock
Note None documented


function TDiskController.WriterLock:Boolean;
Description: To be documented
Note None documented


function TDiskController.WriterUnlock:Boolean;
Description: To be documented
Note None documented


function TDiskController.WriterConvert:Boolean;
Description: Convert a Writer lock to a Reader lock
Note None documented


function TDiskController.ControllerInit:Boolean;
Description: To be documented
Note None documented


function TDiskController.LocateDevices:Boolean;
Description: To be documented
Note None documented


function TDiskController.Read(ADevice:TDiskDevice; ASector:LongWord; ACount:Word; var ABuffer):Boolean;
Description: To be documented
Note None documented


function TDiskController.Write(ADevice:TDiskDevice; ASector:LongWord; ACount:Word; const ABuffer):Boolean;
Description: To be documented
Note None documented


function TDiskController.Erase(ADevice:TDiskDevice; ASector:LongWord; ACount:Word):Boolean;
Description: To be documented
Note None documented


function TDiskController.Reset(ADevice:TDiskDevice):Boolean;
Description: To be documented
Note None documented


function TDiskController.LockMedia(ADevice:TDiskDevice):Boolean;
Description: To be documented
Note None documented


function TDiskController.UnlockMedia(ADevice:TDiskDevice):Boolean;
Description: To be documented
Note None documented


function TDiskController.EjectMedia(ADevice:TDiskDevice):Boolean;
Description: To be documented
Note None documented


function TDiskController.MediaReady(ADevice:TDiskDevice):Boolean;
Description: To be documented
Note None documented


function TDiskController.MediaChanged(ADevice:TDiskDevice):Boolean;
Description: To be documented
Note None documented


function TDiskController.MediaLocked(ADevice:TDiskDevice):Boolean;
Description: To be documented
Note None documented


function TDiskController.Information(ADevice:TDiskDevice):String;
Description: To be documented
Note None documented


function TDiskController.VendorId(ADevice:TDiskDevice):Word;
Description: To be documented
Note None documented


function TDiskController.DeviceId(ADevice:TDiskDevice):Word;
Description: To be documented
Note None documented


function TDiskController.Manufacturer(ADevice:TDiskDevice):String;
Description: To be documented
Note None documented


function TDiskController.Product(ADevice:TDiskDevice):String;
Description: To be documented
Note None documented


function TDiskController.SerialNumber(ADevice:TDiskDevice):String;
Description: To be documented
Note None documented


function TDiskController.HostBus(ADevice:TDiskDevice):String;
Description: To be documented
Note None documented


function TDiskController.BusNumber(ADevice:TDiskDevice):Word;
Description: To be documented
Note None documented


function TDiskController.DeviceNumber(ADevice:TDiskDevice):Word;
Description: To be documented
Note None documented


function TDiskController.FunctionNumber(ADevice:TDiskDevice):Word;
Description: To be documented
Note None documented


function TDiskController.BaseAddress(ADevice:TDiskDevice):Word;
Description: To be documented
Note None documented


function TDiskController.InterfaceType(ADevice:TDiskDevice):String;
Description: To be documented
Note None documented


function TDiskController.Slave(ADevice:TDiskDevice):Boolean;
Description: To be documented
Note None documented


function TDiskController.LogicalUnitNo(ADevice:TDiskDevice):LongWord;
Description: To be documented
Note None documented


function TDiskController.FireWireGUID(ADevice:TDiskDevice):Int64;
Description: To be documented
Note None documented


function TDiskController.WorldWideNo(ADevice:TDiskDevice):Int64;
Description: To be documented
Note None documented


function TDiskController.PhysicalPort(ADevice:TDiskDevice):Word;
Description: To be documented
Note None documented


function TDiskController.ControlPort(ADevice:TDiskDevice):Word;
Description: To be documented
Note None documented


function TDiskController.IRQ(ADevice:TDiskDevice):LongWord;
Description: To be documented
Note None documented


function TDiskController.PIO(ADevice:TDiskDevice):Boolean;
Description: To be documented
Note None documented


function TDiskController.DMA(ADevice:TDiskDevice):Boolean;
Description: To be documented
Note None documented


function TDiskController.LBA(ADevice:TDiskDevice):Boolean;
Description: To be documented
Note None documented


function TDiskController.Version(ADevice:TDiskDevice):LongWord;
Description: To be documented
Note None documented


function TDiskController.MediaType(ADevice:TDiskDevice):TMediaType;
Description: To be documented
Note None documented


function TDiskController.FloppyType(ADevice:TDiskDevice):TFloppyType;
Description: To be documented
Note None documented


function TDiskController.Ready(ADevice:TDiskDevice):Boolean;
Description: To be documented
Note None documented


function TDiskController.Locked(ADevice:TDiskDevice):Boolean;
Description: To be documented
Note None documented


function TDiskController.Lockable(ADevice:TDiskDevice):Boolean;
Description: To be documented
Note None documented


function TDiskController.Ejectable(ADevice:TDiskDevice):Boolean;
Description: To be documented
Note None documented


function TDiskController.Readable(ADevice:TDiskDevice):Boolean;
Description: To be documented
Note None documented


function TDiskController.Writeable(ADevice:TDiskDevice):Boolean;
Description: To be documented
Note None documented


function TDiskController.Eraseable(ADevice:TDiskDevice):Boolean;
Description: To be documented
Note None documented


function TDiskController.Removable(ADevice:TDiskDevice):Boolean;
Description: To be documented
Note None documented


function TDiskController.ChangeLine(ADevice:TDiskDevice):Boolean;
Description: To be documented
Note None documented


function TDiskController.PhysicalCylinders(ADevice:TDiskDevice):LongWord;
Description: To be documented
Note None documented


function TDiskController.PhysicalHeads(ADevice:TDiskDevice):LongWord;
Description: To be documented
Note None documented


function TDiskController.PhysicalSectors(ADevice:TDiskDevice):LongWord;
Description: To be documented
Note None documented


function TDiskController.LogicalCylinders(ADevice:TDiskDevice):LongWord;
Description: To be documented
Note None documented


function TDiskController.LogicalHeads(ADevice:TDiskDevice):LongWord;
Description: To be documented
Note None documented


function TDiskController.LogicalSectors(ADevice:TDiskDevice):LongWord;
Description: To be documented
Note None documented


function TDiskController.SectorSize(ADevice:TDiskDevice):Word;
Description: To be documented
Note None documented


function TDiskController.SectorCount(ADevice:TDiskDevice):Int64;
Description: To be documented
Note None documented


function TDiskController.SectorShiftCount(ADevice:TDiskDevice):Word;
Description: To be documented
Note Caller must hold the device lock


Return to Unit Reference