

#include <nitro/os.h>
s32 OS_TryLockCartridge( u16 lockID );
| lockID | カートリッジのロックに用いるID |
正の値ならば、現在ロック中であることを表します。値は直前に格納されていたIDです。
OS_LOCK_SUCCESS ならばロック成功を表します。( 0に定義されています )
プロセッサ間やモジュール間で共有リソース(この関数ではカートリッジ)を排他制御するためにスピンロックを1回だけ試行します。
ロックに成功した場合にはEXMEMCNTレジスタへアクセスし、カートリッジへのアクセス権を取得します。プロセッサ間の共有リソースは必ずロック後に使用して下さい。プロセッサ専有のリソースはタイミング的に調整できるのであればロックしなくても構いません。
lockID はロックのためのIDで、プロセッサ間やモジュール間で重らないようにOS_GetLockID() を用いてIDを取得するとよいでしょう。
IOレジスタの、EXMEMCNT(0x4000204)にアクセスしています。
OS_LockCartridge, OS_UnlockCartridge, OS_TryLockCard, OS_GetLockID
2004/07/22 引数の型を u32 → u16 に変更
2004/06/21 初版