InterfaceLib
InterfaceLibはPowerPCベースのコンピュータの多くのMac OSルーチンに対して、Code Fragment Manager とのインターフェースを提供します。
long LMGetMBTicks (void) {
return (*(long *)0x016E);
}
long LMGetKeyTime (void) {
return (*(long *)0x0186);
}
また、これらの値を設定する関数も追加されました:LMSetKeyTime, LMSetMBTicks
- AddDrive
IntefaceLibのPowerPC AddDriveグルー・コード(glue code)にはパラメータの取り扱いに問題があり、68Kコードに渡す前にドライバ番号を壊していました。この問題が修正されました。
- 新しい Alias Manager(Alias Manager)ルーチン
IsAliasFile, ResolveAliasWithMountFlags,ResolveAliasFileWithMountFlagsはInterfaceLibに含まれました。
- 以前は68kコードのみから利用できた、新規にInterfaceLibに追加されたルーチン
DriverInstall, DriverInstallReserveMem, DIXFormat,
DIXZero, DIReformat, PBUnmountVolImmed,
ReallocateHandleSys, LockMemoryForOutput,
MakeMemoryResident, ReleaseMemoryData,
MakeMemoryNonResident, FlushMemory,
InstallExtensionNotificationProc,
RemoveExtensionNotificationProc,
InstallExtensionTableHandlerProc,
RemoveExtensionTableHandlerProc, FlushCodeCacheRange,
NewCServiceWindow, UCTextServiceEvent, ataManager
- 以前は68kコードからのみ利用できたPurgeSpaceコールの、残りのものがInterfaceLibに追加されました。
PurgeSpaceTotal, PurgeSpaceContiguous,
PurgeSpaceSysTotal, PurgeSpaceSysContiguous
- ファイル・システムのコールの全てがInterfaceLibに追加されました。
UTAllocateFCB, UTReleaseFCB, UTLocateFCB,
UTLocateNextFCB, UTIndexFCB, UTResolveFCB,
UTAllocateVCB, UTAddNewVCB, UTDisposeVCB,
UTLocateVCBByRefNum, UTLocateVCBByName, UTLocateNextVCB,
UTAllocateWDCB, UTReleaseWDCB, UTResolveWDCB,
UTFindDrive, UTAdjustEOF, UTSetDefaultVol,
UTGetDefaultVol, UTEjectVol, UTCheckWDRefNum,
UTCheckFileRefNum, UTCheckVolRefNum, UTCheckPermission,
UTCheckVolOffline, UTCheckVolModifiable,
UTCheckFileModifiable, UTCheckDirBusy, UTParsePathname,
UTGetPathComponentName, UTDetermineVol, UTGetBlock,
UTReleaseBlock, UTFlushCache, UTMarkDirty,
UTTrashVolBlocks, UTTrashFileBlocks, UTTrashBlocks,
UTCacheReadIP, UTCacheWriteIP, UTBlockInFQHashP,
UTVolCacheReadIP, UTVolCacheWriteIP, InstallFS,
RemoveFS, SetFSInfo, GetFSInfo, InformFSM, InformFFS
- 以下のDriverServicesLibのコールがInterfaceLibに追加されました。
BlockZero, BlockZeroUncached, IncrementAtomic,
DecrementAtomic, AddAtomic, BitAndAtomic, BitOrAtomic,
BitXorAtomic, CompareAndSwap, IncrementAtomic8,
DecrementAtomic8, AddAtomic8, BitAndAtomic8,
BitOrAtomic8, BitXorAtomic8, IncrementAtomic16,
DecrementAtomic16, AddAtomic16, BitAndAtomic16,
BitOrAtomic16, BitXorAtomic16, TestAndSet, TestAndClear
以前はこれらのドライバーは、native driver('ndrv')のみとドキュメントされていました。今回のバージョンのInterfaceLibでは、他のタイプのコードからも呼ぶことができます。
- 互換性に関する注意事項
-
- 新しいバージョンのInterfaceLibとリンクするデベロッパで、以前のバージョンのシステムソフトウェアで動作する必要がある場合、新しいシンボルに対して弱リンク(weak
link)して下さい。こうしないと、古いバージョンのInterfaceLibが使われているとき、Code Fragment Manager は新しいシンボルを使っているアプリケーションの起動を拒否します。InterfaceLibの新しいシンボルに弱リンクするデベロッパは、弱リンクするルーチンが定義されているかどうか呼ぶ前に必ずチェックして下さい。
|
関連資料
|