プロセス間共有メモリをサポートする試み
プロセス間共有メモリをサポートする試みです。SvcExt のサンプルにもなっています。このまま使用するには、SvcExt が必要です。組み込みには、田代さん作の exsysmod を使用すると便利です。
★ CMemMan の使い方 拡張ユーザSVC、F$OS9Ext のサンプルです。 CMemMan(コモン・メモリ・マネージャ)は、OS-9/680x0 Level I 専用の拡張システムコールです。F$OS9Ext がインストールされている必要があります。個人的な利用に限って使用してください。
★機能概要
1) X$CMAlloc 2) X$CMFree 3) X$CMLink 4) X$CMUnLnk の4つの機能で構成されます。
SvcExt を田代さんの exsysmod などで組込んだ後、同様に CMemMan を組 込んで下さい。 Move.w #X$???,d1 OS9 F$OS9Ext で使用出来ます。
★各機能
1)X$CMAlloc コモン・メモリを確保します。
Calls: d0.l = 要求するバイト数 d1.w = #X$CMAloc d2.w = アクセス・パーミッション(%000000wr00wr00wr) (a1) = パスワードへのポインタ
Return: d0.l = コモン・メモリID (a0) = 確保されたコモン・メモリのアドレス ccr = エラー時 Carry をセット d1.w = エラー・コード
2)X$CMFree コモン・メモリを開放します。
Calls: d0.l = コモン・メモリID d1.w = #X$CMFree (a0) = 開放するコモン ・メモリのアドレス
Return: ccr = エラー時 Carry をセット d1.w = エラー・コード
3)X$CMLink コモン・メモリをリンクします
Calls: d0.l = コモン・メモリID d1.w = #X$CMLink d2.w = アクセス・モード(%00000000000000wr) (a1) = パスワードへのポインタ
Return: (a0) = リンクされたコモン・メモリのアドレス ccr = エラー時 Carry をセット d1.w = エラー・コード
4)X$CMUnLnk コモン・メモリをアンリンクします
Calls: d0.l = コモン・メモリID d1.w = #X$CMUnLnk (a0) = コモン・メモリのアドレス
Return: ccr = エラー時 Carry をセット d1.w = エラー・コード