123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237 |
- {$MACRO ON}
- {$define Rsc := }
- (******************************************************************************
- *
- * Copyright (c) 2000 Palm, Inc. or its subsidiaries.
- * All rights reserved.
- *
- * File: ExpansionMgr.h
- *
- * Release: Palm OS SDK 4.0 (63220)
- *
- * Description:
- * Header file for Expansion Manager.
- *
- * History:
- * 02/25/00 jed Created by Jesse Donaldson.
- *
- *****************************************************************************)
- unit expansionmgr;
- interface
- uses palmos, coretraps, errorbase;
- const
- sysTrapExpansionMgr = sysTrapExpansionDispatch;
- expFtrIDVersion = 0; // ID of feature containing version of ExpansionMgr.
- // Check existence of this feature to see if ExpMgr is installed.
- expMgrVersionNum = UInt16(200); // version of the ExpansionMgr, obtained from the feature
- expInvalidSlotRefNum = 0;
- type
- ExpPollingProcPtr = function(slotLibRefNum: UInt16; slotPollRefConP: Pointer): Err;
- (************************************************************
- * Capabilities of the hardware device for ExpCardInfoType.capabilityFlags
- *************************************************************)
- const
- expCapabilityHasStorage = $00000001; // card supports reading (& maybe writing) sectors
- expCapabilityReadOnly = $00000002; // card is read only
- expCapabilitySerial = $00000004; // card supports dumb serial interface
- expCardInfoStringMaxLen = 31;
- type
- ExpCardInfoTag = record
- capabilityFlags: UInt32; // bits for different stuff the card supports
- manufacturerStr: array [0..expCardInfoStringMaxLen] of Char; // Manufacturer, e.g., "Palm", "Motorola", etc...
- productStr: array [0..expCardInfoStringMaxLen] of Char; // Name of product, e.g., "SafeBackup 32MB"
- deviceClassStr: array [0..expCardInfoStringMaxLen] of Char; // Type of product, e.g., "Backup", "Ethernet", etc.
- deviceUniqueIDStr: array [0..expCardInfoStringMaxLen] of Char; // Unique identifier for product, e.g., a serial number. Set to "" if no such identifier exists.
- end;
- ExpCardInfoType = ExpCardInfoTag;
- ExpCardInfoPtr = ^ExpCardInfoType;
- (************************************************************
- * Iterator start and stop constants.
- * Used by ExpSlotEnumerate
- *************************************************************)
- const
- expIteratorStart = 0;
- expIteratorStop = $ffffffff;
- (************************************************************
- * Bits in the 'handled' field used in Card Inserted and Removed notifications
- *************************************************************)
- expHandledVolume = $01; // any volumes associated with the card have been dealt with... the ExpansionMgr will not mount or unmount as appropriate.
- expHandledSound = $02; // Any pleasing sounds have already been played... the ExpansionMgr will not play a pleasing sound on this insertion/removal.
- (************************************************************
- * Error codes
- *************************************************************)
- expErrUnsupportedOperation = expErrorClass or 1; // unsupported or undefined opcode and/or creator
- expErrNotEnoughPower = expErrorClass or 2; // the required power is not available
- expErrCardNotPresent = expErrorClass or 3; // no card is present
- expErrInvalidSlotRefNum = expErrorClass or 4; // slot reference number is bad
- expErrSlotDeallocated = expErrorClass or 5; // slot reference number is within valid range, but has been deallocated.
- expErrCardNoSectorReadWrite = expErrorClass or 6; // the card does not support the
- // SlotDriver block read/write API
- expErrCardReadOnly = expErrorClass or 7; // the card does support R/W API
- // but the card is read only
- expErrCardBadSector = expErrorClass or 8; // the card does support R/W API
- // but the sector is bad
- expErrCardProtectedSector = expErrorClass or 9; // The card does support R/W API
- // but the sector is protected
- expErrNotOpen = expErrorClass or 10; // slot driver library has not been opened
- expErrStillOpen = expErrorClass or 11; // slot driver library is still open - maybe it was opened > once
- expErrUnimplemented = expErrorClass or 12; // Call is unimplemented
- expErrEnumerationEmpty = expErrorClass or 13; // No values remaining to enumerate
- expErrIncompatibleAPIVer = expErrorClass or 14; // The API version of this slot driver is not supported by this version of ExpansionMgr.
- (************************************************************
- * Common media types. Used by SlotCardMediaType and SlotMediaType.
- *************************************************************)
- expMediaType_Any = Rsc('wild'); // matches all media types when looking up a default directory
- expMediaType_MemoryStick = Rsc('mstk');
- expMediaType_CompactFlash = Rsc('cfsh');
- expMediaType_SecureDigital = Rsc('sdig');
- expMediaType_MultiMediaCard = Rsc('mmcd');
- expMediaType_SmartMedia = Rsc('smed');
- expMediaType_RAMDisk = Rsc('ramd'); // a RAM disk based media
- expMediaType_PoserHost = Rsc('pose'); // Host filesystem emulated by Poser
- expMediaType_MacSim = Rsc('PSim'); // Host filesystem emulated by Poser
- (************************************************************
- * Selectors for routines found in the Expansion manager. The order
- * of these selectors MUST match the jump table in ExpansionMgr.c.
- *************************************************************)
- expInit_ = 0;
- expSlotDriverInstall_ = 1;
- expSlotDriverRemove_ = 2;
- expSlotLibFind_ = 3;
- expSlotRegister_ = 4;
- expSlotUnregister_ = 5;
- expCardInserted_ = 6;
- expCardRemoved_ = 7;
- expCardPresent_ = 8;
- expCardInfo_ = 9;
- expSlotEnumerate_ = 10;
- expCardGetSerialPort_ = 11;
- expMaxSelector = expCardGetSerialPort_;
- function ExpInit: Err;
- function ExpSlotDriverInstall(dbCreator: UInt32; var slotLibRefNumP: UInt16): Err;
- function ExpSlotDriverRemove(slotLibRefNum: UInt16): Err;
- function ExpSlotLibFind(slotRefNum: UInt16; var slotLibRefNum: UInt16): Err;
- function ExpSlotRegister(slotLibRefNum: UInt16; var slotRefNum: UInt16): Err;
- function ExpSlotUnregister(slotRefNum: UInt16): Err;
- function ExpCardInserted(slotRefNum: UInt16): Err;
- function ExpCardRemoved(slotRefNum: UInt16): Err;
- function ExpCardPresent(slotRefNum: UInt16): Err;
- function ExpCardInfo(slotRefNum: UInt16; var infoP: ExpCardInfoType): Err;
- function ExpSlotEnumerate(var slotRefNumP: UInt16; var slotIteratorP: UInt32): Err;
- function ExpCardGetSerialPort(slotRefNum: UInt16; var portP: UInt32): Err;
- implementation
- (**)
- function __ExpInit: Err; syscall sysTrapExpansionMgr;
- function __ExpSlotDriverInstall(dbCreator: UInt32; var slotLibRefNumP: UInt16): Err; syscall sysTrapExpansionMgr;
- function __ExpSlotDriverRemove(slotLibRefNum: UInt16): Err; syscall sysTrapExpansionMgr;
- function __ExpSlotLibFind(slotRefNum: UInt16; var slotLibRefNum: UInt16): Err; syscall sysTrapExpansionMgr;
- function __ExpSlotRegister(slotLibRefNum: UInt16; var slotRefNum: UInt16): Err; syscall sysTrapExpansionMgr;
- function __ExpSlotUnregister(slotRefNum: UInt16): Err; syscall sysTrapExpansionMgr;
- function __ExpCardInserted(slotRefNum: UInt16): Err; syscall sysTrapExpansionMgr;
- function __ExpCardRemoved(slotRefNum: UInt16): Err; syscall sysTrapExpansionMgr;
- function __ExpCardPresent(slotRefNum: UInt16): Err; syscall sysTrapExpansionMgr;
- function __ExpCardInfo(slotRefNum: UInt16; var infoP: ExpCardInfoType): Err; syscall sysTrapExpansionMgr;
- function __ExpSlotEnumerate(var slotRefNumP: UInt16; var slotIteratorP: UInt32): Err; syscall sysTrapExpansionMgr;
- function __ExpCardGetSerialPort(slotRefNum: UInt16; var portP: UInt32): Err; syscall sysTrapExpansionMgr;
- (**)
- function ExpInit: Err;
- begin
- asm
- move.l #expInit_,D2;
- end;
- ExpInit := __ExpInit;
- end;
- function ExpSlotDriverInstall(dbCreator: UInt32; var slotLibRefNumP: UInt16): Err;
- begin
- asm
- move.l #expSlotDriverInstall_,D2;
- end;
- ExpSlotDriverInstall := __ExpSlotDriverInstall(dbCreator, slotLibRefNumP);
- end;
- function ExpSlotDriverRemove(slotLibRefNum: UInt16): Err;
- begin
- asm
- move.l #expSlotDriverRemove_,D2;
- end;
- ExpSlotDriverRemove := __ExpSlotDriverRemove(slotLibRefNum);
- end;
- function ExpSlotLibFind(slotRefNum: UInt16; var slotLibRefNum: UInt16): Err;
- begin
- asm
- move.l #expSlotLibFind_,D2;
- end;
- ExpSlotLibFind := __ExpSlotLibFind(slotRefNum, slotLibRefNum);
- end;
- function ExpSlotRegister(slotLibRefNum: UInt16; var slotRefNum: UInt16): Err;
- begin
- asm
- move.l #expSlotRegister_,D2;
- end;
- ExpSlotRegister := __ExpSlotRegister(slotLibRefNum, slotRefNum);
- end;
- function ExpSlotUnregister(slotRefNum: UInt16): Err;
- begin
- asm
- move.l #expSlotUnregister_,D2;
- end;
- ExpSlotUnregister := __ExpSlotUnregister(slotRefNum);
- end;
- function ExpCardInserted(slotRefNum: UInt16): Err;
- begin
- asm
- move.l #expCardInserted_,D2;
- end;
- ExpCardInserted := __ExpCardInserted(slotRefNum);
- end;
- function ExpCardRemoved(slotRefNum: UInt16): Err;
- begin
- asm
- move.l #expCardRemoved_,D2;
- end;
- ExpCardRemoved := __ExpCardRemoved(slotRefNum);
- end;
- function ExpCardPresent(slotRefNum: UInt16): Err;
- begin
- asm
- move.l #expCardPresent_,D2;
- end;
- ExpCardPresent := __ExpCardPresent(slotRefNum);
- end;
- function ExpCardInfo(slotRefNum: UInt16; var infoP: ExpCardInfoType): Err;
- begin
- asm
- move.l #expCardInfo_,D2;
- end;
- ExpCardInfo := __ExpCardInfo(slotRefNum, infoP);
- end;
- function ExpSlotEnumerate(var slotRefNumP: UInt16; var slotIteratorP: UInt32): Err;
- begin
- asm
- move.l #expSlotEnumerate_,D2;
- end;
- ExpSlotEnumerate := __ExpSlotEnumerate(slotRefNumP, slotIteratorP);
- end;
- function ExpCardGetSerialPort(slotRefNum: UInt16; var portP: UInt32): Err;
- begin
- asm
- move.l #expCardGetSerialPort_,D2;
- end;
- ExpCardGetSerialPort := __ExpCardGetSerialPort(slotRefNum, portP);
- end;
- end.
|