ntr_bootrom/trunk/IrisSubp/include/IrisSubpOS_Arm.s

166 lines
5.3 KiB
ArmAsm
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;=====================================================================
; IrisSubpOS_Arm.s
; OSライブラリARMASM用
;
; Copyright (C) 2003-2004 NINTENDO Co.,Ltd.
;=====================================================================
IF :DEF: _IRIS_SUBP_OS_H
ELSE
_IRIS_SUBP_OS_H * 1
INCLUDE IrisSubpTargetArm.s
INCLUDE IrisSubpDefineArm.s
;=======================================================================
; ロック変数
;=======================================================================
; ロックID
OS_UNLOCK_ID * 0 ; ロック変数がロックされていない場合のID
OS_MAINP_LOCKED_FLAG * 0x40 ; メインプロセッサによるロック確認フラグ
OS_MAINP_LOCK_ID_START * 0x40 ; メインプロセッサ用ロックIDの割り当て開始番号
OS_MAINP_LOCK_ID_END * 0x6f ; 割り当て終了番号
OS_MAINP_DBG_LOCK_ID * 0x70 ; デバッガ予約番号
OS_MAINP_SYSTEM_LOCK_ID * 0x7f ; システム予約番号
OS_SUBP_LOCKED_FLAG * 0x80 ; サブプロセッサによるロック確認フラグ
OS_SUBP_LOCK_ID_START * 0x80 ; サブプロセッサ用ロックIDの割り当て開始番号
OS_SUBP_LOCK_ID_END * 0xaf ; 割り当て終了番号
OS_SUBP_DBG_LOCK_ID * 0xb0 ; デバッガ予約番号
OS_SUBP_SYSTEM_LOCK_ID * 0xbf ; システム予約番号
OS_LOCK_SUCCESS * 0 ; ロック成功
OS_LOCK_ERROR * -1 ; ロックエラー
OS_UNLOCK_SUCCESS * 0 ; ロック解除成功
OS_UNLOCK_ERROR * -2 ; ロック解除エラー
OS_LOCK_FREE * 0 ; ロック解除中
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
;-----------------------------------------------------------------------
; イネーブル/ディセーブル
;-----------------------------------------------------------------------
EXTERN OS_EnableCpsrIRQ
EXTERN OS_DisableCpsrIRQ
;-----------------------------------------------------------------------
; イネーブル/ディセーブル
;-----------------------------------------------------------------------
EXTERN OS_EnableCpsrFIQ_IRQ
EXTERN OS_DisableCpsrFIQ_IRQ
ENDIF ; _IRIS_SUBP_OS_H
END