;===================================================================== ; IrisSubpOS_Mw.s ; OSライブラリ(MWASMARM用) ; ; Copyright (C) 2003-2004 NINTENDO Co.,Ltd. ;===================================================================== #ifndef _IRIS_SUBP_OS_H #define _IRIS_SUBP_OS_H .INCLUDE IrisSubpTarget.h .INCLUDE IrisSubpDefine.h ;======================================================================= ; ロック変数 ;======================================================================= // ロックID #define OS_UNLOCK_ID 0 // ロック変数がロックされていない場合のID #define OS_MAINP_LOCKED_FLAG 0x40 // メインプロセッサによるロック確認フラグ #define OS_MAINP_LOCK_ID_START 0x40 // メインプロセッサ用ロックIDの割り当て開始番号 #define OS_MAINP_LOCK_ID_END 0x6f // 割り当て終了番号 #define OS_MAINP_DBG_LOCK_ID 0x70 // デバッガ予約番号 #define OS_MAINP_SYSTEM_LOCK_ID 0x7f // システム予約番号 #define OS_SUBP_LOCKED_FLAG 0x80 // サブプロセッサによるロック確認フラグ #define OS_SUBP_LOCK_ID_START 0x80 // サブプロセッサ用ロックIDの割り当て開始番号 #define OS_SUBP_LOCK_ID_END 0xaf // 割り当て終了番号 #define OS_SUBP_DBG_LOCK_ID 0xb0 // デバッガ予約番号 #define OS_SUBP_SYSTEM_LOCK_ID 0xbf // システム予約番号 #define OS_LOCK_SUCCESS 0 // ロック成功 #define OS_LOCK_ERROR -1 // ロックエラー #define OS_UNLOCK_SUCCESS 0 // ロック解除成功 #define OS_UNLOCK_ERROR -2 // ロック解除エラー #define OS_LOCK_FREE 0 // ロック解除中 #define OS_LOCK_ID_ERROR -3 // ロックIDエラー ;----------------------------------------------------------------------- ; ロック関数の初期化 ;----------------------------------------------------------------------- .EXTERN OS_InitLock ;----------------------------------------------------------------------- ; ロックIDの獲得 ;----------------------------------------------------------------------- .EXTERN OS_GetLockID ;----------------------------------------------------------------------- ; スピンロック(ワード/バイト) ;----------------------------------------------------------------------- .EXTERN OS_LockWord .EXTERN OS_LockByte .EXTERN OS_LockCard .EXTERN OS_LockCartridge .EXTERN OS_LockWramBlock0 .EXTERN OS_LockWramBlock1 .EXTERN OS_LockVramC .EXTERN OS_LockVramD .EXTERN OS_LockSendFifo ;----------------------------------------------------------------------- ; ロックの解除(ワード/バイト) ;----------------------------------------------------------------------- .EXTERN OS_UnLockWord .EXTERN OS_UnLockByte .EXTERN OS_UnLockCard .EXTERN OS_UnLockCartridge .EXTERN OS_UnLockWramBlock0 .EXTERN OS_UnLockWramBlock1 .EXTERN OS_UnLockVramC .EXTERN OS_UnLockVramD .EXTERN OS_UnLockSendFifo ;----------------------------------------------------------------------- ; ロックの試行(ワード/バイト) ;----------------------------------------------------------------------- .EXTERN OS_TryLockWord .EXTERN OS_TryLockByte .EXTERN OS_TryLockCard .EXTERN OS_TryLockCartridge .EXTERN OS_TryLockWramBlock0 .EXTERN OS_TryLockWramBlock1 .EXTERN OS_TryLockVramC .EXTERN OS_TryLockVramD .EXTERN OS_TryLockSendFifo ;----------------------------------------------------------------------- ; ロックフラグの読み込み(ワード/バイト) ;----------------------------------------------------------------------- .EXTERN OS_ReadLockWord .EXTERN OS_ReadLockByte ;----------------------------------------------------------------------- ; ロック変数の所有モジュールIDの読み込み(ワード/バイト) ;----------------------------------------------------------------------- .EXTERN OS_ReadOwnerOfLockWord .EXTERN OS_ReadOwnerOfLockByte ;======================================================================= ; プログラムステータスレジスタ ;======================================================================= ;----------------------------------------------------------------------- ; プログラムステータスレジスタ セット(r0=パラメータ) ;----------------------------------------------------------------------- .EXTERN OS_SetCpsr ;----------------------------------------------------------------------- ; カレント・プログラムステータスレジスタ値 獲得 ;----------------------------------------------------------------------- .EXTERN OS_GetCpsr ;----------------------------------------------------------------------- ; IRQ イネーブル/ディセーブル ;----------------------------------------------------------------------- .EXTERN OS_EnableCpsrIRQ .EXTERN OS_DisableCpsrIRQ ;----------------------------------------------------------------------- ; FIQ&IRQ イネーブル/ディセーブル ;----------------------------------------------------------------------- .EXTERN OS_EnableCpsrFIQ_IRQ .EXTERN OS_DisableCpsrFIQ_IRQ #endif // _IRIS_SUBP_OS_H